proguard

[RK3288][Android6.0] 调试笔记 --- 替换系统签名【转】

左心房为你撑大大i 提交于 2020-04-28 13:01:38
本文转载自: http://blog.csdn.net/kris_fei/article/details/55100299 Platform: RK3288 OS: Android 6.0 Kernel: 3.10.92 由于项目的apk安装需要shareid为system的权限(不需要高权限的apk是可以正常安装的), 一开始我用的是releasekey,导致签名文件不匹配无法安装,因此就替换系统默认platform签名文件. 生成新的签名文件 方法参考rk3288/build/target/product/security/README [kris@:~/rk3288]$./development/tools/make_key platform '/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/emailAddress=android@android.com' 后面参数可自行修改,参见: http://blog.csdn.net/jscese/article/details/24243171 会生成两种文件: 公钥: platform.x509.pem 私钥: platform.pk8 系统端修改: 不管编译版本(项目需求),都改成platform签名文件. build/core

Android App性能优化技能,看这篇就够了

允我心安 提交于 2020-04-26 11:28:27
一.何为App的性能 拿小车举例,大家知道什么是一辆小车的性能吗?同学甲说,是否省油、加速是否够快、开起来是否稳定、安全等等。 没错,那就是小车的性能。 那App的性能又是指什么呢?同学乙说,App启动是否够快,运行是否流畅,是否省电、省流量,安装包体积是否够小等等。 是的,这就是App的性能。 二.关注App性能,有什么用 我们知道,一辆小车性能越好,加速越快,跑的越稳,越省油。 App也一样,性能越好,运行更流畅、更稳定、更省流量、电量,包的体积也会更小,这能给用户带来优秀的体验,进而也会提升App的知名度。 既然App性能那么重要,那我们就要掌握App性能优化的技能了。 三.如何进行App性能优化 掌握App性能优化,是Android开发人员进阶中高级的必备技能。那如何进行App的性能优化呢? 我们可以从这几个方面入手:卡顿优化、内存优化、稳定性优化、耗电优化、安装包大小优化、数据库SQLite优化、网络优化。 接下来,我们逐一展开讲解。 1.卡顿优化 1.1卡顿场景 可分为四个大的方向: 1.1.1UI UI包括绘制和渲染。 1.1.2启动 启动可分为冷启动、热启动。 1.1.3跳转 跳转包括页面间跳转和前后台切换。 1.1.4响应 包括:点击、滑动、系统事件、按键。 1.2卡顿原因 可分为以下两方面原因: 1.2.1绘制任务太重 首先,我们要明白这样一个概念

android引入jar的一个错误

試著忘記壹切 提交于 2020-04-17 03:41:36
【推荐阅读】微服务还能火多久?>>> 使用eclipse+sdk开发android的app,如果要引入一个jar包,可以放到./libs/xxx.jar路径下就可以了。今天引入一个aaa.jar的包,也放到./libs/aaa.jar路径下。app编译没有问题,但一运行就如下的错误: [2018-09-21 15:48:39 - HelloAndroid] Dx UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000) ... ...while parsing xxxx.class [2018-09-21 15:48:39 - HelloAndroid] Dx 1 error; aborting [2018-09-21 15:48:39 - HelloAndroid] Conversion to Dalvik format failed with error 1 google之后,分析原因千奇百怪。有说是jdk版本问题,连续装了3个版本都不行。有说是proguard问题。总之,都不能解决。 后来的解决方式是: 删除libs目录下的aaa.jar包 project->properties-

Crash with ProGuard and Firebase Crashlytics

冷暖自知 提交于 2020-04-16 05:20:21
问题 Expected It is expected for the release version of the Android app's build to run successfully when enabling minifyEnabled and shrinkResources per the Android documentation, Crashlytics, and Proguard. The code for this issue may be found in the open-sourced GitHub repository for Coinverse. Observed The release version of the app crashes immediately when opened after being downloaded from Google Play. This appears to be due to Crashlytics failing to initialize. Without minifyEnabled and

Crash with ProGuard and Firebase Crashlytics

﹥>﹥吖頭↗ 提交于 2020-04-16 05:19:41
问题 Expected It is expected for the release version of the Android app's build to run successfully when enabling minifyEnabled and shrinkResources per the Android documentation, Crashlytics, and Proguard. The code for this issue may be found in the open-sourced GitHub repository for Coinverse. Observed The release version of the app crashes immediately when opened after being downloaded from Google Play. This appears to be due to Crashlytics failing to initialize. Without minifyEnabled and

美团猫眼电影Android模块化实战总结

