Android学习系列42.docx
- 文档编号:17382179
- 上传时间:2023-07-24
- 格式:DOCX
- 页数:8
- 大小:133.21KB
Android学习系列42.docx
《Android学习系列42.docx》由会员分享,可在线阅读,更多相关《Android学习系列42.docx(8页珍藏版)》请在冰点文库上搜索。
Android学习系列42
Android学习系列(42)
--AndroidStudio实战技巧-谦虚的天下
使用androidstudio开发项目的一些问题,功能和技巧。
1.环境
MacOSX10.9.5+AndroidStudio0.8.9
2.gradle项目加载超慢
这是因为gradle官方下载地址特别慢导致,解决方案有2个:
∙VPN,干净利索。
推荐VPN
∙拷贝一个gradle的已下载的压缩包到gradle目录的wrapper路径下,然后关闭AndroidStudio在打开,它会自动识别并解压好。
第二种方案,具体以Mac为例子,AndroidStudio0.8.9默认使用的gradle版本还是gradle-1.12。
∙下载gradle-1.12-all.zip,放到~/.gradle/wrapper/dists/gradle-1.12-all/2apkk7d25miauqf1pdjp1bm0uo,这个2apkk7d25miauqf1pdjp1bm0uo是随机生成的标识码,各人可能不一样。
∙效果图。
∙gradle-1.12-all.zip我上传了一个到XX云盘。
下载gradle-1.12-all.zip
∙linux的gradle的目录和mac上一样,Windows是在你的用户目录下。
3.AndroidStudio添加引用第三方Library
右键Module-OpenModuleSettings-Dependencies,找到"+"按钮,选择Librarydependency,弹出对话框,
选中support-annotations,
它会在Module下的build.gradle中的dependencies添加一行:
compile'com.android.support:
support-annotations:
20.0.0'
4.默认编译的应用版本选择
当你点击那个右三角运行按钮的时候,它默认是会运行debug版本,其实这里可以调整为默认编译release版本,当然这点上可能对你不是很重要。
但是当你定义了各种版本,并且想区别开发,这就很有用了。
在左下角-BuildVariants-选择默认版本。
5.显示行号
Setings-Editor-Appearance-勾选Showlinenumbers
6.快捷键
这个网上有很多资料,而且在设置里面可以选择自己习惯的Keymap,比如eclipse,这里点到为止。
7.插件
Settings-Plugins-Browserrepositories-弹出对话框-选中某一插件-右边Installplugin。
比如,安装.gigignoresupport,提示需要重启,重启后查看.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
defmanifestFile="${buildDir}/intermediates/manifests/${variant.dirName}/AndroidManifest.xml"
//将字符串REPLACE_KEY替换成flavor的名字
defupdatedContent=newFile(manifestFile).getText('UTF-8').replaceAll("REPLACE_KEY","${variant.productFlavors[0].name}")
newFile(manifestFile).write(updatedContent,'UTF-8')
//将此次flavor的AndroidManifest.xml文件指定为我们修改过的这个文件
variant.processResources.manifestFile=file("${buildDir}/intermediates/manifests/${variant.dirName}/AndroidManifest.xml")
}
}
具体步骤
∙AndroidManifest.xml中添加渠道meta
android: label="@string/app_name"> name="APP_PID"android: value="default"/> android: name="com.jayfeng.xxx" android: label="@string/app_name"> name="android.intent.action.MAIN"/> name="android.intent.category.LAUNCHER"/>
∙完整的build.gradle
applyplugin:
'android'
android{
compileSdkVersion19
buildToolsVersion'19.1'
defaultConfig{
applicationId'com.jayfeng.app.test'
minSdkVersion15
targetSdkVersion19
versionCode1
versionName'V1.0'
}
signingConfigs{
myConfig{
storeFilefile("xxxxxx.keystore")
storePassword"xxxxxxx"
keyAlias"xxxxx"
keyPassword"xxxxxx"
}
}
buildTypes{
release{
signingConfigsigningConfigs.myConfig
runProguardfalse
proguardFilesgetDefaultProguardFile('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{
compilefileTree(dir:
'libs',include:
['*.jar'])
compileproject(':
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
defmanifestFile="${buildDir}/intermediates/manifests/${variant.dirName}/AndroidManifest.xml"
//将字符串default替换成flavor的名字
defupdatedContent=newFile(manifestFile).getText('UTF-8').replaceAll("default","${variant.productFlavors[0].name}")
newFile(manifestFile).write(updatedContent,'UTF-8')
//将此次flavor的AndroidManifest.xml文件指定为我们修改过的这个文件
variant.processResources.manifestFile=file("${buildDir}/intermediates/manifests/${variant.dirName}/AndroidManifest.xml")
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Android 学习 系列 42