一种Android应用内全局获取Context实例的装置

2017-04-10
阅读 14 分钟
12.9k
没毛病,扎心了。App运行的时候,肯定是存在至少一个Application实例的。同时,Context我们再熟悉不过了,写代码的时候经常需要使用到Context实例,它一般是通过构造方法传递进来,通过方法的形式参数传递进来,或者是通过attach方法传递进我们需要用到的类。Context实在是太重要了,以至于我经常恨不得着藏着掖着,随身...

震惊,西方的程序员跑得居然这么快

2017-03-21
阅读 4 分钟
2.7k
昨天刚刚发表了一篇文章(ProGuard又搞了个大新闻),主要吐槽的是项目里面使用ProGuard工具导致的一个诡异的坑。其中根本的原因就是,ProGuard混淆Java注解类的时候,把两个方法混淆成同样的名字,导致dx工具在打包.dex文件的时候报错。

ProGuard 又搞了个大新闻

2017-03-20
阅读 12 分钟
3.6k
一般情况下,Android项目经常开启ProGuard功能来混淆代码,一方面可以降低应用被反编译后代码的友善度,增加被逆向的难度,另一方面开可以通过精简Java API的名字来减少代码的总量,从而精简应用编译后的体积。

通过预安装给MultiDex加速

2016-12-11
阅读 7 分钟
4.5k
在Android Kikat及以前的Android系统上,构建或安装Apk会出现“65535方法数超标”以及“INSTALL_FAILED_DEXOPT”问题,MultiDex是Google为了解决这个问题问题而开发的一个Support库。MultiDex出现的具体背景、使用方式可以参考给App启用 MultiDex功能,而MultiDex Support库的工作机制、源码分析可以参考MultiDex工作原理分...

MultiDex工作原理分析和优化方案

2016-12-11
阅读 20 分钟
4.2k
动态加载技术(插件化)系列已经坑了有一段时间了,不过UP主我并没有放弃治疗哈,相信在不就的未来就可以看到“系统Api Hook模式”和插件化框架Frontia的更新了。今天要讲的是动态加载技术的亲戚 —— MultiDex。他们的核心原理之一都是dex文件的加载。

使用Log的一些姿势

2016-11-13
阅读 2 分钟
4.5k
LOG 是任何一种编程语言的第一个API,通常被初学者用来打印 Hello, World!。 有研究显示,不使用 LOG 或者使用姿势错误的人,感情路都走得很辛苦,有七成的比例会在 34 岁的时候跟自己不爱的人结婚,而其余三成的人最后只能把遗产留给自己的猫。毕竟爱情需要书写,不能是一整张白纸。

设计一个框架化框架 Frontia

2016-07-12
阅读 2 分钟
5.9k
结合动态加载系列文章的分析,现在开始设计并开发一个Android的插件化框架,命名为Frontia。Frontia有“前端”的意思,寓意着Android插件能像前端开发那样动态发版,同时,这一词出自Macross动画系列,有“繁星”的意思,“我们的征途是星辰大海 KIRA!!(<ゝω·)☆”。

ANDROID动态加载 使用SO库时要注意的一些问题

2016-06-04
阅读 8 分钟
29.3k
正好动态加载系列文章谈到了加载SO库的地方,我觉得这里可以顺便谈谈使用SO库时需要注意的一些问题。或许这些问题对于经常和SO库开发打交道的同学来说已经是老生长谈,但是既然要讨论一整个动态加载系列,我想还是有必要说说使用SO库时的一些问题。

Android动态加载的类型

2016-05-13
阅读 3 分钟
4.6k
现在网络上有许多关于动态加载的介绍的文章,谈及的关键词汇有动态加载、插件化、热部署、热修复等,对于一些刚接触这方面开发技术的人来说,可能容易混淆。

阅读Android源码的一些姿势

2016-02-11
阅读 8 分钟
16k
IDE是日常经常用的东西,Eclipse就不说了,直接从Android Studio(基于IntelliJ Community版本改造)开始。

有没有必要阅读Android源码

2016-02-11
阅读 3 分钟
6.9k
或许对于许多Android开发者来说,所谓的Android工程师的工作“不过就是用XML实现设计师的美术图,用JSON解析服务器的数据,再把数据显示到界面上”就好了,源码什么的,看也好不看也罢,反正应用层的开发用不上,再加上现在优秀的轮子越来越多,拿来主义泛滥,能用就是,反正老板也不关心是不是你自己写的,用我现在老大的...

在XML布局里给View设置点击事件

2015-12-22
阅读 6 分钟
15.7k
有的时候从XML布局里直接设定点击事件会比较方便(特别是在写DEMO项目的时候),这种做法平时用的人并不多,从使用方式上大致能猜出来,View应该是在运行的时候,使用反射的方式从Activity找到“onClickView”方法并调用,因为这种做法并没有用到任何接口。

Android动态加载技术 系列索引

