【9.5】群讨论未完待续。。。
1. 在 Android Studio工程点击Run按钮,实际上做了什么操作呢?
Android Studio对IDEA扩展的代码放在ANDROID_STUDIO/plugins/android/lib/android.jar,解压并反编译就可以看到源码。Run 动作的源码在 https://github.com/JetBrains/android/blob/master/android/src/com/android/tools/idea/run/AndroidRunConfigurationBase.java
主要是三件事情:
1)检查项目和读取基本配置;
2)Gradle Build;
3)Apk Install & LaunchActivity;
其中2)就是gradle构建工具执行一系列task完成apk的构建
其中3)就是使用adb shell安装和启动Activity
idea的官方解释https://github.com/JetBrains/android/tree/master/android/src/com/android/tools/idea/run
2. 超级工程下,如何加快编译速度?
1)模块化——以aar(jar)的形式参与项目编译,因为aar(jar)里面的源码,资源文件都已经编译好了的,所以在整工程编译时可以大大节约.java to .class, 和.class to .dex的工作时间;
2)单模块编译,全量合成:利用aapt工具,对单个模块(几个)编译生成temp.apk,最后和base.apk进行全量合并,原理类似于微信的tinker热修复;
3)jenkins打包,因为服务器设备的性能都是非常强悍的,我们自己的笔记本跟服务器设备不在一个量级,使用它来构建项目,也可以大大节约构建时间,
同学们可能听说过freeline,很可惜已经凉了。
可到github上看下它的现状https://github.com/alibaba/freeline/issues
3. 如何利用gradle自动发布release正式包到应用市场?
有些应用市场提供了发包接口https://dev.mi.com/console/doc/detail?pId=33
我们可以开发gradle脚本,调用他的接口来自动发布。
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星