我是靠谱客的博主 纯真机器猫,这篇文章主要介绍Android Studio 开发使用总结,现在分享给大家,希望可以做个参考。

Android Studio 开发使用总结
最近公司电脑配置更新,终于可以用上AS了,进过几天折腾,对AS初期开发使用总结如下:
写在前面:我自己的配置文件:我的配置
附上我的build.gradle:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
apply plugin: 'com.android.application' //获取local.properties的内容 Properties properties = new Properties() properties.load(project.rootProject.file('local.properties').newDataInputStream()) android { compileSdkVersion 19 buildToolsVersion "25.0.2" // 使用签名文件进行签名的两种方式 //第一种:使用gradle直接签名打包,配置keystore签名 signingConfigs { release { keyAlias '1.0' keyPassword 'huyu' storeFile file('E:/Studio_备份/xx/xx上传/xx.keystore') storePassword 'huyu' // v2SigningEnabled false //禁用V2签名模式,V2签名模式仅在7.0以上可以安装,减少APP安装过程时间和更多的保护机制 // 或者使用面板签名的时候,勾选V1,V2可以兼容各个版本 } debug { keyAlias 'androiddebugkey' keyPassword 'android' storeFile file('E:/Studio_备份/debug-keystore/huyu-debug.keystore') storePassword 'android' } } //第二种:为了保护签名文件,把它放在local.properties中并在版本库中排除,不把这些信息写入到版本库中(注意,此种方式签名文件中不能有中文) // signingConfigs { // config { // keyAlias properties.getProperty("keystroe_keyAlias") // keyPassword properties.getProperty("keystroe_keyPassword") // storeFile file(properties.getProperty("keystroe_storeFile")) // storePassword properties.getProperty("keystroe_storePassword") // } // } defaultConfig { applicationId "com.huyu.test" minSdkVersion 15 targetSdkVersion 19 versionCode 20170505 versionName "2.04.170505" // dex突破65535的限制 // 第一步: // multiDexEnabled true // 第二步: 在dependencies 添加依赖 // compile 'com.android.support:multidex:1.0.0' // 第三步: // Application继承一下MultiDexApplication即可。 } //屏蔽lint的严格检查 lintOptions { abortOnError false disable 'MissingTranslation' // 防止在发布的时候出现因MissingTranslation导致Build Failed! // checkReleaseBuilds false // 为了解决多个manifest中相同activity重复注册的问题(主要是用在多渠道配置不同的manifest文件) } //配置编译的jdk版本 // compileOptions { // sourceCompatibility JavaVersion.VERSION_1_7 // targetCompatibility JavaVersion.VERSION_1_7 // } /** 报 Duplicate files copied in APK META-INF/DEPENDENCIES File 1: xxx.jar File 2: xxx.jar 貌似说两个包里面的文件重复了*/ // packagingOptions { // exclude 'META-INF/DEPENDENCIES' // exclude 'META-INF/NOTICE' // exclude 'META-INF/LICENSE' // exclude 'META-INF/LICENSE.txt' // exclude 'META-INF/NOTICE.txt' // } //打包配置debug模式下,使用正式版签名,此操作主要为了方便调试微信,新浪等第三方登录授权 buildTypes { release { minifyEnabled true shrinkResources true //2.2版本该功能无法使用(必须和 minifyEnabled true 一起使用) proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig signingConfigs.release } debug { zipAlignEnabled false //默认是true, 只有显示配置为true时,才会生成unaligned.apk minifyEnabled false //不启用混淆 shrinkResources false //默认是false, true为删除无用资源 signingConfig signingConfigs.debug //不配置签名项,会生成无签名的apk // 动态在 BuildConfig.java 添加字段,在Java代码中调用 BuildConfig.FLAG_LOG // buildConfigField "boolean", "FLAG_LOG", "true" // buildConfigField "String", "API_HOST", ""http://api.huyu.com"" // 字符串变量 } } // 引用了 aar 资源1:需要加上下面这句;2.需要在 dependences 中加上 compile (name:'aar文件名', ext:'aar') repositories { flatDir { dirs 'libs' } } // sourceSets { // baidu { // // 设置不同的 AndroidManifest 文件 // // 一定要写相对路径,将原始manifest中的内容copy到为每个包单独配置的manifest中去, // // 1.删除 AndroidManifest_baidu.xml 中配置包名的代码,因为已经在gradle.build中配置过了,不能重复配置 // // 2.在AndroidManifest_baidu.xml 中 application 标签下添加 tools:replace="android:label,android:icon"(具体可以参考报错信息) // manifest.srcFile 'src/baidu/AndroidManifest_baidu.xml' // java.srcDirs = ['src/baidu/java'] // res.srcDirs = ['src/baidu/res'] // assets.srcDirs = ['src/baidu/assets'] // } // } //配置多版本的apk, 需要在终端执行 gradlew assembleRelease 将生成不同渠道的release版apk //不同的Flavor若需要对应不同的资源文件或者代码或者AndroidManifest.xml文件,均可以在src下简历对应flavor的文件夹,再覆盖资源即可。 //注意:覆盖资源的路径要与main下面路径一致 productFlavors{ baidu { applicationId "com.huyu.baidu" //替换包名 // 动态在 BuildConfig.java 添加字段, 引用: BuildConfig.isGooglePlay buildConfigField "boolean", "isGooglePlay", "false" buildConfigField "String", "XIAOMI_APPID", '"你自己的key"' buildConfigField "String", "XIAOMI_APPKEY", '"你自己的key"' // 替换配置文件中的 ${app_name} 等占位符(${applicationId} 除外) manifestPlaceholders = [ // app_icon: "@mipmap/ic_launcher", app_name : "@string/app_name", JPUSH_APPKEY : "你自己的key", XIAOMI_APPID : "你自己的key", XIAOMI_APPKEY : "你自己的key" ] // resValue 动态在res/value/目录下根据第一个参数如 strings.xml 添加字段,所以添加前不能存在同名字段 // bools.xml 添加字段,所以添加前不能存在同名字段 // 在java代码中获取这里的配置属性: context.getResources().getString(R.string.isGooglePlayVersion); // resValue("string" , "app_name","xx") // resValue("bool" , "isGooglePlay", 'false') } google { applicationId "com.huyu.gplay" buildConfigField "boolean", "isGooglePlay", "true" buildConfigField "String", "XIAOMI_APPID", '"你自己的key"' buildConfigField "String", "XIAOMI_APPKEY", '"你自己的key"' manifestPlaceholders = [ app_name : "@string/app_name_gplay", JPUSH_APPKEY : "你自己的key", XIAOMI_APPID : "你自己的key", XIAOMI_APPKEY : "你自己的key" ] } } //这里修改apk文件名 android.applicationVariants.all { variant -> variant.outputs.each { output -> def outputFile = output.outputFile if (outputFile != null && outputFile.name.endsWith('.apk')) { def fileName = "huyu_${variant.productFlavors[0].name}" + "_V${defaultConfig.versionName}" + "_${releaseTime() }.apk" output.outputFile = new File(outputFile.parent, fileName) } } } /**一般大多数是出现在图片上,.jpg修改成了.png就会出现这个问题*/ aaptOptions { cruncherEnabled = false useNewCruncher = false } } // 定义一个打包时间 def releaseTime() { return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC")) } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile(name: 'BDUpdateSDK', ext: 'aar') } 在项目根目录的 local.properties 中 添加如下信息(可以隐藏keystrore信息) #对应自己实际的证书路径和名字,在这里由于签名文件是放在app目录下,因为没有写绝对路径。 keystroe_storeFile=E:/Studio/keystore/huyu.keystore keystroe_storePassword=huyu keystroe_keyAlias=1.0 keystroe_keyPassword=huyu


