Android高效开发编译调试神器_Jrebel 最新激活方法以及 freeline(快到飞起~秒杀InstantRun)

本文主要是介绍Android高效开发编译调试神器_Jrebel 最新激活方法以及 freeline(快到飞起~秒杀InstantRun),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Google官方的instantRun目前有很多问题,比如比不支持分包,或者只能热修补布局改变等,之前一直用高效开发调试神器 JRebel ;用过都知道一用就根本停不下来,但后来更新版本修复了此插件漏洞,不付费情况下比较难破解,所以只好退而求其次用类似的阿里蚂蚂蚁旗下插件freeline(貌似是漂移板的牌子..);已安装成功,使用没JRebel好但也还行..毕竟是免费的,还要啥自行车...

首先是Jrebel 的激活方法:

截至 2017.09.12 亲测激活有效

从 2.2.0 版开始, JRebel for Android 授权方式改成了免费版和企业版, 具体区别请看官网介绍

企业版支持授权服务器激活, 具体使用方法为:

  1. 随意找个 GUID在线生成工具(https://www.guidgen.com/ ), 生成一个 GUID, 我这里生成的GUID为 0b2cab97-d78c-431d-939c-61dc85f0906d, 当然, 也可以按照 8位字符-4位字符-4位字符-4位字符-12位字符的格式自己随意生成.

  2. 在 JRebel for Android 激活界面选择 Connect to License Server, 在 Group URL中填写 http://idea.lanyus.com/0b2cab97-d78c-431d-939c-61dc85f0906d (即http://idea.lanyus.com/ + 刚才生成的GUID), Email
    中随意填写一个邮箱, 勾选 I agree with terms & conditions of the License Agreement, 点击 Activate JRebel for Android 即可激活企业版.

(附 JRebel 证书最新激活方法  需翻墙, 亲测时已失效,备看:http://blog.csdn.net/lixuanshengchao/article/details/72599021  )

下面是freeline的使用

freeline是由阿里巴巴蚂蚁聚宝Android团队开发的一款针对Android平台的增量编译工具,它可以充分利用缓存文件,在几秒钟内迅速地对代码的改动进行编译并部署到设备上,有效地减少了日常开发中的大量重新编译与安装的耗时。

Freeline代码开源在Github: 
https://github.com/alibaba/freeline

Freeline在云栖社区的原理说明: 
https://yq.aliyun.com/articles/59122?spm=5176.8091938.0.0.1Bw3mU

使用过程整理如下:
1.在工程层级的build.gradle中加入freeline-gradle的依赖
buildscript {repositories {mavenLocal()jcenter()}dependencies {classpath 'com.android.tools.build:gradle:2.2.2'classpath 'com.antfortune.freeline:gradle:0.8.2'}
}allprojects {repositories {jcenter()}
}
2.在你的主module的build.gradle中,添加freeline插件的依赖

注意:主工程依赖的module不需要添加这个依赖

apply plugin: 'com.android.application'
apply plugin: 'com.antfortune.freeline'android {...
}dependencies {...
}
3.在工程主目录下执行命令行,自动下载freeline依赖的包

Windows[CMD]:gradlew initFreelineLinux/Mac:./gradlew initFreeline

或者国内镜像包:

Windows[CMD]: gradlew initFreeline -Pmirror 
Linux/Mac: ./gradlew initFreeline -Pmirror  //chmod 777 ./gradlew initFreeline -Pmirror

你也可以使用参数-PfreelineVersion={your-specific-version}来下载特定版本的 freeline 依赖。

下载完成后会有成功提示页面

如果你的工程结构较为复杂,在第一次使用freeline编译的时候报错了的话,你可以添加一些freeline提供的配置项,来适配你的工程。

在moudle的gradle文件增加如下代码

freeline {

    hack true    productFlavor 'your-flavor'    //.....其他配置项

 }

配置项具体可以看Freeline DSL References。

4.安装python开发环境

因为freeline是Python项目,所以本地需要安装python开发环境并设置环境变量 
当在命令行界面输入

python -V

能显示python的版本号时说明安装成功

5.执行

python freeline.py

执行完成后就安装到你的手机上了

5.如果不想每次都用命令行,可以在android studio中安装插件

在Android Studio中,通过以下路径Preferences → Plugins → Browse repositories,搜索“freeline”,并安装。

安装完成后如下图: 
freeline

注意: 这里有一个坑,安装完成后点击的时候会有下面提示 
这里写图片描述 
明明已经配置过python的环境变量了,但是就是不能执行,这个应该是android studio读取环境变量的bug 
在android studio自带的命令行里面打印环境变量你会发现你设置的python的环境变量并没有出现 
我尝试重启android studio发现还是无效的,最后重启电脑才解决这个问题。

窗口左边共有5个按钮,从上到下按个说一下。 
1. 每次编译时就点这个按钮就可以增量编译了,对应命令是:Python freeline.py 
2. 停止freeline编译 
3. 进行调试编译 对应命令是: python freeline.py -d 
4. 全量编译 对应命令是: python freeline.py -f 
5. 清屏按钮

现在再说下python命令对应可选参数的说明: 
python freeline.py -d 
可选参数: 
-h, –帮助 显示帮助信息并退出 
-v, –版本 显示版本信息 
-f, –cleanBuild 强制执行一次 clean build ,(全量编译)
-w, –等待 让应用程序等待 debugger 
-a, –全部 在所有工程上强制执行clean build 并执行-f全量编译 
-c, –清空 清空缓存目录和工作空间 
-d, –调试 打开debug模式 
-i, –初始化 对工程进行进行freeline初始化配置

注意事项: 1.必须进行一次python freeline.py -f 

                   2.编译时智能连接一台手机 否则会报错

                   3.安装后正常生成apk可能会有问题,打包上线时把freeline依赖去掉

这篇关于Android高效开发编译调试神器_Jrebel 最新激活方法以及 freeline(快到飞起~秒杀InstantRun)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1020425

相关文章

Python常用命令提示符使用方法详解

《Python常用命令提示符使用方法详解》在学习python的过程中,我们需要用到命令提示符(CMD)进行环境的配置,:本文主要介绍Python常用命令提示符使用方法的相关资料,文中通过代码介绍的... 目录一、python环境基础命令【Windows】1、检查Python是否安装2、 查看Python的安

C++高效内存池实现减少动态分配开销的解决方案

《C++高效内存池实现减少动态分配开销的解决方案》C++动态内存分配存在系统调用开销、碎片化和锁竞争等性能问题,内存池通过预分配、分块管理和缓存复用解决这些问题,下面就来了解一下... 目录一、C++内存分配的性能挑战二、内存池技术的核心原理三、主流内存池实现:TCMalloc与Jemalloc1. TCM

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

使用Python开发一个现代化屏幕取色器

《使用Python开发一个现代化屏幕取色器》在UI设计、网页开发等场景中,颜色拾取是高频需求,:本文主要介绍如何使用Python开发一个现代化屏幕取色器,有需要的小伙伴可以参考一下... 目录一、项目概述二、核心功能解析2.1 实时颜色追踪2.2 智能颜色显示三、效果展示四、实现步骤详解4.1 环境配置4.

Maven 配置中的 <mirror>绕过 HTTP 阻断机制的方法

《Maven配置中的<mirror>绕过HTTP阻断机制的方法》:本文主要介绍Maven配置中的<mirror>绕过HTTP阻断机制的方法,本文给大家分享问题原因及解决方案,感兴趣的朋友一... 目录一、问题场景:升级 Maven 后构建失败二、解决方案:通过 <mirror> 配置覆盖默认行为1. 配置示

SpringBoot排查和解决JSON解析错误(400 Bad Request)的方法

《SpringBoot排查和解决JSON解析错误(400BadRequest)的方法》在开发SpringBootRESTfulAPI时,客户端与服务端的数据交互通常使用JSON格式,然而,JSON... 目录问题背景1. 问题描述2. 错误分析解决方案1. 手动重新输入jsON2. 使用工具清理JSON3.

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

Java中Map.Entry()含义及方法使用代码

《Java中Map.Entry()含义及方法使用代码》:本文主要介绍Java中Map.Entry()含义及方法使用的相关资料,Map.Entry是Java中Map的静态内部接口,用于表示键值对,其... 目录前言 Map.Entry作用核心方法常见使用场景1. 遍历 Map 的所有键值对2. 直接修改 Ma

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

Mybatis Plus Join使用方法示例详解

《MybatisPlusJoin使用方法示例详解》:本文主要介绍MybatisPlusJoin使用方法示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录1、pom文件2、yaml配置文件3、分页插件4、示例代码:5、测试代码6、和PageHelper结合6