• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            牽著老婆滿街逛

            嚴以律己,寬以待人. 三思而后行.
            GMail/GTalk: yanglinbo#google.com;
            MSN/Email: tx7do#yahoo.com.cn;
            QQ: 3 0 3 3 9 6 9 2 0 .

            Android Studio實戰技巧

            轉載自:http://www.cnblogs.com/qianxudetianxia/p/3987395.html


            使用android studio開發項目的一些問題,功能和技巧。

            1. 環境

            Mac OSX 10.9.5 + Android Studio 0.8.9

            2. gradle項目加載超慢

            這是因為gradle官方下載地址特別慢導致,解決方案有2個:

            • VPN,干凈利索。

              推薦VPN

            • 拷貝一個gradle的已下載的壓縮包到gradle目錄的wrapper路徑下,然后關閉Android Studio在打開,它會自動識別并解壓好。

            第二種方案,具體以Mac為例子,Android Studio 0.8.9默認使用的gradle版本還是gradle-1.12。

            • 下載gradle-1.12-all.zip,放到~/.gradle/wrapper/dists/gradle-1.12-all/2apkk7d25miauqf1pdjp1bm0uo,這個2apkk7d25miauqf1pdjp1bm0uo是隨機生成的標識碼,各人可能不一樣。

            • 效果圖。
              1

            • gradle-1.12-all.zip我上傳了一個到百度云盤。

              下載gradle-1.12-all.zip

            • linux的gradle的目錄和mac上一樣,Windows是在你的用戶目錄下。

            3. Android Studio添加引用第三方Library

            右鍵Module - Open Module Settings - Dependencies, 找到"+"按鈕,選擇Library dependency,彈出對話框,

            選中support-annotations,

            它會在Module下的build.gradle中的dependencies添加一行:

            compile 'com.android.support:support-annotations:20.0.0'

            4. 默認編譯的應用版本選擇

            當你點擊那個右三角運行按鈕的時候,它默認是會運行debug版本,其實這里可以調整為默認編譯release版本,當然這點上可能對你不是很重要。

            但是當你定義了各種版本,并且想區別開發,這就很有用了。

            在左下角 - Build Variants - 選擇默認版本。

            5. 顯示行號

            Setings - Editor - Appearance - 勾選Show line numbers

            6. 快捷鍵

            這個網上有很多資料,而且在設置里面可以選擇自己習慣的Keymap,比如eclipse,這里點到為止。

            列舉幾個參考鏈接:

            http://www.developerphil.com/android-studio-tips-of-the-day-roundup-1/

            http://www.developerphil.com/android-studio-tips-of-the-day-roundup-2/

            7. 插件

            Settings - Plugins - Browser repositories - 彈出對話框 - 選中某一插件 - 右邊Install plugin。

            比如,安裝.gigignore support,提示需要重啟,重啟后查看.gitigore由之前的黑白變的有高亮效果了,還有其他功能,在插件介紹中都有詳細說明。

            關于一些好的插件的推薦,可以單開一篇博客了,在此不贅述。

            8. 多版本編譯

            原理

            采用動態替換渠道字符串的方式,生成各渠道的AndroidManifest.xml文件并打包。

            說明:參考自友盟umeng-muti-channel-build-tool/Gradle,并實際項目驗證OK。

            關鍵代碼
            //替換AndroidManifest.xml的REPLACE_KEY字符串為渠道名稱 android.applicationVariants.all{ variant -> variant.processManifest.doLast{         //v1.11之前這里用的copy{},我換成了文件操作,這樣可以在v1.11版本正常運行,并保持文件夾整潔 //${buildDir}是指build文件夾 //${variant.dirName}是flavor/buildtype,例如GooglePlay/release,運行時會自動生成 //下面的路徑是類似這樣:build/intermediates/manifests/GooglePlay/release/AndroidManifest.xml def manifestFile = "${buildDir}/intermediates/manifests/${variant.dirName}/AndroidManifest.xml" //將字符串REPLACE_KEY替換成flavor的名字 def updatedContent = new File(manifestFile).getText('UTF-8').replaceAll("REPLACE_KEY", "${variant.productFlavors[0].name}") new File(manifestFile).write(updatedContent, 'UTF-8') //將此次flavor的AndroidManifest.xml文件指定為我們修改過的這個文件 variant.processResources.manifestFile = file("${buildDir}/intermediates/manifests/${variant.dirName}/AndroidManifest.xml") } }
            具體步驟
            • AndroidManifest.xml中添加渠道meta
            <application android:label="@string/app_name"> <meta-data android:name="APP_PID" android:value="default" /> <activity android:name="com.jayfeng.xxx" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application>
            • 完整的build.gradle
            apply plugin: 'android' android { compileSdkVersion 19 buildToolsVersion '19.1' defaultConfig { applicationId 'com.jayfeng.app.test' minSdkVersion 15 targetSdkVersion 19 versionCode 1 versionName 'V1.0' } signingConfigs { myConfig { storeFile file("xxxxxx.keystore") storePassword "xxxxxxx" keyAlias "xxxxx" keyPassword "xxxxxx" } } buildTypes { release { signingConfig signingConfigs.myConfig runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } productFlavors { "default" {} google {} "91" {} hiapk {} gfan {} goapk {} appChina {} mumayi {} eoe {} nduo {} feiliu {} crossmo {} huawei {} QQ {} "3G" {} "360" {} baidu {} sohu {} "163" {} UC {} dangle {} samsung {} mmw {} xiaomi {} lenovo {} nearme {} } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile project(':mblog') } tasks.withType(Compile) { options.encoding = "UTF-8" } //替換AndroidManifest.xml的default字符串為渠道名稱 android.applicationVariants.all{ variant -> variant.processManifest.doLast{ //之前這里用的copy{},我換成了文件操作,這樣可以在v1.11版本正常運行,并保持文件夾整潔 //${buildDir}是指build文件夾 //${variant.dirName}是flavor/buildtype,例如GooglePlay/release,運行時會自動生成 //下面的路徑是類似這樣:build/manifests/GooglePlay/release/AndroidManifest.xml def manifestFile = "${buildDir}/intermediates/manifests/${variant.dirName}/AndroidManifest.xml" //將字符串default替換成flavor的名字 def updatedContent = new File(manifestFile).getText('UTF-8').replaceAll("default", "${variant.productFlavors[0].name}") new File(manifestFile).write(updatedContent, 'UTF-8') //將此次flavor的AndroidManifest.xml文件指定為我們修改過的這個文件 variant.processResources.manifestFile = file("${buildDir}/intermediates/manifests/${variant.dirName}/AndroidManifest.xml") } }

            9. 小結

            Android Studio作為新的開發工具,需要不斷的探索才能更好的使用,才能發揮出它遠勝eclipse的強大!

            posted on 2015-06-12 15:44 楊粼波 閱讀(736) 評論(0)  編輯 收藏 引用

            久久精品国产亚洲av麻豆色欲 | 91久久国产视频| 亚洲一本综合久久| 亚洲伊人久久综合影院| 2022年国产精品久久久久| 久久精品国产亚洲7777| 久久婷婷成人综合色综合| 热久久这里只有精品| 久久精品人妻中文系列| 日本久久久精品中文字幕| 99蜜桃臀久久久欧美精品网站| 久久er热视频在这里精品| 久久精品国产亚洲AV蜜臀色欲| 四虎国产精品免费久久5151| 中文精品久久久久人妻不卡| 久久激情五月丁香伊人| 九九精品99久久久香蕉| 久久精品一区二区三区AV| 久久久久久毛片免费看| 94久久国产乱子伦精品免费| 久久久免费精品re6| 久久精品国产免费观看三人同眠| 嫩草影院久久99| 久久久精品免费国产四虎| 久久精品国产亚洲AV无码麻豆| 久久精品亚洲福利| 国产亚州精品女人久久久久久| 国产精品国色综合久久| 久久丫精品国产亚洲av不卡| 欧美亚洲国产精品久久高清| 久久精品国产一区二区三区| 久久99国产精品久久| 99久久成人国产精品免费| 日产精品久久久一区二区| 欧美亚洲色综久久精品国产| 无码精品久久久久久人妻中字| 久久久久亚洲AV片无码下载蜜桃| 2021久久精品免费观看| 99久久精品免费看国产一区二区三区 | 国产成年无码久久久免费| 久久久久亚洲av成人网人人软件|