1.配置快捷键:(本人之前使用Eclipse)
将快捷键复制为Eclipse
1. Keymap -- Main menu - code - comption - basic -    alt+/  代码提示

2.Keymap -- Main menu - code - generate...     Alt+shitf+s  生成get set

3.Keymap -- Main menu - code - folding - cidr.. - Reformat Code   Ctrl + i 格式化代码

4.Keymap -- Main menu - code - folding - cidr.. - Optimize..   Ctrl +shift+o 优化导入包

5.other - show intention actions      Ctrl +alt+o 

其它的和Eclipse大同小异

2.自动导入包

1. Editor - gerneral -auto import-全部勾选,ASK

3. 代码提示 不区分大小写,设为none

Editor-->code completions-->Case sensitive compltetion设置成None

4. 鼠标移入时显示doc

Editor-->General -- 勾选 show quick doc on mouse move Delay  500 ms

5.更改logcat颜色

Editor-->General-->Color & Fontd-->Android Logcat

取消勾选Inherit Attributes From…

Log级别 色值

VERBOSE BBBBBB

DEBUG 0070BB

INFO 48BB31

WARN BBBB23

ERROR FF0006

ASSERT 默认



6. 添加so

1.在src - main 下新建文件夹 jinLibs

2.在 jinLibs 下 新建 对应的 子文件夹(armeabi...)

