Android文件夾簡(jiǎn)介

** 安卓外層文件夾簡(jiǎn)介**

.gradle和.idea:如果用Android Studio編程,這兩個(gè)目錄為Android Studio自動(dòng)生成的文件,無(wú)需關(guān)心。

app:項(xiàng)目中代碼資源等內(nèi)容幾乎都放在這個(gè)目錄下。

build:主要包含了編譯時(shí)自動(dòng)生成的文件。無(wú)需關(guān)心。

gradle:這個(gè)目錄下包含了gradle wrapper的配置文件,使用geadle wrapper的方式不需要提前將agradle下載好,而是自動(dòng)根據(jù)本地緩存情況覺(jué)得是否需要聯(lián)網(wǎng)下載geadle。Android Studio默認(rèn)沒(méi)有啟用gradle wrapper的方式。

.gitignore:這個(gè)文件是用來(lái)將指定的目錄或文件排除在版本控制之外的。

build.gradle:這是項(xiàng)目全局的gradle構(gòu)建腳本,通常不需要修改。

.gradle.properties這個(gè)文件是全局的gradle配置文件,在這里配置的屬性將會(huì)影響到項(xiàng)目中所有g(shù)radle編譯腳本。

gradlew和gradlew.bat:這兩個(gè)文件夾是用來(lái)在命令行界面中執(zhí)行g(shù)radle命令的,其中g(shù)radlew是在linux和mac系統(tǒng)中使用的,gradlew.bat是在windows系統(tǒng)中使用。

HelloWorld.iml:無(wú)需修改的文件夾。

local.properties:指定本機(jī)中的Android SDK路徑,通常內(nèi)容自動(dòng)生成,無(wú)需修改。

settings.gradle:用于指定項(xiàng)目中所有引入的模塊。通常引入自動(dòng)完成,不需修改。


外層app內(nèi)目錄簡(jiǎn)介
build:編譯時(shí)自動(dòng)生成的文件,無(wú)需關(guān)心。

libs:如果項(xiàng)目中使用第三方j(luò)ar包,就需要把這些jar包放入libs目錄下,
放在這個(gè)目錄下的jar包都會(huì)被自動(dòng)添加到構(gòu)建路徑去。

androidTest:此處是用來(lái)編寫(xiě)androidTest測(cè)試用例的,可以對(duì)項(xiàng)目進(jìn)行一些自動(dòng)化測(cè)試。

java:放置java代碼的目錄。

res:項(xiàng)目中的圖片,布局,字符串等資源存放在這個(gè)目錄下。此目錄下子目錄
drawable存放圖片,layout存放布局,values存放字符串。

AndroidManifest.xml:這是整個(gè)android項(xiàng)目的配置文件,程序中定義的四大組件都需要在這個(gè)文件里注冊(cè),另外還可以在這個(gè)文件里給應(yīng)用程序添加權(quán)限聲明。

test:用來(lái)編寫(xiě)Unit Test測(cè)試用例的,是對(duì)項(xiàng)目進(jìn)行自動(dòng)化測(cè)試的另一種方式。

.gitignore:這個(gè)文件用于將app模塊內(nèi)的指定目錄或文件夾排除在版本控制之外,和外層.gitignore文件類似。

app.iml:Intellij IDEA項(xiàng)目自動(dòng)生成的文件,無(wú)需修改。

build.gradle:這是app模塊的gradle構(gòu)建腳本,這個(gè)文件中會(huì)指定很多項(xiàng)目構(gòu)建相關(guān)的配置。

.proguard-rules.pro:這個(gè)文件用于指定項(xiàng)目代碼的混肴規(guī)則。

--

