一、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文件夾下即可
新聞熱點
疑難解答