第一章 初識(shí)android&as

1.1 android系統(tǒng)架構(gòu)

(1)內(nèi)核層:linux

(2)系統(tǒng)運(yùn)行庫(kù)層:Dalvik虛擬機(jī)(Android程序的虛擬機(jī),是Android中Java程序的運(yùn)行基礎(chǔ)。其指令集基于寄存器架構(gòu),執(zhí)行其特有的文件格式——dex字節(jié)碼來(lái)完成對(duì)象生命周期管理、堆棧管理、線程管理、安全異常管理、垃圾回收等重要功能。它的核心內(nèi)容是實(shí)現(xiàn)庫(kù)(libdvm.so),大體由C語(yǔ)言實(shí)現(xiàn)。依賴于Linux內(nèi)核的一部分功能——線程機(jī)制、內(nèi)存管理機(jī)制,能高效使用內(nèi)存,并在低速CPU上表現(xiàn)出的高性能。每一個(gè)Android應(yīng)用在底層都會(huì)對(duì)應(yīng)一個(gè)獨(dú)立的Dalvik虛擬機(jī)實(shí)例,其代碼在虛擬機(jī)的解釋下得以執(zhí)行。)

(3)應(yīng)用框架層:API

(4)應(yīng)用層:應(yīng)用程序

1.2 四大組件

(1)活動(dòng):activity 門面

(2)服務(wù):Service 無(wú)法看到,即使用戶退出應(yīng)用,服務(wù)仍然可以繼續(xù)運(yùn)行。

(3)廣播接收器:Broadcast Receiver 允許接受來(lái)自各處的廣播消息,也可以向外發(fā)送廣播消息。

(4)內(nèi)容提供器:Content Provider 為應(yīng)用程序間共享數(shù)據(jù)提供了可能。

1.3 Gradle

(1)Gradle是一個(gè)非常先進(jìn)的項(xiàng)目構(gòu)建工具,使用了一種基于Groovy的領(lǐng)域特定語(yǔ)言(DSL)來(lái)聲明項(xiàng)目設(shè)置,摒棄了傳統(tǒng)基于XML的各種繁瑣配置。

(2)jcenter:代碼托管倉(cāng)庫(kù)

(3)build.gradle解析

apply plugin: 'com.android.application'  //應(yīng)用模塊和庫(kù)模塊的區(qū)別是一個(gè)可以直接于運(yùn)行,一個(gè)只能作為代碼庫(kù)依附于別的應(yīng)用程序模塊運(yùn)行

android {
    compileSdkVersion 25  //項(xiàng)目編譯版本
    buildToolsVersion "25.0.2" //構(gòu)建工具的版本
    defaultConfig {     //可以對(duì)項(xiàng)目的細(xì)節(jié)進(jìn)行配置
        applicationId "com.example.myapplication"   //包名
        minSdkVersion 15  //最低兼容至4.0系統(tǒng)
        targetSdkVersion 25 //在該版本上做了充分的測(cè)試(即新功能可以使用)
        versionCode 1  //版本號(hào)
        versionName "1.0" //版本名
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {//指定生成安裝文件的相關(guān)配置
        release {//生成正式版安裝文件的相關(guān)配置
            minifyEnabled false //是否對(duì)代碼進(jìn)行混淆
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'    //混淆時(shí)使用的規(guī)則文件
        }  
    }
}

dependencies {   //制定當(dāng)前項(xiàng)目的所有依賴關(guān)系
    compile fileTree(dir: 'libs', include: ['*.jar'])//本地依賴:對(duì)本地的jar包或目錄添加依賴關(guān)系
    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.3.1'//遠(yuǎn)程依賴:對(duì)jcenter庫(kù)上的開(kāi)源項(xiàng)目添加依賴關(guān)系
    compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha7'
    compile 'com.android.support:design:25.3.1'
    testCompile 'junit:junit:4.12'
}
//庫(kù)依賴:對(duì)項(xiàng)目中的庫(kù)模塊添加依賴關(guān)系

1.4 日志工具

(1)Log

  • Log.v() 用于打印最瑣碎的日志信息,對(duì)應(yīng)級(jí)別為verbose。
  • Log.d()調(diào)試信息,debug
  • Log.i()比較重要的,可以幫助分析用戶行為數(shù)據(jù),info
  • Log.w()警告信息,程序在這個(gè)地方可能存在潛在風(fēng)險(xiǎn),warm
  • Log.e()錯(cuò)誤信息,程序出現(xiàn)嚴(yán)重問(wèn)題,error

有兩個(gè)參數(shù):tag對(duì)打印信息進(jìn)行過(guò)濾,msg打印的具體內(nèi)容

(2)AS使用技巧:輸入logd按下tab鍵,會(huì)自動(dòng)補(bǔ)全
(3)功能:日志過(guò)濾器&日志級(jí)別控制&關(guān)鍵字控制

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,355評(píng)論 25 708
  • 用兩張圖告訴你,為什么你的 App 會(huì)卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 14,121評(píng)論 2 59
  • 前言 郭神出品,必屬精品,記得在剛做Android開(kāi)發(fā)的時(shí)候,當(dāng)時(shí)買了Android第一行代碼第一版,看了之后感覺(jué)...
    sweetying閱讀 2,230評(píng)論 0 12
  • 因?yàn)槁?tīng)說(shuō)《前任3》這部電影,讓很多女生在電影院里哭得稀里嘩啦,讓有的男生在走出電影院后傷心倒在地上,加上我一個(gè)同事...
    jollina閱讀 1,375評(píng)論 1 1
  • 東陽(yáng)市首屆徒步登山大會(huì)在西甑山舉行。經(jīng)常聽(tīng)大家說(shuō)西甑山爬山,我卻從來(lái)沒(méi)去過(guò),也不知道它的具體位置,今天有幸參與此次...
    一米馬兒閱讀 653評(píng)論 2 7

友情鏈接更多精彩內(nèi)容