java文件內(nèi)代碼簡(jiǎn)介
activity是安卓系統(tǒng)提供的一個(gè)活動(dòng)基類,我們項(xiàng)目中所有活動(dòng)都必須繼承它或者他的子類才能擁有活動(dòng)的特性(AppCompatActivity是Activity的子類,onCreate()方法是一個(gè)活動(dòng)創(chuàng)建時(shí)必須執(zhí)行的方法。setContentView()方法是給當(dāng)前活動(dòng)引入一個(gè)布局

public class HelloWorldActivity extends AppCompatActivity {   //表明HelloWorldActivity繼承自AppCompatActivity,這是一種向下兼容的activity
    private static final String TAG = "HelloWorldActivity";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.hello_world_layout);


AndroidManifest.xml內(nèi)代碼解析

        <activity android:name=".HelloWorldActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

這段代碼表示對(duì)HelloWorldActivity這個(gè)活動(dòng)進(jìn)行注冊(cè)。沒(méi)有在AndroidManifest里注冊(cè)的活動(dòng)是不能使用的。其中

<action android:name="android.intent.action.MAIN" />
     <category android:name="android.intent.category.LAUNCHER" />

這兩段代碼表示HelloWorldActivity是這個(gè)項(xiàng)目的主活動(dòng),在手機(jī)上點(diǎn)擊app圖標(biāo),首先加載這個(gè)活動(dòng)。

在代碼中通過(guò)R.String.Hello_World獲得字符串的引用
在xml中通過(guò)@String/HelloWorld獲得字符串的引用


        <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"    //設(shè)置應(yīng)用圖標(biāo)屬性
        android:label="@string/app_name"         //設(shè)置應(yīng)用名稱屬性
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".HelloWorldActivity">
</application>


日志Log
android中的日志類是Log,一般添加在src/java文件夾里,在活動(dòng)中的onCreate()方法內(nèi)添加。Log.d("活動(dòng)名","onCreate execute")有5個(gè)方法打印日志。
Log.v():打印最為瑣碎的,意義最小的日志信息。對(duì)應(yīng)級(jí)別是varbose。是android里面級(jí)別最低的。
Log.d():用于打印一些調(diào)試信息。這些信息對(duì)你調(diào)試程序和分析問(wèn)題是有幫助的。對(duì)應(yīng)級(jí)別debug。比varbose高一級(jí)。
Log.i():用于打印一些比較重要的數(shù)據(jù),可以幫你分析用戶行為的數(shù)據(jù)。對(duì)應(yīng)級(jí)別info。比debug高一級(jí)。

Log.w():用于打印一些警告信息,提示程序在這個(gè)地方可能存在潛在風(fēng)險(xiǎn),最好修復(fù)一下出現(xiàn)警告的地方。對(duì)應(yīng)級(jí)別warn。比info高一級(jí)。
Log.e():用于打印程序中的錯(cuò)誤信息。比如程序進(jìn)入到catch語(yǔ)句中,當(dāng)有錯(cuò)誤信息打印出來(lái)的時(shí)候,一般都代表你的程序出現(xiàn)嚴(yán)重問(wèn)題了,必須盡快修復(fù)。對(duì)應(yīng)級(jí)別error。比warn高一級(jí)。



app內(nèi)build.gradle文件夾內(nèi)代碼簡(jiǎn)介

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

android {   //一個(gè)安卓閉包
    compileSdkVersion 21  //用于指定項(xiàng)目的編譯版本,如果是24就表示android7.0系統(tǒng)的SDK編譯
    buildToolsVersion "21.1.0"   //用于指定項(xiàng)目構(gòu)建工具的版本,

    defaultConfig {  //閉包內(nèi)的閉包
        applicationId "com.nian.hua"    //包名
        minSdkVersion 14     //用于指定項(xiàng)目兼容android最低版本   如果是15表示最低兼容android4.0系統(tǒng)
        targetSdkVersion 21   //指定的值用來(lái)表示用來(lái)表示你在安卓系統(tǒng)做了充分測(cè)試,如果是23或更大,就會(huì)出現(xiàn)android6.0系統(tǒng)的運(yùn)行時(shí)權(quán)限功能,如果是22只會(huì)出現(xiàn)android5.1的功能,6.0的實(shí)時(shí)權(quán)限功能就沒(méi)有
        versionCode 1    //用于指定項(xiàng)目的版本號(hào)(僅應(yīng)用市場(chǎng)可見(jiàn))
        versionName "1.0"    //用于指定項(xiàng)目的版本名(終端可見(jiàn))
    }
    buildTypes {   //這個(gè)閉包用于指定生成安裝文件的相關(guān)配置,通常只會(huì)有兩個(gè)子閉包,debug(用于指定生成測(cè)試版安裝文件的配置,可忽略不寫(xiě))和release(用于指定生成正式版安裝文件的配置)
        release {  //用于指定生成正式版安裝文件的配置
            minifyEnabled false  //用于指定是否對(duì)項(xiàng)目的代碼進(jìn)行混肴,false表示不混肴
            proguardFiles  /*  用于指定混肴時(shí)的規(guī)則文件*/ getDefaultProguardFile('proguard-android.txt'/*android SDK目錄下,里面是所有項(xiàng)目通用的混肴規(guī)則*/), 'proguard-rules.pro'//當(dāng)前項(xiàng)目的根目錄下,可以編寫(xiě)當(dāng)前項(xiàng)目特有的混肴規(guī)則
        }
    }
}

dependencies {  //指定當(dāng)前項(xiàng)目所有依定的關(guān)系A(chǔ)ndroid Studio中有三種依賴關(guān)系,本地依賴(對(duì)本地jar包或目錄添加依賴關(guān)系),庫(kù)依賴(可以對(duì)項(xiàng)目中的庫(kù)模塊添加依賴關(guān)系)和遠(yuǎn)程依賴(可以對(duì)jcenter庫(kù)上的開(kāi)源項(xiàng)目添加依賴關(guān)系)。
    compile fileTree /*這是一個(gè)本地聲明*/(dir: 'libs', include: ['*.jar'])  //將libs目錄下所有.jar后綴的文件都添加到項(xiàng)目的構(gòu)建路徑當(dāng)中
    //compile(遠(yuǎn)程依賴聲明)'com.android.support:appcompat-v7:24.2.1'   (com.android.support:appcompat-v7:24.2.1是一個(gè)標(biāo)準(zhǔn)的遠(yuǎn)程依賴庫(kù)格式,其中com.android.support是域名部分,用于和其他公司的庫(kù)做區(qū)分。24.2.1是版本號(hào),用于和同一個(gè)庫(kù)不同版本做區(qū)分。聲明這行代碼后gradle構(gòu)建項(xiàng)目時(shí)會(huì)自動(dòng)檢查本地是否有這個(gè)庫(kù)的緩存,沒(méi)有自動(dòng)聯(lián)網(wǎng)下載,在添加到構(gòu)建路徑當(dāng)中。
}


最外層buile.gradle文件內(nèi)代碼注釋

buildscript {
    repositories {
        jcenter()  //jcenter是代碼托管倉(cāng)庫(kù),聲明這行代碼可以引用任何jcenter上的開(kāi)源項(xiàng)目
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.+'  //使用classpath聲明了一個(gè)Gradle插件,最后面部分是版本號(hào)(最新版是2.2.0)

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}
最后編輯于
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,777評(píng)論 25 709
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評(píng)論 19 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,253評(píng)論 6 342
  • Gradle對(duì)于很多開(kāi)發(fā)者來(lái)說(shuō)有一種既熟悉又陌生的感覺(jué),他是離我們那么近,以至于我每天做項(xiàng)目都需要他,但是他又是離...
    阿_希爸閱讀 9,692評(píng)論 10 199
  • 1. 權(quán)利義務(wù)相對(duì)等,天下沒(méi)有免費(fèi)的午餐 2. 用智慧做一個(gè)逗比的人而不是光用節(jié)操 3. 自由是只屬于年輕人的,中...
    阿呸姑娘閱讀 967評(píng)論 20 15

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