資源描述:
《android編碼規(guī)范》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、寫在開頭:強(qiáng)制遵循的規(guī)范使用綠色標(biāo)注,必須不允許的規(guī)范使用紅色標(biāo)注,建議遵循的使用紫色標(biāo)注。使用Androidstudio作為集成開發(fā)環(huán)境對于編輯器,每個(gè)人都有自己的選擇,讓編輯器根據(jù)工程結(jié)構(gòu)和構(gòu)建系統(tǒng)高效運(yùn)作,是每個(gè)人的責(zé)任。推薦使用AndroidStudio,由谷歌開發(fā),并且最接近Gradle,默認(rèn)使用最新的工程結(jié)構(gòu)。相比較而言EclipseADT使用舊的工程結(jié)構(gòu)和Ant作為構(gòu)建系統(tǒng),它不僅需要繁瑣的配置,而且gardle和adb命令行同樣需要學(xué)習(xí)成本。使用Gradle構(gòu)建項(xiàng)目默認(rèn)編譯環(huán)境使用Gradle。Ant不僅有
2、限制而且操作方式非常繁瑣,使用Gradle編譯,可以輕松實(shí)現(xiàn)以下幾點(diǎn):1.???構(gòu)建App的不同版本,在debug和release之間輕松切換。2.???快速制作簡單的腳本任務(wù)3.???輕松下載和管理依賴庫4.???能夠方便的按照要求定制Keystore另外值得一提的是,如果你想更快的構(gòu)建小規(guī)模可重用程序模塊,可以采用FacebookBuck,與傳統(tǒng)Android編譯工具相比,Buck憑借多核及并行技術(shù),極大加速了Android工程的編譯速度,并且在多次編譯中,它會(huì)對未變動(dòng)的模塊進(jìn)行標(biāo)記,從而以增量式編譯的方式進(jìn)一步提高構(gòu)
3、建速度。項(xiàng)目結(jié)構(gòu)廢棄過時(shí)的Ant&EclipseADT工程結(jié)構(gòu),統(tǒng)一使用新的Gradle&AndroidStudio的工程結(jié)構(gòu)。要使用Androidstudio結(jié)構(gòu):1.???new-link-structure2.???├─?library-imsdk3.???├─?app4.???│?├─?libs5.???│?├─?src1.???│?│?├─?androidTest2.???│?│?│?└─?java3.???│?│?│?└─?com/im/project4.???│?│?└─?main5.???│?│?├─?ja
4、va6.???│?│?│?└─?com/im/project7.???│?│?├─?res8.???│?│?└─?AndroidManifest.xml9.???│?├─?build.gradle10.???│?└─?proguard-rules.pro11.???├─?build.gradle12.???└─?settings.gradle不使用Eclipse結(jié)構(gòu):1.???old-link-structure2.???├─?assets3.???├─?libs4.???├─?res5.???├─?src6.???│?└
5、─?com/im/project7.???├─?AndroidManifest.xml8.???├─?build.gradle9.???├─?project.properties10.???└─?proguard-rules.pro通過比較可見Androidstudio的項(xiàng)目結(jié)構(gòu)更加清晰,強(qiáng)調(diào)了Gradle概念。其中l(wèi)ibrary-imsdk是app所依賴的module。簽名配置發(fā)布release版本的時(shí)候,必須確認(rèn)SigningConfigs的保密性:創(chuàng)建一個(gè)不加入版本控制系統(tǒng)的gradle.properties文件,或
6、者記錄在本地的local.properties中。1.???KEYSTORE_PASSWORD=storePassword2.???KEY_PASSWORD=keyPassword上面提到的兩個(gè)文件會(huì)被gradle自動(dòng)引入,因此可以在buld.gradle中直接引用,例如:1.???signingConfigs?{2.???release?{3.?????try?{4.?????storeFilefile("myapp.keystore")1.?????storePasswordKEYSTORE_PASSWORD2.???
7、???keyAlias?"storeKey"3.??????keyPasswordKEY_PASSWORD4.?????}5.?????catch?(ex)?{6.???????throw?new?InvalidUserDataException("YoushoulddefineKEYSTORE_PASSWORDandKEY_PASSWORDingradle.properties.")7.?????}8.????}9.???}不采用以下示例方式,因?yàn)檫@會(huì)導(dǎo)致敏感信息的泄露:1.???signingConfigs?{2.??
8、?release?{3.?????storeFilefile("myapp.keystore")4.?????storePassword?"storePassword"5.?????keyAlias?"storeKey"6.?????keyPassword?"keyPassword"7.????}8.?