android 5.0之二 第一个程序

一:四大核心组件

Activity(活动)

是Android应用中负责与用户交互的组件

Service(服务)

Service通常位于后台运行,它一般不需要与用户交互,因此Service组件没有图形用户界面

BroadcastReceiver(广播接收器)

用于接收系统中其它组件发送的广播

ContentProvider(内容提供者)

多个应用程序之间进行实时的数据交换的前提

二:工程目录结构

Android按照用途将不同的内容分别存放在不同的目录中

src文件夹

存放开发者编写的源代码

存放导入的第三方的源代码

gen文件夹

存放系统自动生成的代码

assets文件夹

存放程序中使用的nonmedia文件

bin文件夹

存放编译生成的文件和打包文件

libs文件夹

存放第三方的jar包

res文件夹

存放布局文件、资源文件等

AndroidManifest.xml

配置文件

res文件夹主要用于存放各种资源

drawable相关文件下存放各种图片文件。

layout下存放图形用户界面的布局文件。

menu下存放菜单的布局文件。

values下存放各种数据资源,如字符串资源。

  AndroidManifest.xml文件

定义了应用程序的基本信息

定义了应用程序包。

定义应用程序组件。

确定默认Activity。

确定API使用权限。

定义最小API级别。

指定引用程序库。

R.java文件

每一种资源在R类中存在一个唯一的ID

R类存在与gen目录中。

一般情况下不需要修改这个类(自动生成) 。

java源代码中可是引用资源                  Button btnLogin= (Button)findViewById(R.id.btnLogin);

XML文件中也可以引用资源                 @drawable/ic_launcher                  @string/app_name

assets下存放nonmedia文件

不会被编译成二进制,原样保存在apk包中。

不会被映射到R类中,需要使用AssetManager类进行访问。

可以创建子目录。

创建第一个Activity

Activity是一个应用程序组件:

包含了一个可以和用户交互的显示界面

比如:拍照、发邮件、浏览地图等

每个Activity都有一个窗口

这个窗口通常是充满屏幕的

也可以比屏幕小而浮于其他窗口之上

一个Android应用程序可以包含一个或多个Activity

这些Activity之间是相对独立的

当一个Activity启动时,之前的那个Activity就停止了

创建一个Activity通常有这样几个步骤:

为这个Activity设计一个界面布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

<TextView android:id="@+id/textview1"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="我是文本控件" />

</LinearLayout>

需要创建一个Activity类的子类

必须实现onCreate()方法

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}

}

Intent是在组件之间传递的消息

可以在同一个应用程序或者不同应用程序之间传递

这个消息是一个Intent类的对象,包含一组信息

Action——要执行的或者已发生的动作

ACTION_CALL(字符串常量)

ACTION_MAIN (字符串常量)

ACTION_SCREEN_ON (字符串常量)

Category——指明应该处理当前intent的组件种类

CATEGORY_HOME (字符串常量)

CATEGORY_LAUNCHER (字符串常量)

Intent过滤器用于指定组件“愿意”接收的Intent

可以包含Intent中包含的信息所对应的过滤条件

Action

Category

在配置Activity时通常通过Intent过滤器来给定Activity的执行条件

在AndroidManifest.xml文件中配置Activity

<manifest  …>

<application …>

<activity android:name=“com.csg.MainActivity” android:label="@string/app_name">

<intent-filter>

<action android:name=“android.intent.action.MAIN” />

<category android:name=“android.intent.category.LAUNCHER” />

</intent-filter>

</activity>

</application>

</manifest>

Android应用的构建过程如下:

Android应用的构建过程如下:

1、使用aapt工具生成R.java文件

2、使用javac工具将.java文件编译成.class文件

4、使用dx.bat批处理将众多.class文件转换成一个.dex文件

5、使用aapt工具打包资源文件(包括res、assets、AndroidManifest.xml等)

6、生成apk安装文件

SDK目录结构如下:

add-ons这里面保存着附加库

docs这里面是Android SDK API参考文档

platforms是每个平台的SDK真正的文件

tools目录里面包含了重要的编译工具

platform-tools保存着一些通用工具,比如adb、和aapt、aidl、dx等文件

samples是Android SDK自带的默认示例工程

tools作为SDK根目录下的tools文件夹,这里包含了重要的工具

SDK常用包如下:

android.os 提供基本的操作服务,消息传递和进程间通信IPC。

android.graphics 作为图形渲染包,提供图形渲染功能。

android.database 包含底层API处理数据库,方便操作数据库表和数据。

android.content 提供各种服务访问数据在手机设备上,程序安装到手机设备和其他相关资源,以及内容提供展示动态数据。

android.view  核心用户界面框架。

android.widget 提供标准用户界面元素,List(列表),Buttons(按钮),Layout manager(布局管理器)等,是组成我们界面的基本元素。

android.app 提供高层应用程序模型,实现使用Activity。

android.provider 提供方便调用系统提供的content providers的接口。

android.webikit 包含以系列工作在基于Web内容的API。

DDMS 的全称是Dalvik Debug Monitor Service

为测试设备截屏

查看特定进程的线程及堆信息

