你最了解的 SharedPreference和ContentProvider 知多少?

在技术学习的道路上,往往最常见、用的最多地方,却有着容易忽略的技术细节。某个时间点蓦然回首,才发现最应该了解和掌握的技术基础,却由于缺少总结和记录、或者是因为常态思维固化缺少场景去思考,却显得那么陌生。

这篇文章将从作者自身的角度,去重新认识SharedPreference和ContentProvider这两个控件,并且以后也会在博客中有意识的记录类似的技术细节,防止这些基础的技术细节问题再次被遗忘和忽略。

阅读全文

Java内存问题 及 LeakCanary 原理分析

前些天,有人问到 “开发过程中常见的内存泄漏都有哪些?”,一时脱口而出:静态的对象中(包括单例)持有一个生命周期较短的引用时,或内部类的子代码块对象的生命周期超过了外面代码的生命周期(如非静态内部类,线程),会导致这个短生命周期的对象内存泄漏。总之就是一个对象的生命周期结束(不再使用该对象)后,依然被某些对象所持有该对象强引用的场景就是内存泄漏。

这样回答很明显并不是问答人想要的都有哪些场景,所以这里抽时间整理了下内存相关的知识点,及LeakCanary工具的原理分析。

阅读全文

安卓平台中的动态加载技术分析

安卓平台的动态加载原理,本质其实还是利用java相关知识实现。然而java语言中,开发人员能通过程序进行动态操作class的,主要是字节码生成和类加载器这两部分的功能。本文中也主要是围绕这两方面的技术,展开在安卓平台上的应用分析。

阅读本文,一起宏观理解安卓插件化,热修复,模块化,AOP,Java类加载等知识。

阅读全文

Lifecycle+Retrofit+Room完美结合 领略架构之美

安卓开发技术发展到现在已经非常成熟,有很多的技术专项如插件,热修,加固,瘦身,性能优化,自动化测试等已经在业界有了完善的或者开源的解决方案。
作为一枚多年的安卓研发,有必要学习或了解下这些优秀的解决方案,领略那些行业开创者的思想魅力,然后转化为自己的技术技能,争取应用到日常的开发中去,提高自己研发水平。

库引用信息

阅读全文

Gradle插件开发 APK瘦身资源自定义7z压缩

项目开发中,随着业务的增长,常常需要在apk编译阶段对包代码或是资源做一定的自定义修改,比如热修复,插件生成,无埋点统计,渠道包生成等等。

但是公司项目业务开发人员基本上都很少接触到相关技术,这里以学习的态度,实现一套用7zip压缩apk资源文件的gradle插件。

阅读全文

免sdk实现微信/支付宝转账打赏功能

安卓开发者都应该有一个属于自己的APP发布到市场,可以完善自己的技术站之外,加入广告,还可以有一份小收入。
但是这个年代,各家的应用市场是不欢迎带广告sdk的个人开发者应用的。还好我们可以用插件技术加入广告sdk,或者直接想一种方面实现打赏功能,让用户通过支付宝或微信转账到自己账户。

MiniPay

阅读全文

知识总结之 Charles抓包工具使用总结

Charles是一款HTTP/HTTPS协议流量包分析工具,适用于PC及各种移动设备。在使用过程中,有很多强大而方便的功能,总结下来,方便日后使用。

车厘子?

阅读全文

知识总结之 Material Design库常用控件总结

Google从安卓5.0开始提出了Meterial Design设计,各种被模仿学习,开始有超越IOS的劲头。同时,谷歌官方还为安卓开发者提供了design库,可以很容易实现meterial设计华丽丽效果,公司项目很少能够直接用这些控件的,这几天业余时间学习下用在自己小项目中,这里整理一篇这些控件细节,为日后参考。

Material Design

阅读全文

知识总结之 插件化学习 Hook系统方法分析

这里主要讲的Hook,是利用java上的动态代理实现替换系统某个类,在方法调用过程中,利用反射,插入自己代码逻辑的一种方式。

武汉·黄鹤楼

阅读全文

知识总结之 插件化 占坑类Activity实现方式分析

从2014年静态代理插件方式的开源项目发展,到现在已经三年多时间,业界各种插件的实现方式值得去学习和研究。这里还是从基础学习,分析占坑类型的插件如何实现Activity的免安装免注册启动。

阅读全文