蹲街弑〆低调 提交于 2020-04-09 16:36:10
1 写这篇博客的初衷 首先一句话概括:我想把这几个月做的事情记录下来,并且希望尽量详细,希望读者读了这篇文章能够知道项目进行模块化,项目改业务框架可能会遇到哪些问题,具体每个步骤都做什么,而不是大致的了解。 现在很多人都在谈模块化,网上有一大堆的博客实践都在讲这个。很多谈的只是模块与模块之间的解耦,并且大部分讲的是通过router路由进行解耦,其他谈的不多,而且不乏泛泛而谈。但将一个app真正做到解耦,运行。需要解决的事情远远不止解耦。业务架构、进程间通信、资源等处理、解耦方式等都需要解决。恰好对于猫眼模块化整个过程的实施,从头到尾,分析解决各种问题,我陆陆续续的做了几个月。猫眼app的历史版本是一个耦合度很高的一个工程。从这样的一个历史版本到最终的各个业务模块能够独立运行并且能够做进程间通信,会涉及到各个方面的解耦和一些其他东西。我今天我就以该app为例(其他的app进行解耦可能会遇到不同的问题,这点注意一下),完整的讲下猫眼模块化的整个过程。每一个方面没有照搬网络的一些做法,而是分析对比,采用更好的设计方式。比如解耦使用serviceloader,而不是路由进行;比如架构使用更适合我们业务的一种带生命周期的mvp变种。我还会说下具体的花费时间和一些经验,这样大家以后做模块时也心中有数。(提示一下,其实模块化过程所涉及的东西除了文章提及的还有很多。有些未提及,是因为之前已经完成

proguard problem after updating to android gradle plugin 3.5

微笑、不失礼 提交于 2020-04-07 02:56:05
问题 I save the json presentation of some objects as cache in my app. I had no problem after updating each release of the app and json objects was correctly converted to java objects. After updating to android gradle plugin 3.5 (Adding this line): classpath 'com.android.tools.build:gradle:3.5.0' When I create the release apk, It seems that it can't convert the json string to java objects and it seems that the obfuscated names has changed. When I revert it to gradle plugin 3.4.2, everything is OK.

android 代码混淆及问题大集锦

醉酒当歌 提交于 2020-04-07 01:45:33
  最近在需要对所开发的项目进行了代码混淆,在android studio中开启代码混淆其实还是挺方便的,不过因为代码混淆产生的问题非常多,特别是对于一些涉及到反射的第三方库经常因为名称的变化导致无法使用。   下面介绍android studio中对android项目进行代码混淆的详细步骤:   (1)代码混淆开启   想要开启代码混淆功能,只需要在相应的项目中将 build.gradle 的相应设置开启即可。 android{ buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } }    minifyEnable 即为开启的开关,而proguard-rules.pro是设置代码混淆时的相关设置,可以过滤不代码混淆的对象。   (2)代码混淆规则设置    程序中每个module下面都有对应的 proguard-rules.pro 文件,设置其规则可以过滤掉一些类、方法、注解和属性名的混淆,下面是ProGuard的手册页面,详细的规则可以在其中了解。https://stuff.mit.edu/afs/sipb/project/android/sdk/android-sdk

大牛耗时一年:深入探索 Android 包体积优化,共三万字建议收藏上

北慕城南 提交于 2020-04-05 17:47:48
由于文章特别长,建议先收藏再阅读。 在 Android 性能优化的知识体系当中,包体积优化一直被排在优先级比较低的位置,从而导致很多开发同学对自身应用的大小并不重视。在项目发展的历程中,一般可划分为如下三个阶段: 初创期 => 成长期 => 成熟期 通常来说,当应用处于成长期的中后阶段时,才会考虑去做系统的包体积优化,因此,只有在这个阶段及之后,包体积优化带来的收益才是可观的。 那么,包体积优化能够给我们带来哪些 收益 呢?如何全面对应用的包体积进行 系统分析 及 针对性优化呢?在这篇文章中,我们将一起进行深入地分析与探索。 1、瘦身优化及 Apk 分析方案介绍 1、瘦身优势 我们首先来介绍下,为什么我们需要做 APK 的瘦身优化? 主要有 三个方面 的原因: (1)下载转化率 APK 瘦身优化在实际的项目中优先级是比较低的,因为做了之后它的好处不是那么明显,尤其是那些还没有到 稳定期 的项目,我们都知道,App 的发展历程是从 项目初期 => 成长期 => 稳定期,对于处于 发展初期与成长期 的项目而言,可能会做 启动优化、卡顿优化,但是一般不会做 瘦身优化,瘦身优化 最主要的好处是对应用 下载转化率 的影响,它是 App 业务运营的重要指标之一,在项目精细化运营的阶段是非常重要的。 因为如果你的 App 与其它同类型的 App 相比 Apk 体积要更小的话,那么你的 App

Gradle : DSL element 'useProguard' is obsolete and will be removed soon

孤街醉人 提交于 2020-04-05 15:53:50
问题 Since the 3.5 update of Android Studio, I have this warning when building my app : DSL element 'useProguard' is obsolete and will be removed soon. Use 'android.enableR8' in gradle.properties to switch between R8 and Proguard.. 回答1: Enabling R8 into the gradle.properties file: android.enableR8=true And removing "useProguard" into build.gradle : release { minifyEnabled true //useProguard true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } fixed the problem.