Android 高级进阶
文章平均质量分 95
Looper景
只有能在今天的风雨中翩翩起舞,才能期待明天的幸福生活
展开
-
让Activity更加简洁第二篇---AsyncTask的使用姿势
如果你点开的这篇文章,那么 AsyncTask 的基本用法肯定是掌握了的。这篇文章不是分析 AsyncTask的内部原理,而是侧重于如何使用,让我们视图层中的Activity看起来更舒适。本文的项目地址请移步:https://github.com/herojing/JokeTask 下面结合项目谈谈自己的使用心得。一、使用后效果如何? 老规矩,DEMO 实现的是一个列表,效果跟上篇 MV原创 2016-11-28 11:32:57 · 367 阅读 · 0 评论 -
Android插件化系列第(四)篇---插件加载机制两种方案
这篇博客说说插件的加载机制,建议阅读Android插件化系列第(二)篇—动态加载技术之apk换肤了解类的加载机制。一、相关概念1.1、为什么需要动态加载这个问题,前面已经介绍过,如下 Android系统使用了ClassLoader机制来进行Activity等组件的加载;apk被安装之后,APK文件的代码以及资源会被系统存放在固定的目录(比如/data/app/package_name/1.apk原创 2017-03-20 12:36:30 · 1608 阅读 · 0 评论 -
Android插件化系列第(五)篇---Activity的插件化方案(代理模式)
这篇文章介绍Activity的插件化方案,Activity的插件化方案不止今天介绍的这一种。建议在看本文之前,先看我的前两篇博客,如果前两篇有认真看过,那么阅读本文至多十分钟完事儿!Android插件化系列第(一)篇—Hook技术之Activity的启动过程拦截Android插件化系列第(二)篇—动态加载技术之apk换肤Android插件化系列第(四)篇—插件加载机制两种方案看过上面文章,我原创 2017-03-20 12:33:48 · 974 阅读 · 0 评论 -
Android架构设计---关于MVVM模式的探讨
一、MVP模式优缺点在说MVVM之前,简单回顾一下MVP分层,MVP总共分成三层: - a 、View: 视图层,对应xml文件与Activity/Fragment; - b 、Presenter: 逻辑控制层,同时持有View和Model对象; - c 、Model: 实体层,负责获取实体数据。MVP模式有其很大的优点1.解耦合,业务逻辑和视图分离;2.项目代码结构(文件夹)清晰,一看就原创 2017-03-20 12:32:47 · 5992 阅读 · 2 评论 -
Android架构设计---MVP模式第(二)篇,如何减少类爆炸
今天是2017年3月16日,差不多一年前,写过一篇MVP基础类型的文章Android架构设计—MVP模式第(一)篇,梳理了一下MVP怎么使用。OK,先回忆一下。一、基础知识1.1、MVP分层总共分成三层 - a 、View: 视图层,对应xml文件与Activity/Fragment; - b 、Presenter: 逻辑控制层,同时持有View和Model对象; - c 、Model: 实体原创 2017-03-20 12:30:31 · 2720 阅读 · 1 评论 -
Android插件化系列第(三)篇---Hook技术之View点击劫持
昨天有好几个小伙伴简信问我,View.onClick怎么hook?回想前几个月前,公司的项目在百度手机助手上线,在快速点击的时候会跳转两次Activity或者两个Dialog等等,为了能够顺利通过百度的测试,老大叫我将所有onClick全部要优化处理,避免用户快速多次点击,于是乎,我写了下面的代码public abstract class NoDoubleClickListener implemen原创 2017-02-14 09:29:46 · 2241 阅读 · 7 评论 -
Android进程保活的一般套路
自己曾经也在这个问题上伤过脑经,前几日刚好有一个北京的哥们在QQ说在做IM类的项目,问我进程保活如何处理比较恰当,决定去总结一下,网上搜索一下进程常驻的方案好多好多,但是很多的方案都是不靠谱的或者不是最好的,结合很多资料,今天总结一下Android进程保活的一些方案,都附有完整的实现源码,有些可能你已经知道,但是有些你可能是第一次听说,(1像素Activity,前台服务,账号同步,Jobschedu原创 2017-02-21 15:45:58 · 29761 阅读 · 12 评论 -
Android插件化系列第(二)篇---动态加载技术之应用换肤
Android系统使用了ClassLoader机制来进行Activity等组件的加载;apk被安装之后,APK文件的代码以及资源会被系统存放在固定的目录(比如/data/app/package_name/1.apk)系统在进行类加载的时候,会自动去这一个或者几个特定的路径来寻找这个类;但是系统并不知道存在于插件中的Activity组件的信息,插件可以是任意位置,甚至是网络,系统无法提前预知,因此正常原创 2017-02-10 21:17:18 · 989 阅读 · 0 评论 -
Android插件化系列第(一)篇---Hook技术之Activity的启动过程的拦截
这篇文章主要讲解如何利用动态代理技术Hook掉系统的AMS服务,来实现拦截Activity的启动流程。代码量不是很多,为了更容易的理解,需要掌握JAVA的反射,动态代理技术,以及Activity的启动流程。 如果对上面的知识点有些遗忘,建议按需扫读下面三篇文章,否则跳过。Java 反射Java 动态代理机制分析及扩展,第 1 部分深入理解Activity启动流程(三)–Activity启动的原创 2017-02-09 14:07:23 · 8990 阅读 · 3 评论 -
流行网络库第(三)篇---动手写图片加载的三级缓存
有很多第三方网络库都有三级缓存机制,比如BitmapUtil,ImageLoader等,今天来谈一谈是怎么实现的,首先三级指的是内存,文件,网络三级。OK下面开始写代码了。对于图片的下载逻辑,我们使用AsyncTask,在这个ImageLoadTask先把总体的框架给写出来,暂时先不管内存缓存,磁盘缓存,与网络请求逻辑怎么实现。public class ImageLoadTask extends A原创 2016-12-25 16:20:25 · 448 阅读 · 0 评论 -
流行网络库第(二)篇---Volley源码解析
在上一篇,流行网络库第(一)篇—Volley用法解析中了解了Volley的基本使用,但是对于Volley可能有些朋友还不是特别清楚。我也是结合源码与其他人的分析,才真正弄清楚Volley的工作原理。 先看一个Demo,Volley十几行代码就完成了一次HTPP请求,我们看看这段代码内部究竟发生了什么?public class MainActivity extends AppCompatActivi原创 2016-12-23 16:30:09 · 443 阅读 · 0 评论 -
流行网络库第(一)篇---Volley用法解析
Volley是2013年Google I/O大会上推出了一个新的网络通信框架,特么今年都2016年年尾了,这两年新技术出来的真是多的花了眼睛。虽然是三年前的开原库,但是并不妨碍我们研究它。这一篇先了解其基本用法,下一篇是源码解析,以后的网络库方面的分析,一般也是以这个套路来。 这是一幅经典的图,Volley的中文翻译为“齐射、并发”,这表示,Volley特别适合数据量不大但是通信频繁的场景,不支持原创 2016-12-23 16:31:23 · 508 阅读 · 0 评论 -
增量更新---服务端与客户端的处理方案
前言如果要对一个 APP 进行更新,你会怎么做呢,或许你的宿主 App 有若干功能,每一个功能都是一个插件,每次在功能更新的时候,直接更新插件就好,但是这种方式也有局限,它不能进行宿主程序更新,对于非常大的 apk ,增量更新还是有必要的,可以节省流量。增量更新的难点在于不同市场,不同版本都需要生成对应的差分包。差分包是将手机上已安装 apk 与服务器端最新 apk 进行二进制对比得到的,用户更新程原创 2016-11-28 11:25:16 · 2753 阅读 · 1 评论 -
三种方案实现Android应用的环境分离
通常产品在迭代的时候,都有测试环境和正式环境,或者说是生产和开发环境,一般软件开发阶段都是在测试环境上运行调试,而正式打包发布时会配置正式环境的服务器,也就是不同的接口URL和数据库的区别。所以开发人员经常要在测试环境与正式环境之间来回切换,这带来了很大不便。本文提供了三种种方式来解决这个问题。第一种方案:默认情况下,项目的buildTypes包含debug和release两个构建版本,用来分别对应原创 2016-11-28 11:30:21 · 1016 阅读 · 0 评论 -
让Activity更加简洁第一篇---MVP模式
MVP 这种模式出现已经很久了,在网上有些关于 MVP 开源代码2014年就有了,近期有关注项目架构方面的内容,于是乎,作为一个还不懂什么是 MVP 的人,那么就一定要了解一下的。网上关于 MVP 的资料其实也不少,通常都要把 MVP 和 MVC 做一下比较,我喜欢直接了当,相信有耐心看MVP的人是一定懂 MVC 的,MVC 的略过。本文的项目地址是:https://github.com/heroj原创 2016-11-28 11:31:52 · 1343 阅读 · 0 评论 -
Android架构设计---关于View边界划分的思考
版权声明:本文为LooperJing原创文章,转载请注明出处!在前几篇,我总结了MVP,MVVM,对MVP使用泛型,以避免类爆炸,这些方案的实施在一定的程度的,使得View和业务逻辑成功隔离开来,但是对于一个复杂的界面,,一个layout.xml即使使用了和自定义控件,上千行也是很有可能的。所以这篇博客,主要记录业务视图模块怎么编写比较好,当然这不是教科书,只是分享我关于这方面的思考。一、复杂视图分原创 2017-05-23 17:21:18 · 559 阅读 · 0 评论