Android是一個(gè)開(kāi)源的,基于Linux的自由及開(kāi)放源代碼的操作系統(tǒng)。主要使用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦。
安卓開(kāi)發(fā)環(huán)境:
安卓開(kāi)發(fā)所使用的語(yǔ)言是JAVA或Kotlin,底層操作使用C\C++。
??安卓開(kāi)發(fā)的工具主要有Eclipse或IDEA、Android Studio。其中Android Studio是官方指定的開(kāi)發(fā)工具,推薦使用。而Eclipse目前(2020年2月14日)谷歌不再支持。推薦使用IDEA或Android Studio。
注意!無(wú)論是設(shè)置SDK的路徑或者是設(shè)置你的項(xiàng)目或者是其它的,都不能使用中文!也盡可能的去不用中文!
JDK
JDK
??JDK是JAVA語(yǔ)言的編譯器,全稱(chēng)為Java Development Kit,即Java開(kāi)發(fā)工具包。因?yàn)?strong>Android應(yīng)用層采用Java開(kāi)發(fā),其運(yùn)行在Java虛擬機(jī)(Dalvik虛擬機(jī),與JVM虛擬機(jī)不同)上。
??JDK建議安裝1.8及其以上版本,因?yàn)椴煌腁ndroid版本對(duì)JDK有相應(yīng)的要求,例如Android 5.0默認(rèn)使用JDK1.7編譯,Android 7.0默認(rèn)使用JDK1.8編譯。
??如果JDK為1.6或者1.78,而SDK為最新版本,就可能會(huì)導(dǎo)致一下問(wèn)題。
??(1)創(chuàng)建項(xiàng)目后,瀏覽布局文件設(shè)計(jì)圖時(shí)會(huì)報(bào)錯(cuò)Android N requires the IDE to be running with Java 1.8 or later.
??(2)編譯項(xiàng)目失敗,提示錯(cuò)誤 com/android/dx/command/dexer/Main: Unsupported major.minor version 52.0.
??(3)運(yùn)行App失敗,提示錯(cuò)誤complieSdkVersion ‘a(chǎn)ndroid-24’ requires JDK 1.8 or later to compile.
SDK
SDK是Android應(yīng)用的編譯器,全稱(chēng)為 Software Development Kit,即軟件開(kāi)發(fā)工具包。SDK提供了App開(kāi)發(fā)的常用工具合集。
其中主要包括:
add-ones 目錄: 存放Google提供的服務(wù)擴(kuò)展包。(Eclipse存在,Android Studio已經(jīng)移動(dòng)到其它地方去了。)
build-tools 目錄: 存放各版本Android的各種編譯工具。
docs 目錄: 存放開(kāi)發(fā)說(shuō)明文檔。
extras目錄: 存放Android附加支持文件。主要有Android 的 support 支持包,Google 的幾個(gè)工具和驅(qū)動(dòng)、Intel 的 IntelHaxm。
platforms 目錄: 存放各個(gè)版本的Android資源文件。包括字體、res 資源、模板等。
platform-tools和tools 目錄,存放常用的開(kāi)發(fā)輔助工具。十分重要。
samples 目錄:存放各版本Android常用功能的demo 源碼。
sources 目錄: 存放各版本Android的API開(kāi)發(fā)接口源碼。
system-images 目錄:存放模擬器各版本的系統(tǒng)鏡像與管理工具。
emulator 目錄: 存放模擬器軟件。
patcher:存放補(bǔ)丁文件夾。(我也不知道是啥,翻譯過(guò)來(lái)就是補(bǔ)丁)
cmake:存放跨平臺(tái)的編譯工具,用來(lái)編譯C/C++代碼。
ndk : 存放NDK開(kāi)發(fā)工具。
fonts:存放字體。
licenses:存放SDK的驗(yàn)證,文件中存放著SKD的校驗(yàn)碼。
lldb:存放c/c++調(diào)試器,用于NDK的調(diào)試。
skins:皮膚文件夾,存放一些虛擬機(jī)的效果圖片。
(注:圖片中僅僅是剛安裝上的SDK。后面下載會(huì)會(huì)新添一些文件。例如安裝了NDK的話就會(huì)存在ndk文件夾。)
NDK
NDK是C\C++代碼的編譯器,全稱(chēng)Native Development Kit。即原生開(kāi)發(fā)工具包。該工具主要提供JNI接口使用,先將C\C++代碼編譯成so庫(kù),然后由Java代碼通過(guò)JNI接口調(diào)用so庫(kù)。
??因?yàn)镴ava字節(jié)碼極其容易反編譯查看到源代碼,所以利用C\C++編譯出來(lái)的so庫(kù)可以存放一些核心代碼,so庫(kù)與Java字節(jié)碼更難破解。且C\C++運(yùn)行速度比Java快,可以編寫(xiě)一些處理量比較大、耗時(shí)的數(shù)據(jù)。(例如,音頻,視頻的處理運(yùn)算。
gradle
簡(jiǎn)單了解Gradle
Gradle是一個(gè)基于Apache Ant和Apache Maven概念的項(xiàng)目自動(dòng)化構(gòu)建開(kāi)源工具。它使用一種基于Groovy的特定領(lǐng)域語(yǔ)言(DSL)來(lái)聲明項(xiàng)目設(shè)置。其主要用于描述Android開(kāi)發(fā)所需要的環(huán)境,管理第三方j(luò)ar包,第三方擴(kuò)展庫(kù),jar依賴(lài)關(guān)系等。
了解開(kāi)發(fā)App的工程結(jié)構(gòu)
Android Studio的工程創(chuàng)建分成了兩個(gè)層次。
第一層次是Project(項(xiàng)目),指定了當(dāng)前項(xiàng)目的工作空間。其相當(dāng)于Eclipse的workspace。
??從圖中可以看到,該項(xiàng)目下有4個(gè)文件夾,其中.gradle用來(lái)保存gradle的依賴(lài)信息,.idea用來(lái)保存開(kāi)發(fā)工具的設(shè)置信息。
??而app是我們主要開(kāi)發(fā)的文件夾,gradle是存放gradle的文件。我們只要關(guān)心app文件夾即可。?不過(guò)呢,還是要需要了解一些其根目錄下的一些文件。
.gitignore 文件:指明git忽略文件清單,其指定的文件夾不會(huì)上傳到倉(cāng)庫(kù)中。
Account.iml 文件:是項(xiàng)目用于保存開(kāi)發(fā)工具信息的文件。其文件名是項(xiàng)目名。
build.gradle 文件:項(xiàng)目級(jí)編譯規(guī)則文件,用于描述整個(gè)項(xiàng)目工程的編譯規(guī)則。
proguard-rules.pro 文件:用于描述Java文件的代碼混淆規(guī)則。
gradle.properties 文件:用于配置編譯工程的命令行參數(shù),一般無(wú)需改動(dòng)。
gradlew 文件: Gradle Wrapper,用于是Gradle本身的安裝、部署。其為L(zhǎng)inux 下可執(zhí)行腳本。
gradlew.bat 文件: Gradle Wrapper,用于是Gradle本身的安裝、部署。其為Windows下可執(zhí)行腳本。
local.properties 文件: 用于描述開(kāi)發(fā)者本機(jī)的環(huán)境配置。SDK、NDK等指定路徑就該文件中。
settings.gradle 文件:配置哪些模塊一起編譯。初始內(nèi)容為include ‘:app’,表示只編譯App模塊。
第二層次是Module(模塊),指定了當(dāng)前項(xiàng)目中的模塊,其中一個(gè)模塊指一個(gè)單獨(dú)的App工程。但也可以通過(guò)模塊化編程合為一個(gè)App。其相當(dāng)于Eclipse的project。
??其實(shí)app文件夾就是一個(gè)Module。當(dāng)我們?cè)趧?chuàng)建一個(gè)新的Project時(shí),就創(chuàng)建了一個(gè)默認(rèn)的Module。其就是app文件夾。
從上方Module結(jié)構(gòu)圖中,我們可以看到:
build 目錄:存放編譯構(gòu)建后的文件。
libs 目錄:存放第三方j(luò)ar包。
src 目錄:源文件。
build.gradle 文件:當(dāng)前Module的配置文件。
其中src目錄和build.gradle文件比較重要。
下面會(huì)仔細(xì)講解。
(app/src)
src文件夾包含了androidTest文件夾、main文件夾(重要!)、test文件夾。
androidTest 目錄:安卓單元測(cè)試。其主要涉及Android儀器的單元測(cè)試。
main 目錄:開(kāi)發(fā)目錄。
test 目錄:單元測(cè)試。其不包含安卓的框架測(cè)試。
其中androidTest和test主要包含了java目錄,其中包含著相對(duì)應(yīng)的測(cè)試。
(app/src/main)
而main是我們主要的開(kāi)發(fā)目錄。主要包括如下:
(1) java 目錄:主要存放java文件。其目錄下是包名。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-603488.html
(app/src/main/res)
(2) res 目錄: 安卓資源文件夾。主要存放布局資源,圖片資源等等。
res\drawable 目錄: 存放圖形描述文件與用戶(hù)圖片。其中后面跟隨著的hdpi、mdpi、xhdpi、xxhdpi等等都是指圖片的分辨率,相對(duì)應(yīng)的圖片應(yīng)該放入相對(duì)應(yīng)的文件夾中。
res\layout 目錄:存放app頁(yè)面的布局文件。
res\mipmap 目錄:app的圖標(biāo)文件夾。存放app的圖標(biāo)。其文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-603488.html
到了這里,關(guān)于了解安卓,了解JDK、SDK、NDK,了解gradle的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!