一、Android系统架构
分为4层,分别为linux内核层、系统运行库层、应用框架层、应用层
1、Linux内核层
主要提供了底层驱动,如照相驱动,蓝牙驱动等
2、系统运行库层(特性支持,虚拟机,核心库)
通过C/C++库来提供各种特性支持,如sqlite,3D绘图
在此层还包含一个android运行时库,里面含有Dalvik虚拟机(5.0后变为ART运行环境),还提供了一些核心库,允许android使用java语言来编写
3、应用框架层
提供了各种用到的API,应用层开发者处于此层
4、应用层
指用户所在层次,各种安装在手机上的APP都属于此
二Android各版本号与API的关系
2.2——8 2.3——104.0——154.1——164.2——174.3——184.4——19
5.0——21 (ART运行环境代替dalvik虚拟机 /MaterialDesign /手表TV等也是这个版本出的)
5.1——22
6.0——23 (运行时权限 /增加了android系统安全性)
7.0——24 (多窗口模式)
7.1——25
三、androidstudio PRoject层各文件夹含义(只记录可能有用的,不用管的不记)
1、.gitignore:将指定目录或者文件排除在版本控制之外
2、build.gradle:全局的构建脚本
3、local.properties:指定本机SDK路径
4、settings.gradle:指定项目中引入模块
四、androidstudio app层各文件夹含义(只记录可能有用的,不用管的不记)
1、libs:放jar包
2、.gitignore:将app模块内指定目录或者文件排除在版本控制之外
3、build.gradle:app模块的构建脚本
4、androidTest和test:编写测试用例的
5、proguard-rules.pro:指定混淆规则
五、app模块中build.gradle详解
apply plugin: 'com.android.application'//这是一个应用程序模块,库模块为com.android.libraryandroid { compileSdkVersion 25//编译sdk版本,这里用6.0sdk编译的 buildToolsVersion "24.0.2"//编译工具版本 defaultConfig { applicationId "com.sby.lbstest"//你的包名 minSdkVersion 19//最低兼容版本 targetSdkVersion 25//充分测试过的版本,该版本及其以下版本功能全开 versionCode 1//版本号 versionName "1.0"//版本名 testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false//是否混淆(正式版) proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'//代码混淆配置 } }}dependencies { compile fileTree(include: ['*.jar'], dir: 'libs')//本地依赖放在libs包下的.jar文件 androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:25.1.0'//远程依赖 testCompile 'junit:junit:4.12' compile files('libs/BaiduLBS_Android.jar')//库依赖}六、日志工具
日志级别分为五种由低到高为v d i w e
七、琐碎知识
doawable文件夹有各种分辨率,drawable-hdpi,drawable-xhdpi,drawable-xxhdpi等等 一般情况下的图片放在drawable-xxhdpi文件夹下即可
新闻热点
疑难解答