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

相关文章

PHP轻松处理千万行数据的方法详解

《PHP轻松处理千万行数据的方法详解》说到处理大数据集,PHP通常不是第一个想到的语言,但如果你曾经需要处理数百万行数据而不让服务器崩溃或内存耗尽,你就会知道PHP用对了工具有多强大,下面小编就... 目录问题的本质php 中的数据流处理:为什么必不可少生成器:内存高效的迭代方式流量控制:避免系统过载一次性

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

JavaScript中的高级调试方法全攻略指南

《JavaScript中的高级调试方法全攻略指南》什么是高级JavaScript调试技巧,它比console.log有何优势,如何使用断点调试定位问题,通过本文,我们将深入解答这些问题,带您从理论到实... 目录观点与案例结合观点1观点2观点3观点4观点5高级调试技巧详解实战案例断点调试:定位变量错误性能分

Python中 try / except / else / finally 异常处理方法详解

《Python中try/except/else/finally异常处理方法详解》:本文主要介绍Python中try/except/else/finally异常处理方法的相关资料,涵... 目录1. 基本结构2. 各部分的作用tryexceptelsefinally3. 执行流程总结4. 常见用法(1)多个e

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法

《JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法》:本文主要介绍JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法,每种方法结合实例代码给大家介绍的非常... 目录引言:为什么"相等"判断如此重要?方法1:使用some()+includes()(适合小数组)方法2

504 Gateway Timeout网关超时的根源及完美解决方法

《504GatewayTimeout网关超时的根源及完美解决方法》在日常开发和运维过程中,504GatewayTimeout错误是常见的网络问题之一,尤其是在使用反向代理(如Nginx)或... 目录引言为什么会出现 504 错误?1. 探索 504 Gateway Timeout 错误的根源 1.1 后端