Android系统架构
最底层是Linux内核层。
为Android设备各种硬件提供了底层驱动,如显示驱动,音频驱动等。
系统运行库层。
这层通过一些C/C++库来为Android系统提供主要的特性支持。如Sqlite库提供了数据库支持,OpenGL|ES提供提供3D绘图等。
应用框架层。
主要提供了构建应用程序可能用到的各种API。
应用层。
所有安装在手机上的应用程序都属于这一层。比如系统自带的联系人、短信等程序,自己开发的应用。
Android应用开发特色
四大组件
四大组件分别是活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)和内容提供器(Content Provider)
build.gradle 文件中,compileSdkVersion用于指定项目的编译版本;buildToolsVersion用于指定项目构建工具的版本;applicationId用于指定项目的包名,并且它的优先级高于在 AndroidManifest.xml
中指定的包名;minSdkVersion用于指定项目最低兼容的Android版本;targetSdkVersion表明你在该目标版本上做过了充分的测试,系统将为你的应用程序启用一些最新的功能和特性。比如说Android6.0 系统中引入了运行时权限这个功能,如果你将targetSdkVersion指定成23或者更高,那么系统就会为你的程序启用运行时权限功能;否则就不会启用运行时权限功能。
而在build.gradle的dependencies闭包中,声明了当前项目所有的依赖关系,Android studio 项目一共有3中依赖方式,本地依赖、库依赖和远程依赖,本地依赖可以对本地的jar包或者目录添加依赖关系,形式如:compile fileTree(dir: ‘libs’, include: [‘*.jar’]);库依赖可以对项目中的库模块添加依赖关系,如compile(name: ‘testsdk’, ext: ‘aar’);远程依赖则可以对jcenter库上的开源项目添加依赖关系,如compile ‘com.android.support.constraint:constraint-layout:1.0.2’,其中,com.android.support.constraint是域名,用于和其他公司的库作区分,constraint-layout是组名称,用于和同一个公司其他库作区分。
关于日志:不用System.out.println(),因为Log系统可以对日志分级,可以展示打印时间,可以添加过滤器等等。Log快捷键:如果要打Log.d,则输入logd,按tab键即可,同理Log.i只需要logi之后按Tab键,以此类推,四种级别的日志都能快捷打出来。还有,如果在oncreate方法外面输入logt,然后按下Tab键,就会以当前的类名作为值自动生成一个类似下面的TAG常量:
1 |
|