(4.6.11.10)FreeLine集成方法
来源:互联网 发布:new3ds内录软件 编辑:程序博客网 时间:2024/06/14 10:16
为什么使用freeline—-随时可以切换常规全量编译和增量编译
全量编译:重新构建整个app,时间上和默认的as编译是一样的
增量编译:使用freeline的编译方式,时间很快
Freeline支持的增量编译场景
一、 确认python环境,如果没有请自行安装
建议2.7+版本
可以通过 cmd下的 python查看当前python版本号
二、集成Freeline
项目的build.gradle中添加
dependencies { classpath 'com.antfortune.freeline:gradle:0.8.3' }
app的build.gradle中添加
apply plugin: 'com.antfortune.freeline'android { freeline { hack true productFlavor 'dev' //多渠道打包时加入此项 applicationProxy false }}
Applincation的 onCreate()中添加
FreelineCore.init(this);
三、初始化 freeline环境
- 打开命令行,cd进入到项目的根目录
- 运行 gradlew initFreeline -Pmirror,会从国内镜像开始初始化freeline环境,期间可能持续几分钟,最终会提示完成
四、安装插件
File->Settings->plugins->搜索Freeline即可,安装后重启,会多两个地方
五、使用
第一次使用freeline的时候,clean下项目,同时清除下原有的安装包
原有的as自带编译正常还能使用
可以点击freeline的小按钮,就是进行freeline的增量编译方式了(其实就是“python freeline.py ”命令的快捷键)
在freeline命令窗口
- python freeline.py -f 强制进行全量编译并安装apk
- python freeline.py 编译并安装apk
注意事项:
1. 第一次编译与没有使用freeline之前的编译时间是一样的,耐心等待就是了。第一次使用全量编译(python freeline.py -f),但在全量编译前最好clean一下(gradlew clean),以后的编译使用python freeline.py就行了。
2. 如果设备上安装的不是使用freeline编译打包的程序,请先卸载,否则会无法安装。ps:后续使用freeline编译打包安装完,可能不会自动打开应用程序。
3. 不支持删除res/values资源,否则可能导致 aapt 编译出错。
4. 不支持Kotlin/Groovy/Scala语言
六、常见问题
1.Python版本问题
目前支持python2.0版本,不支持3.0版本。python2.7.2下载地
址:https://www.python.org/downloads/。
2.productFlavors问题
在主Module的build.gradle中配置productFlavors,例如:
productFlavors { appstore { applicationId 'your package name' } } freeline { hack true productFlavor 'appstore' applicationProxy false }
3.could not find class……问题
在Application类中的onCreate()方法中添加FreelineCore.init(this)方法。
public class YourApplication extends Application { public onCreate() { super.onCreate(); FreelineCore.init(this); }}
5.install apk to device failed
换成系统5.0以上的设备
6.连接不到设备
官方github上的解答:
-[问题排查] Freeline “try to connect device/ connect_device_task failed.” #152
排查方法如下(建议配合使用Python freeline.py -d):1.确定FreelineCore.init(this);加入到Application类中,且在onCreate()下的第一行,不要根据是否在主进程做特殊处理,否则可能导致FreelineService无法正常启动;[Freeline 0.7.0+开始,默认开启了Application替换,这条可以不用检查]2.确定FreelineService以及freeline相关组件是否正常merge到最终的minifest中,最终的manifest路径在${module}/build/intermediates/manifests中;3.确定python freeline.py -v与定义在build.gradle中的freeline的版本是否一致;4.确定是否刚刚执行了清空app数据的操作,freeline缓存数据在/data/data路径,清空app数据也会导致连接不上的问题(执行freeline命令时,通常会有句明显的日志反复出现:server result is -1);5.确定是否开启了网络代理导致127.0.0.1被重定向?* 6.一定要先使用freeline来打全量包,再来进行增量,否则也会出现这个问题。即,freeline的全量编译与Android-studio自带的RUN会存在冲突。*当上述问题都无法解决时,有个终极的解决方案就是重启试试…不少人通过重启顺利解决连接不上的问题。。。后续会通过自动化的方式,尽量避免手工排查上述问题。有遇见相关的问题可以具体描述一下,在issue中进行回复,可以帮忙排查。
连接不到设备,重点排查第5,6步骤。另外还需在AndroidManifest文件中添加:
<application android:debuggable="true" >
- (4.6.11.10)FreeLine集成方法
- freeline集成
- alibaba freeline 集成步骤
- Freeline的快速集成
- Android 项目集成 Freeline
- freeline集成到Android Studio
- Android studio集成FreeLine加速编译
- AndroidStudio集成Freeline实现秒级编译
- AndroidStudio下freeline秒级编译集成
- Android studio集成FreeLine加速编译
- Freeline
- Freeline
- Freeline
- Freeline
- Freeline
- Freeline
- Freeline
- AndroidStudio 快速集成 秒级编译工具Freeline
- php get
- python pip安装错误 ConnectTimeoutError错误解决办法
- 知识库--Logger (46)
- [网络流24题-14] 孤岛营救 - 分层图
- ReactiveCocoa 解析
- (4.6.11.10)FreeLine集成方法
- 5 个基本的 REST API 设计指导方针
- Linux下socket编程
- 抽象类和接口的区别、为什么用抽象类
- 基本文件操作命令
- java软件开发必读15本书籍
- 秒杀系统架构优化思路
- MAC 设置环境变量path的几种方法
- 软件测试(第2版)_Paul学习07_02——Ch7基于决策表的测试_02