面向 Android 高级工程师的一份面试宝典

前言

疫情一过,我相信将会是面试求职的高峰时期,如果此时手里有份高质量的面试宝典,那么你将得心应手面对考官各种问题。虽然不敢保证你能应聘上心仪的职位,但是能保证看完这些内容你的收获将超乎你的想象! 此份面试宝典搜集各大网络平台(如果侵权,请您告知),在此感谢他们的用心总结,才有这份足够全面的面试宝典!

已托管 GitHub, 觉得对你有帮助的可以给个 star

阅读更多

必看的性能优化总结

前言

如果你已经有 2 - 3 年以上开发经验还不懂的怎么去优化自己的项目,那就有点说不过去了,下面是我自己总结的一套入门级别的 Android 性能优化。如果图片不清晰文末可以下载原始 xmind 图。

如果你正在找工作, 那么你需要一份 Android 高级开发面试宝典

阅读更多

性能优化 (十三) 稳定运行优化之捕获 Native Crash

介绍

现在 Android 日常开发中,多多少少会用到 so 动态库,特别是一些第三方的 so 比如(地图 SDK,音视频 SDK)还有自研 SDK,不知道大家有没有想过这样的一个问题,用户反馈我们的 APP 崩溃,这个时候后台也没有收到具体的日志,我们也不知道从哪里分析,这是最可怕的。如果有日志,一切就好办了,下面我们就来分析 Android 端怎么获取不同情况下的崩溃信息。

阅读更多

性能优化 (十二) 体积优化之极限瘦身

简介

随着项目的不断迭代,代码量跟资源文件不断增多。那么就会出现打包后的 APK 文件越来越大,如果突然有一天你们老板或领导叫你优化 APK 大小,你还不知道怎么优化那就有点说不过去了,这篇文章咱们就来一起分析并优化 APK 体积大小吧。

阅读更多

性能优化 (十一) 稳定运行优化之热修复原理探索

完整代码传送阵

热修复的由来

  • 刚发布的版本出现了严重的 bug ,需要开发者去解决 bug,然后在测试打包重新发布,这会耗费大量的人力,物力,代价比较大。
  • 如果当前的 bug 不影响用户使用也不会崩溃,但是了下个版本是大版本,那么两个版本之间间隔时间会很长,这样要等到下个大版本发布在修复 bug , 而之前版本的 bug 还存在,虽说不影响使用,但是是一个潜在的 bug。
  • 版本升级率不高,并且需要长时间来完成版本迭代,前版本的 bug 就会一直影响不升级的用户。
  • 有一些小但是很重要的功能需要在短时间内完成版本迭代,如果假日活动。

..等等, 这里只是拿几个常见的举例说明。

阅读更多

性能优化 (十) 稳定运行优化之进程保活实现

简介

现在只要是社交 APP 没有哪个开发者不想让自己的 APP 永久常驻的,想要永久常驻除非你们家的实力非常雄厚,APP 用户量非常大,那么厂商都会主动来找你,把你们家的 APP 加入白名单。否则永久常驻是不可能甚至都不给你权限后台运行。既然不能永久常驻,那么我们有没有一个办法可以使我们的 APP 不那么容易被系统杀死勒?或者说是杀死后能主动唤醒,显然是可以的,下面我们进入主题吧。

阅读更多

性能优化 (九) APK 安全优化之 Dex 加密解码 -下

上一篇讲了 dex 加密解密 还没有看过的可以先去了解下 dex 怎么加解密,这篇就来带大家完成剩下的工作,dex 解密完成之后需要把代理 ProxyApplication 给删除掉,然后把我们自己的 Application 给添加到我们程序中。想要替换 ProxyApplication 可不是一件简单的事儿,首先必须的对 Application 启动方式很熟悉才能对它进行超作,下面由我来带着大家一起进入源码的世界吧。

阅读更多

性能优化 (七) 体积优化之混淆技术

ProGuard

ProGuard 是什么?

可以把 ProGuard 理解为是对代码和资源压缩的一个工具,它能够提供对 Java 类文件的压缩、优化、混淆,和预校验。压缩的步骤是检测并移除未使用的类、字段、方法和属性。优化的步骤是分析和优化方法的字节码。混淆的步骤是使用短的毫无意义的名称重命名剩余的类、字段和方法。压缩、优化、混淆使得代码更小,更高效。

阅读更多