2015-12-02
阅读 2 分钟
16.9k
Android Dynamical Loading 大家新年好,最近花了点时间,慢慢把这个系列的内容稍微调整了下。Last Edit: 2016-2-10 基本信息 Author:Kaedea GitHub:android-dynamical-loading 动态加载介绍 在Android开发中采用动态加载技术,可以达到不安装新的APK就升级APP功能的目的,可以用来到达快速发版的目的,也可以用来修复...

Android动态加载黑科技 动态创建Activity模式

2015-12-01
阅读 7 分钟
35.9k
还记得我们在代理Activity模式里谈到启动插件APK里的Activity的两个难题吗,由于插件里的Activity没在主项目的Manifest里面注册,所以无法经历系统Framework层级的一系列初始化过程,最终导致获得的Activity实例并没有生命周期和无法使用res资源。

Android动态加载进阶 代理Activity模式

2015-11-29
阅读 10 分钟
26.1k
简单模式中,使用ClassLoader加载外部的Dex或Apk文件,可以加载一些本地APP不存在的类,从而执行一些新的代码逻辑。但是使用这种方法却不能直接启动插件里的Activity。

Android动态加载入门 简单加载模式

2015-11-29
阅读 5 分钟
27.5k
Java程序中,JVM虚拟机是通过类加载器ClassLoader加载.jar文件里面的类的。Android也类似,不过Android用的是Dalvik/ART虚拟机,不是JVM,也不能直接加载.jar文件,而是加载dex文件。

Android动态加载补充 加载SD卡中的SO库

2015-11-29
阅读 8 分钟
35.2k
Android中JNI的使用其实就包含了动态加载,APP运行时动态加载.so库并通过JNI调用其封装好的方法。后者一般是使用NDK工具从C/C++代码编译而成,运行在Native层,效率会比执行在虚拟机的Java代码高很多,所以Android中经常通过动态加载.so库来完成一些对性能比较有需求的工作(比如T9搜索、或者Bitmap的解码、图片高斯模糊...

Android动态加载基础 ClassLoader工作机制

2015-11-29
阅读 10 分钟
45.8k
早期使用过Eclipse等Java编写的软件的同学可能比较熟悉,Eclipse可以加载许多第三方的插件(或者叫扩展),这就是动态加载。这些插件大多是一些Jar包,而使用插件其实就是动态加载Jar包里的Class进行工作。这其实非常好理解,Java代码都是写在Class里面的,程序运行在虚拟机上时,虚拟机需要把需要的Class加载进来才能创...

Android动态加载技术 简单易懂的介绍方式

2015-11-29
阅读 7 分钟
48k
我们很早开始就在Android项目中采用了动态加载技术,主要目的是为了达到让用户不用重新安装APK就能升级应用的功能(特别是 SDK项目),这样一来不但可以大大提高应用新版本的覆盖率,也减少了服务器对旧版本接口兼容的压力,同时如果也可以快速修复一些线上的BUG。

Android APP性能调优 一本正经的胡说八道的前言

2015-11-08
阅读 5 分钟
7.6k
一直以来都想对Android APP开发的性能调优做一下总结,其实性能调优涉及到多方面的工作,每次有一些心得我都会记录下来,零零散散记录了很多,最近发现许多地方重复了,感觉还是得做一下整理的,知识就是这么牢固起来的。

分享一些流畅的适合开发的 Android 模拟器

2015-11-08
阅读 4 分钟
72.2k
“工欲善其事,必先利其器。” 使用Android模拟器开发和调试应用肯定比使用真机方便。但相比XCODE的IOS模拟器,Android SDK自带的AVD实在不争气,不过一些第三方的模拟器却表现不俗!

想收集一下Android应用性能调优的技术点

2015-11-08
阅读 3 分钟
4.4k
最近一个星期居然没有产品的需求,本来打算涂几个妹子过双11,突然想到许多新人进项目组后会把项目以前踩的坑给再次踩一边,特别是一些会引发性能问题的“有坏味道”的代码,虽然一点有问题的代码暂时不管也不会有多大的影响,但是“千里之堤,毁于蚁穴”,一旦问题严重了就不好处理了。不能指望每次都做好完整的Code Review...

Android MVP模式 简单易懂的介绍方式

2015-10-29
阅读 9 分钟
85.7k
Android MVP 模式1 也不是什么新鲜的东西了,我在自己的项目里也普遍地使用了这个设计模式。当项目越来越庞大、复杂,参与的研发人员越来越多的时候,MVP 模式的优势就充分显示出来了。

Facebook开源的Android图片加载库Fresco的Demo项目

2015-10-26
阅读 2 分钟
7k
关于图片加载框架,我用过许多轮子,也有自己写过。目前项目在使用的是一个我基于 Volley 修改而来的 ImageLoader ,但是由于产品天花乱坠的需求,现在已经渐渐改得面目全非了,于是打算换成一个新的轮子,在 Glide 和 Fresco 纠结一段时间后,打算先尝试 Fresco 。