编译源码基本上都是在linux环境下编译,所以我们在window系统中使用虚拟机安装ubuntu系统来编译 1.虚拟机安装 Ubuntu 首先是下载Ubuntu系统镜像,我一...
简介 作为Android开发者,如果你不想开源你的应用,那么在应用发布前,就需要对代码进行混淆处理,从而让我们代码即使被反编译,也难以阅读。混淆概念虽然容易,但很多初学者也只...
本篇文章:自己在混淆的时候整理出比较全面的混淆方法,比较实用,自己走过的坑,淌出来的路。请大家不要再走回头路,可能只要我们代码加混淆,一点不对就会导致项目运行崩溃等后果,有许...
前言 在Android中如果要显示一个页面,那么只需要在Activity的onCreate()方法中,把我们写好的页面布局layout传入到setContentView()方...
前言 本系列文章我们来探究下binder全流程通信,这里的全流程既指请求binder服务和binder服务返回结果的过程;又指整个通信过程贯穿app,framework,jn...
关于动态代理,我之前写过一篇文章《10分钟看懂动态代理设计模式》。在这篇文章中,我收到了一些关于动态代理的提问,也有同学在微信公众号给我私信,询问关于动态代理的问题。再次Re...
网络优化系列专题,聊一聊面对复杂多变的移动网络,我们需要掌握哪些网络基础知识,以及该如何做好网络优化这项工作。 网络优化系列专题 网络优化背景知识(待完善) 《关于 5G,你...
偶然看到一个问题,SharedPreferences 是线程安全的吗?SharedPreferences 是进程安全的吗?如果不是,那如何保证线程安全、进程安全呢?Share...
LeakCanary 是由 Square 开源的针对 Android 和 Java 的内存泄漏检测工具。 使用 LeakCanary 的集成过程很简单,首先在 build.g...
一个支持多种状态的自定义View,可以方便的切换到: 加载中视图 错误视图 空数据视图 网络异常视图 内容视图 GitHub源码地址 示例apk下载 使用 示例 Multip...