1.Android的系统架构
1,Linux内核层
这一层为Android设备的各种硬件提供了底层驱动,如显示驱动,相机驱动,蓝牙驱动,WiFi驱动等
2.系统运行库层
这一层主要通过 c/c++库来为Android系统提供主要的特新支持,如SQLLite提供了数据库的支持, OpenGl|ES库提供了3D绘图的支持, 这一层还有Android运行时库,提供了一些核心库,能够允许开发者使用java来开发Android应用。 还包含了Dalvik虚拟机
3.应用框架层
这一层主要提供了构建应用程序时可能用到的各种API, 开发者可以使用这些API完成程序的构建
4.应用层
所有安装在手机上的应用程序都是属于这一层
2.Android开发特色
1.四大组件
Activity Service Broadcast Receiver Content Provider( 内容提供器,为应用程序之间共享数据提供了可能 )
2.丰富的系统控件
3.SQLLite 数据库 (不仅支持标准的SQL语法,还可以通过Android封装好的API进行操作)
4.多媒体
5.定位系统
工具简介 :
JDK java语言的软件开发包 包含了java的运行环境,工具集合,基础类库等内容
Android SDK 是谷歌提供的Android开发工具包,在开发Android程序时引入,来使用相关的API
3.创建新的项目与创建虚拟设备
4.将项目切换到project目录(分析目录)
1 .gradle和.idea
放的是Android自动生成的一些文件,我们无需关心,也没有必要去修改这些文件
2. app
项目中的代码,资源等内容几乎都是放在这个目录下面,开发工作也主要集中在这个目录
3.build
无需过多的关心, 主要包含了一些编译时自动生成的文件
4.gradle
包含了gradle wrapper的配置文件
5. .gitignore
这个文件主要是用来将指定的目录或文件排除在版本控制之外的
6. build.gradle
这是全局的gradle构建脚本
7.gradle.properties
这个文件是全局的gradle配置文件,会影响到项目中所有的gradle编译脚本
8.gradlew和gradlew.bat
分别是用来在命令行执行gradle命令的, gradlew是用来在Linux或者Mac上使用 gradlew.bat是用来在Windows上执行的
9.local.properties
这个文件用来指定本机中SDK路径,通常都是自动生成的不需要修改
10.settings.gradle
用来指定项目中所有引入的模块。由于HelloWord项目中只有一个app模块,因此文件中也就只引入了app这一个模块
APP目录的分析
1.build
和外层的build类似,包含了一些在编译时自动生成的文件
2.libs
如果项目使用了第三方jar包,就需要把这些jar包都放在libs目录下
3.AndroidTest
用来编写AndroidTest测试用例的,可以对项目进行一些自动化测试。
4.java
放置我们所有java代码的地方
//所有活动都必须是Activity或者它的子类
public class HelloWorldActivity extends Activity{
@override
protected void onCreate( Bundle savedInstanceState ){
super.onCreate( savedInstanceState );
//给当前的活动引入了一个hello_world_layout的布局 Android设计讲究逻辑与视图分离
setContentView( R.layout.hello_world_layout ); //引入了 res/layout/hellow_world_layout的布局
}
}
5.res
项目所使用到的所有图片图标(drawable目录),布局(layout目录),字符串(values目录)资源等
引用资源的方式 1.在代码中 R.string.hello_world 2.在XML中通过@string/hello_world
6.AndroidManifest.xml
这个是整个Android项目的配置文件,在程序中定义的四大组件都需要在这个文件里注册
<activity android:name = ".HelloWorldActivity">
<intent-filter> //Android项目的主活动 启动的主页面
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
7.test
用来编写Unit Test 测试用例的,是项目自动化测试的另一种方式
8. .gitignore
这个文件用于将app模块内指定的目录或则文件排除在版本控制之外
9. app.ini
Intellij IDEA 自动生成的文件
10 build.gradle
这是APP模块的gradle构建脚本,
第一行一般有com.android.application 表示这是一个应用程序模块 com.android.library 表示这是一个库模块
dependencies闭包可以指定当前项目所有的依赖关系
5.日志工具的使用
Log.v() Log.d() Log.i() Log.w() Log.e()
logt 的使用
自定义logcat的过滤器