2017-10-16
Android系统架构:
1、Linux内核层:底层驱动,如显卡驱动、音频驱动等
2、系统运行库层:C/C++库支持,如SQLite库、OpenGL\ES库提供3D绘图等;Android运行时库,提供核心库允许Java编写Android应用,还包含Dalvik虚拟机等。
3、应用框架层:提供构建应用程序时用到的各种API。
4、应用层:手机应用。
Android应用开发特色
1、四大组件:活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)和内容提供器(Content Provider)
2、丰富的系统控件
3、SQLite数据库
4、强大的多媒体
5、地理位置定位
开发所需要的工具
1、JDK:Java运行环境、工具集合、基础类库等。
2、Android SDK:谷歌提供的Android开发工具包。
3、Android Studio:Android开发IDE
2017-10-18
代码结构分析
1、.gradle和.idea:Android Studio自动生成的一些文件,无须关心,也不要去手动编辑。
2、app:代码和资源都在这目录下。
3、build:无需关心,包含编译时自动生成的文件。
4、gradle:百度后发现是一种构建工具,可以把一些小的差异编译、打包成不同的应用包。
5、.gitignore:将指定的目录或文件排除在版本控制之外。
6、build.gradle:项目全局的gradle构建脚本,通常不需要修改。
7、gradle.properties:全局gradle配置文件,影响到项目中所有的gradle编译脚本。
8、gradlew和gradlew.bat:执行gradle命令,gradlew是在Linux或Mac系统中使用,后者在Windows中使用。
9、HelloWorld.iml:iml文件是所有IntelliJ IDEA项目都会自动生产的一个文件,用于标识,不需修改。
10、 local.properties:本机中的Android SDK路径,通常内容自动生成,不需修改。
11、settings.gradle:指定项目中所有引入的模块,无需修改。
注:除了app目录之外,大多数的文件和目录都是自动生产的,并不需要进行修改。
2017-10-20
app目录结构
1、build:跟外层的build目录类似,包含一些在编译时自动生成的文件,不需关心。
2、libs:使用第三方jar包时,需要放libs目录下,会被自动添加到构建路劲里去。
3、androidTest:编写Android Test测试用例,一些自动化测试。
4、java:放置Java代码的地方。
5、res:所有图片(drawable)、布局(layout)、字符串资源(values)、图标(mipmap)都放这个目录下。
6、AndroidMainfest.xml:整个Android项目的配置文件,四大组件都需在这里注册,添加权限声明。
7、test:编写Unit Test测试用例的,对项目进行自动化测试的另一种方式。
8、.gitignoore:将app模块内的制定目录或文件排除在版本控制之外,作用跟外层的类似。
9、app.iml:IntelliJ IDEA项目自动生成的文件,不需关心。
10、build.gradle:app模块的gradle构建脚本,指定很多项目构建相关的配置。
11、proguard-rules.pro:用于指定项目代码的混淆规则。