本站在前面的文章中就安卓APP開發(fā)項(xiàng)目如何解決ProGuard 指令,深圳APP開發(fā)公司本文重點(diǎn)與各位APP開發(fā)愛好者分享AndroidStudio使用技巧,編譯打包、功能宏的使用、集成SO文件、模板的定制使用。
編譯打包使用AndroidStudio可以很方便地一次編譯多個(gè)渠道包,具體步驟如下所述。
(1)在AndroidManifest.xml文件中配置CHANNEL字符串。
< meta- data android: name=" UMENG_ CHANNEL"
android: value="${ CHANNEL_ VALUE}" tools: replace=" android: value"/>
(2)在項(xiàng)目中增加各渠道文件夾的相關(guān)文件。如不同渠道包連接的服務(wù)器地址不同,可以做如圖25-1所示的配置。
每個(gè)渠道包的strings.xml文件中包含對(duì)應(yīng)的服務(wù)器地址。
< resources> < string name=" base_ url"> http:// www. xxx. com</ string> </ resources>
(3)在build.gradle文件中添加如下代碼。
productFlavors { // 編譯 3 個(gè) 渠道 包 demo3 { } demo4 { } demo5 { } // 設(shè)置 每個(gè) 渠道 包 中的 渠道 名稱 productFlavors. all { flavor -> flavor. manifestPlaceholders = [CHANNEL_ VALUE: name] } // 把 代碼 的 提交 次數(shù)+ 渠道 名稱 作為 版 本號(hào) applicationVariants. all { variant -> if (variant. buildType. name. equals( 'release ')) { def gitVersion = gitVersionCode() variant. mergedFlavor. versionCode = gitVersion variant. mergedFlavor. versionName = gitVersion. toString() + variant. mergedFlavor. manifestPlaceholders. CHANNEL_ VALUE }
} // 按 APK 名+ 版 本號(hào)+ 編譯 時(shí)間+ 渠道 名稱 的 方式 修改 編譯 的 APK 文件 名稱 applicationVariants. all { variant -> if (variant. buildType. name. equals( 'release ')) { variant. outputs. each { output -> def outputFile = output. outputFile if (outputFile != null && outputFile. name. endsWith( 'release. apk ')) { def fileName = "xxx_ v${ variant. mergedFlavor. versionName}_${ releaseTime()}_${ va riant. productFlavors[ 0]. name}. apk" output. outputFile = new File( outputFile. parent, fileName) } // 刪除 xxx- unaligned. apk 這類 沒有 字節(jié) 對(duì)齊 的 APK 文件 if( output. zipAlign != null){ output. zipAlign. doLast{ output. zipAlign. inputFile. delete() } } } }
} } //獲取 git 服務(wù)器 上 的 代碼 提交 次數(shù) def gitVersionCode() { def cmd = ' git rev- list HEAD --count ' cmd. execute(). text. trim(). toInteger() } //得到 當(dāng)前 時(shí)間 的 字符串, 不 能用 UTC 時(shí)區(qū), 要用 上海 所在 的 時(shí)區(qū)( 也就是 北京時(shí)間) def releaseTime() { return new Date(). format(" yyyyMMddHHmmss", TimeZone. getTimeZone(" Asia/ Shanghai")) }
APP開發(fā)關(guān)于功能宏的使用
通常增加一個(gè)功能需要修改多個(gè)文件,有時(shí)還會(huì)遇到這樣的情況:A版本增加的功能,B版本上由于某個(gè)原因給關(guān)閉了,到C版本又需要打開。C語言提供了宏這種常量,可以把各文件里的功能代碼包含在宏代碼塊里,通過修改宏的值就可以打開和關(guān)閉功能,而不用在各個(gè)文件里修改代碼。Java沒有提供宏這樣的常量,但可以利用AndroidStudio自己實(shí)現(xiàn)類似的功能。在build.gradle中添加如下代碼:buildTypes { release { // 增加 功能 開關(guān) buildConfigField "boolean", "MD5_ ON", "true" } }
在Java文件中添加如下代碼:
if( BuildConfig. MD5_ ON) { MD5. encode( password); }
如果要關(guān)閉MD5加密功能,把MD5_ON的值設(shè)為false就可以了。好了,APP開發(fā)公司本文關(guān)于“安卓項(xiàng)目開發(fā)如何快速熟悉Studio使用技巧”就分享到這里,我們希望本站相關(guān)文章能給您的APP開發(fā)前期規(guī)劃以及后期運(yùn)行維護(hù)有所幫助,謝謝關(guān)注,博納網(wǎng)絡(luò)編輯整理。