背景 看过我博客的老铁应该知道,我在 18 年五月写过一个小 gradle 插件https://github.com/yanbober/app-tiny-R-gradle-plugin,其作用就是将 app 生成的 R 常量进行内联操作。对,就是前不久很火的滴滴 booster 和字节跳动 ByteX 提供的 R 资源 inline 原理。 这两天因为项目要升级适配 AGP4.1.0 版本,顺手要调研 AGP 4.1.0 构建对子 module 及合成最终 app 的 intermediates 产物 R 变化问题…

2020年11月5日 0条评论 0点热度 阅读全文

一年多年写了一篇简单的软件优化教程,给公司的同事使用。现在应该还不算过时,在过去一年里,在国家脱虚向实运动倡导下,一个个高科技企业如雨后春笋般诞生,对软件的优化和重构的需求也越来越多。早期的 android 开发者曾经十分羡慕C文开发者,C的调试工具是如此之多和丰富,内存,堆栈,CPU,GPU,断点,现在android的系统分析和优化工具也相当多,借助系统自带的开发者工具,android系统也变得日趋成熟和完美。无论是功耗(耗电),还是CPU,还是GPU,还是内存,抑或者是UI显示都有了相应的分析工具做定量的分析,…

2017年9月15日 0条评论 2点热度 阅读全文

Author:Hyman Lee Email:hyman.dev@gmail.com Github:MrBigBang 项目地址:StickyListHeaders 1.功能介绍 这个开源库可以实现的UI效果:粘性头部列表以及可隐藏展开列表。效果很赞,“开发者头条”这个app上有用到。 主要特点: (1)使用静态代理模式,对adapter进行封装,外界使用过程中定义的adapter只需要按照常规实现即可,但必须实现StickyListHeadersAdapter接口,可以选择性实现SectionIndexer接口。…

2016年9月6日 0条评论 4点热度 阅读全文

在开发中UI布局是我们都会遇到的问题,随着UI越来越多,布局的重复性、复杂度也会随之增长。Android官方给了几个优化的方法,但是网络上的资料基本上都是对官方资料的翻译,这些资料都特别的简单,经常会出现问题而不知其所以然。这篇文章就是对这些问题的更详细的说明,也欢迎大家多留言交流。 一、include 首先用得最多的应该是include,按照官方的意思,include就是为了解决重复定义相同布局的问题。例如你有五个界面,这五个界面的顶部都有布局一模一样的一个返回按钮和一个文本控件,在不使用include的情况下你…

2015年5月20日 0条评论 9点热度 阅读全文

简述 设计模式已经成为开发人员最重要的技能之一,它们能够让你优雅、简单、灵活地解决开发中遇到的设计难题,让你的软件系统具有更好的可扩展性、灵活性,在特定场景之下让你的软件系统实现拥抱变化。但设计模式运用在Android上的书籍并不多,Android本身又是开源,那么剖析Android源码中的设计模式必定是我们学习设计模式的一个非常好的渠道。我们在大型系统中学习设计模式的运用,领悟它的设计思考、灵活运用,既学到了设计模式本身,也深入Android源码了解了它的一些核心原理。 经过将近一个月的更新,小伙伴们都很积极的参…

2015年3月23日 0条评论 13点热度 阅读全文

前言 在《教你写Android网络框架》专栏的前两篇博客中,我们已经介绍了SimpleNet框架的基本结构,以及Request、Response、请求队列的实现,以及为什么要这么设计,这么设计的考虑是什么。前两篇博客中已经介绍了各个角色,今天我们就来剖析另外几个特别重要的角色,即NetworkExecutor、HttpStack以及ResponseDelivery,它们分别对应的功能是网络请求线程、Http执行器、Response分发,这三者是执行http请求和处理Response的核心。 我们再来回顾一下,Sim…

2015年1月26日 0条评论 1点热度 阅读全文

    尽管网络上已经有很多关于这个话题的优秀文章了,但还是写了这篇文章,主要还是为了加强自己的记忆吧,自己过一遍总比看别人的分析要深刻得多,那就走起吧。 简单示例      先看一个示例 : 布局文件 : <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:i…

2014年8月31日 0条评论 1点热度 阅读全文

参考文章 : http://blog.csdn.net/liuhe688/article/details/6532519      在Android中实现异步任务机制有两种方式,Handler和AsyncTask。      Handler模式需要为每一个任务创建一个新的线程,任务完成后通过Handler实例向UI线程发送消息,完成界面的更新,这种方式对于整个过程的控制比较精细,但也是有缺点的,例如代码相对臃肿,在多个任务同时执行时,不…

2013年5月25日 0条评论 14点热度 阅读全文