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

相关文章

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me

Redis实现延迟任务的三种方法详解

《Redis实现延迟任务的三种方法详解》延迟任务(DelayedTask)是指在未来的某个时间点,执行相应的任务,本文为大家整理了三种常见的实现方法,感兴趣的小伙伴可以参考一下... 目录1.前言2.Redis如何实现延迟任务3.代码实现3.1. 过期键通知事件实现3.2. 使用ZSet实现延迟任务3.3

idea maven编译报错Java heap space的解决方法

《ideamaven编译报错Javaheapspace的解决方法》这篇文章主要为大家详细介绍了ideamaven编译报错Javaheapspace的相关解决方法,文中的示例代码讲解详细,感兴趣的... 目录1.增加 Maven 编译的堆内存2. 增加 IntelliJ IDEA 的堆内存3. 优化 Mave

Java String字符串的常用使用方法

《JavaString字符串的常用使用方法》String是JDK提供的一个类,是引用类型,并不是基本的数据类型,String用于字符串操作,在之前学习c语言的时候,对于一些字符串,会初始化字符数组表... 目录一、什么是String二、如何定义一个String1. 用双引号定义2. 通过构造函数定义三、St

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

使用Python自建轻量级的HTTP调试工具

《使用Python自建轻量级的HTTP调试工具》这篇文章主要为大家详细介绍了如何使用Python自建一个轻量级的HTTP调试工具,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录一、为什么需要自建工具二、核心功能设计三、技术选型四、分步实现五、进阶优化技巧六、使用示例七、性能对比八、扩展方向建

Spring Security方法级安全控制@PreAuthorize注解的灵活运用小结

《SpringSecurity方法级安全控制@PreAuthorize注解的灵活运用小结》本文将带着大家讲解@PreAuthorize注解的核心原理、SpEL表达式机制,并通过的示例代码演示如... 目录1. 前言2. @PreAuthorize 注解简介3. @PreAuthorize 核心原理解析拦截与

一文详解JavaScript中的fetch方法

《一文详解JavaScript中的fetch方法》fetch函数是一个用于在JavaScript中执行HTTP请求的现代API,它提供了一种更简洁、更强大的方式来处理网络请求,:本文主要介绍Jav... 目录前言什么是 fetch 方法基本语法简单的 GET 请求示例代码解释发送 POST 请求示例代码解释

Java图片压缩三种高效压缩方案详细解析

《Java图片压缩三种高效压缩方案详细解析》图片压缩通常涉及减少图片的尺寸缩放、调整图片的质量(针对JPEG、PNG等)、使用特定的算法来减少图片的数据量等,:本文主要介绍Java图片压缩三种高效... 目录一、基于OpenCV的智能尺寸压缩技术亮点:适用场景:二、JPEG质量参数压缩关键技术:压缩效果对比