3.将so文件复制进对应文件夹

7.添加jar

方法1:(普通添加)

 1.在 app -- libs  (即在src 同级目录下新建 libs 文件夹), 将 xxx.jar 文件复制进来

2.右击jar文件,选择  add aslibrary

3.右击项目,选择 open module settings--选择 app -- 选择 dependencies 查看 jar文件是否是 compile

方法2(已知jar包的全部包名)

1.直接 打开 app 目录下的 build.gradle

2.在  dependencies {} 里面添加代码: compilecom.xxx.xxx.jar此时AS会自动联网去jcenter仓库下载jar包

方法3(已知jar包的部分包名)

1.右击项目,选择 open module settings--选择 app -- 选择 dependencies

2.点击右侧或下面的 + (加号)-- 选择 1 library dependence -- 输入 jar包部分包名, OK

8.添加 依赖项目Library

1.file -- (new-- new modle--import gradle modle 或者import eclipse modle)(import modle) 选择路径

   2.等待加载完成,右击刚导入的 modle  --  open module settings  --  选择 app --  选择 dependencies  --  点击右侧或下面的 + (加号)-- 选择 3 modle dependence --  选择刚才导入的 modle --  ok

   3.检查 打开 app 下的 build.gradle 查看  dependencies {} 里面是否有: compile project(‘:xxxxx_LibProject’ )

   4.检查  项目根目录下  settings.gradle  查看是否有  include ‘:xxxxx_LibProject’

9.安装插件

Plugins --  browse reposeties...   在线安装插件

    Install plugins from disks   离线安装

   插件:  1.  selectorChapek for android  生成selector

用法: 将图片按照 _pressed   _normal  命名, 右键drawable-xdip(...) 选择 generate android selector 自动生成  

2.  Gson Format    将 json 转换成实体类

     用法:  新建类, shift+alt+s

      3.  Android parcelable code generaltor    生成实现序列化代码

  用法:  新建类, shift+alt+s

4.findBugs

  用法:  选中 目标文件或代码,右击,findbugs

10.打jar包(该方式适用于moudle不包含第三方libs,和不包含assert文件,至于包含这两种的打包方法,等有时间再研究,如果各位有什么好的方法欢迎留言讨论)

    1. 在需要打包的module 下的 build.gradle 文件中添加如下代码:

task makeJar(type: Copy) {
     delete 'build/libs/mysdk.jar'
     from('build/intermediates/bundles/release/')
   into('build/libs/')
     include('classes.jar')
     rename ('classes.jar', 'mysdk.jar')
}

makeJar.dependsOn(build)

   其中:mysdk.jar 可以更名为你需要的 name.jar

    2. 在 Terminal 执行  gradlew makeJar

    3. 显示 BUILD SUCCESSFUL  表示成功

    4. jar包的位置在你需要打包的moudle的build/libs/mysdk.jar

11.查看签名文件信息

    cmd   

 1.切换路径输入keytool -list -v -keystore +你的.jks文件完整路径

 2.输入密码

12.生成 aar 包(带资源文件,libs下的jar,xml文件的包)

 1.新建任意工程,在工程里再新建Model -- Android Library

 2.写好代码,包括资源文件

 3.选中要导出的Model: Build -- Make Model

 4.在model的build--outputs--aar 目录下可以看到 xx-release.aar和xx-debug.aar;

13.引用aar

 1.将 aar 复制进 libs

 2.在 app 的 build.gradle 的 android 中添加:

   repositories {

   flatDir { dirs 'libs'}

   } //指定aar目录

 在 dependencies {

// 添加依赖

compile (name:'libs目录下的aar的文件名', ext:'aar')

 }



最后

以上就是纯真机器猫最近收集整理的关于Android Studio 开发使用总结的全部内容,更多相关Android内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部