学Android必须懂的

学习Android开发不得不会的东西。如果这些你不想学会。可以留一个印象,方便以后快速开发。每一个问题都是开发中遇到的实际问题。但是问题不是一篇博客一个人就能彻底解决得,如果你感觉文章对你有所帮助,请你把你遇到的问题反馈给我。如果符合我会更新到这篇博客上,谢谢。(QQ:1441289873)

一、代码混淆

Android代码混淆

现在的App上线前肯定都需要代码混淆的,那么代码混淆到底有什么用呢?难道只是让代码在反编译的时候看不懂?接下来看:

ProGuard是一个混淆代码的开源项目,它的主要作用是混淆代码,还包括以下4个功能:
1.压缩(Shrink):检测并移除代码中无用的类、字段、方法和特性(Attribute);
2.优化(Optimize):对字节码进行优化,移除无用的指令;
3.混淆(Obfuscate):使用a,b,c,d这样简短而无意义的名称,对类、字段和方法进行重命名;
4.预检(Preveirfy):在Java平台上对处理后的代码进行预检,确保加载的class文件是可执行的。

但是我们还应该看到以下几点问题的存在:

  • 代码混淆和编译成.so的安全性都是相对的,都是增加了破解的难度。
  • 有的人破解是需要了解其代码的 代码混淆可能会让别人花费更多时间,但是有的破解是不需要看其源码的,比如在一个apk里面嵌入广告,只需要找到启动广告和放入广告代码和xml注册广告权限就可以了。
  • android的4大组件不允许被混淆 这就是一个很大的问题,对于反编译的人来说这就是入口。

开启代码混淆只需两步:
1.在proguard-rules.pro中配置混淆

2.在appd的build.Gradle里,将minifyEnabled设置为true

就可以了,如果想了解混淆的各种具体配置请访问:https://www.jianshu.com/p/e19cc5194a31

二、查看混淆后的Log

在项目上线前,要进行代码混淆,同时我们也会使用一些工具来换取用户使用App的情况,通过一些第三方统计,或者捕获异常上传到服务器。代码被混淆了怎么查看Log打印的问题呢?很简单在你的SDK里就有自带工具来查看。具体路径在下面:

D:\sdk\tools\proguard\bin

就是在你的SDK目录下的tools里proguard的bin下

就是proguardgui.bat它了,如果你打不开的话,也不用去百度怎么办了,直接下载一个新的才3.7M。

下载链接

打开后肯定先是黑窗口,然后就是这样,如果不一样,就不知道了,我是重新下载的。

只截屏了一点

1.点击“ReTrace”;
2.点击“Browse”,选中项目工程下..../app/build/outputs/mapping/normal/mapping.txt;
3.将错误日志中复制粘贴到“Obfuscated stack trace”下的内容区域中;
4.点击右下角“ReTrace!”,即可定位错误代码。

图是偷的!!!

三、升级AS以前的库下载问题

不知道从AndroiStudio多少版本开始就出现了,jcenter库下载失败。今天我也遇到了花了好长时间才解决掉。

我附一个地址是阿里的镜像网站比其他快。

http://maven.aliyun.com/mvn/view

把你下不下来得库的地址附上去就行了

列如:

这是jcenter库的地址,因为大多数都是要它的地址,直接放到下面了

https://maven.aliyun.com/repository/jcenter

四、AS升级和插件升级

插件升级:

AS升级

五、HorizontalScrollView嵌套RecyclerView显示不全

在HorizontalScrollView下使用RelativeLayout而不是其它布局,轻松解决

猜你喜欢

转载自blog.csdn.net/qq_41346910/article/details/83927681