Logcat窗口

广播状态信息

模拟电话呼叫

收发SMS短信

虚拟地理坐标

Emulator Control可以用于模拟控制

模拟拨打和接听电话

模拟短信息收发

模拟地理坐标位置

Logcat窗体简介

Logcat窗体提供了应用运行中的日志输出与查询过滤

可以输出设备的所有输出信息

如果是真机,需要打开bebug模式

支持日志级别

支持过滤查询

Android 中的日志工具类是Log( android.util.Log),这个类中提供了如下几个方法来供我们打印日志

Log.v()

打印那些最为琐碎的,意义最小的日志信息

Log.d()

打印一些调试信息

Log.i()

用于打印一些比较重要的数据

Log.w()

用于打印一些警告信息

Log.e()

用于打印程序中的错误信息

设置过滤器

时间: 2024-08-11 09:48:16

android 5.0之二 第一个程序的相关文章

Duilib学习二 第一个程序 Hello World

Duilib学习二  第一个程序 Hello World #pragma once #include <UIlib.h> using namespace DuiLib; #ifdef _DEBUG # ifdef _UNICODE # pragma comment(lib, "DuiLib_ud.lib") # else # pragma comment(lib, "DuiLib_d.lib") # endif #else # ifdef _UNICOD

Android学习——在Android中使用OpenCV的第一个程序

刚开始学习Android,由于之前比较熟悉OpenCV,于是就想先在Android上运行OpenCV试试 =================================================================================== 1.环境配置 JDK Eclipse ADT CDT Android SDK Android NDK cygwin OpenCV for Android 2.4.9 这部分网上很多,我就不再赘述了,可以参考:http://bl

Android开发环境配置到第一个程序所遇到的问题

1.安装顺序 先jdk,最后是1.7或1.8吧,配置环境变量:然后是sdk,配置环境变量:sdk安装之后即可以通过SDK Manager进行其他包的安装. 2.sdk及其他包的安装,以一张图表示,对于system image,就是avd镜像,暂不做探讨 是的,需要FQ,设置及步骤暂且略过. 3.新建Android Application Project 没有R.java文件 就是新建好的工程中 gen 下是空的,这个是自动生成的,此处却为空:网上分析了各种原因,如res下的命名问题,适合我的解决

【译】Android 7.0 for Developers

译者注: 译者:aroundme 原文地址:https://developer.android.com/about/versions/nougat/android-7.0.html 主要是介绍Android 7.0提供新特性. 翻译的动机主要是为了适配Android 7.0,提前踩点.防止大坑. 就翻译来看,除去一些可有可无的更新之外,关注点主要是集中在四点: * 通知栏一系列更新 * 对于应用后台优化(或者说限制) * WebView持续性更新(混合开发需要注意) * 对于GPU的优化,优化3

Android 7.0动态权限大总结

应公司项目需求,做了下Android 7.0适配.对于我们程序员,适配7.0主要就是对手机本地文件的Uri做转换处理.注意红色字体,意思也就是说对于http开头的等等,非手机存储中的文件就不用管了.Uri.parse("package") 这样的也不用管!!!!! 7.0的适配,就是对手机存储中的私有文件路径的保护,当系统发现你通过intent带走了一个uri,地址是本地的文件,就会限制的.其他的原理普及请搜索其他文章吧,此处略. 下面贴一下使用步骤和我的工具类. 一.需要修改当前mo

制作登录界面的布局时候,可以使用 android:stretchColumns="0,3"

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity=&quo

Android 8.0新特性介绍以及注意事项

2017年8月22日,谷歌正式发布了Android 8.0的正式版,其正式名称为:Android Oreo(奥利奥) .在此之前 临时代号叫: Android O.对应Api level 为26. 2017年12月5日 , 谷歌正式发布了Android 8.1的正式版.对应的Api Level 为27 . Powerful 强大       Secure 安全              Fast 流畅            Smart&seamiess  轻巧&无缝 Android 8.0

在Android 6.0 设备上动态获取权限

众所周知,Android 6.0 相比之前的Android版本有一个很大的不同点,就是动态获取权限.最近要修改原来的程序适配安卓6.0+.以记录下在Android 6.0 上如何动态获取权限. 下面从自己一开始的问题入手 实现拨号功能 说到拨号,一个 Intent 就搞定,代码如下, 1 2 3 4 5 6 private void callDirectly(String mobile){ Intent intent = new Intent(); intent.setAction("andro

Arcgis runtime sdk for android(二)第一个程序Holle Map

说实话,我卡在第一个程序很久,不会,懂得人觉得太简单了,不想理我,很无助,不过习惯了.做事靠自己. 在做这个之前,你需要确保你的环境已经搭建好了,最好你的第一个安卓程序hello world!也跑起来了,那么下面这个hello map将变得非常简单. 做第一个程序,你需要的是什么都不要知道,只需要,我做什么你做什么,因为我了解的不多,回答不来你的很多问题,我也是初学者,写这个主要是心路历程.其实,等你有安卓开发基础,来看这个东西就比较轻松了,不然和我刚开始一样很吃力. 根据官网的guide指导,