教程
-
最近越来越多的人开始谈论架构。我周围的同事和工程师也是如此。尽管我还不是特别深入理解MVP和DDD,但是我们的新项目还是决定通过MVP来构建。这篇文章是我通过研究和学习各种文章以及专题讨论所总结出来的,它包括以下几点:为什么越来越多的人开始关注架构?首先,MVP是什么?哪种架构才是最好的,MVC,MVVM还是MVP?MVP的利与弊
-
Android的multidex带来的性能问题-减慢app启动速度
在安卓社区中,65k方法数的限制是一个被多次提及的问题。目前解决这个问题的办法就是用multidex。虽然multidex是谷歌给出的一个非常棒的办法,但是我发现了它对app启动性能存在严重的影响,这点还没有在社区引起重视。我这篇文章的就是为那些还没有听说过这个问题(但是想使用multidexing)的开发者以及那些使用了multidexing,但是想观察本文解决办法所能能赢得性能的伙伴而写的。
-
Xposed 框架是一款可以在不修改APK的情况下影响程序运行(修改系统)的框架服务,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作。Zygote 进程是 Android 的核心,所有的应用程序进程以及系统服务进程都是由Zygote进程 fork 出来的。Xposed Framework 深入到了 Android 核心机制中,通过改造 Zygote 来实现一些很牛逼的功能。
-
我们如何才能将传统的变量式线程同步管理转移到基于数据的异步流式编程上?试试 Reactive Programming 吧!这篇分享包含的主题有: reactive 扩展,observers ,以及 RxJava 的工作原理。尽管不容易上手,但是一旦上手,其乐无穷。
-
开发者的目标是打造用户喜欢的应用。使用体验更好的应用用户就愿意投入更多钱,在 Google Play 商店获得越高评分的应用会获得更多下载。那么如何衡量应用的质量?从一种角度说,应用的质量涉及以下几个方面:应用确实解决了用户的需求;应用不仅设计美观而且易于使用;应用稳定可靠、性能好、不浪费流量、不耗电等;应用有创新,使用了最新的 Android 特性;
-
什么是 MVVM ?我们一步步来,从 MVC 开始。MVC 我们都知道,模型——视图——控制器。为了使得程序的各个部分分离降低耦合性,我们对代码的结构进行了划分。他们的通信方式也如上图所示,即View层触发操作通知到业务层完成逻辑处理,业务层完成业务逻辑之后通知Model层更新数据,数据更新完之后通知View层展现。
-
写代码不可避免有Bug,通常情况下除了日志最直接的调试手段就是debug;那么你的调试技术停留在哪一阶段呢?仅仅是下个断点单步执行吗?或者你知道 Evaluate Expression, 知道条件断点;可是你听说过日志断点吗,
Method Breakpoint
,Exception Breakpoint
呢?还有高大上的 FieldWatchpoint
? -
这个选题很大,但并不是一开始就有这么高大上的追求。最初之时,只是源于对Xposed的好奇。Xposed几乎是定制ROM的神器软件技术架构或者说方法了。它到底是怎么实现呢?我本意就是想搞明白Xposed的实现原理,但随着代码研究的深入,我发现如果不了解虚拟机的实现,而仅简单停留在Xposed的调用流程之上,那真是对Xposed最大的不敬了。
-
关于图片加载库的思考,我们为什么要用图片库呢? 图片库通常会对图片加载逻辑进行封装、优化,比如多级缓存/异步线程调度/图片压缩变换,有了这些特性,开发者不再需要关注内存占用、OOM、网络请求等问题,而只需关注业务本身的逻辑,这对提高生产效率有很大帮助。
-
[Java并发包学习八]深度剖析ConcurrentHashMap
多线程环境下,使用Hashmap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap。虽然已经有一个线程安全的HashTable,但是HashTable容器使用synchronized(他的get和put方法的实现代码如下)来保证线程安全,在线程竞争激烈的情况下HashTable的效率非常低下。
-
Android静默安装实现方案,仿360手机助手秒装和智能安装功能
之前有很多朋友都问过我,在Android系统中怎样才能实现静默安装呢?所谓的静默安装,就是不用弹出系统的安装界面,在不影响用户任何操作的情况下不知不觉地将程序装好。虽说这种方式看上去不打搅用户,但是却存在着一个问题,因为Android系统会在安装界面当中把程序所声明的权限展示给用户看,用户来评估一下这些权限然后决定是否要安装该程序,但如果使用了静默安装的方式,也就没有地方让用户看权限了,相当于用户被动接受了这些权限。
-
目测性能是可观的。尽管H5包的离线化隔绝了弱网对秒出的干扰,设备本地 IO 耗时也是不能忽视的,算上zip的解压缩,仅在设备本地 IO 完全一个 HTML(包含其携带的资源文件)也会达到秒级的耗时,在iphone5上也会有0.5秒左右的白屏时间。
-
不久前Twitter展示了具有现代感的心形动画-作为star图标的替代。虽然心形标志更普遍和昂贵,但是今天我们尝试复制新的动画,使用旧的星星图标。虽然实现这个动画最简单的方法是使用 Frame Animation,但是我们尝试用更灵活的方法来实现-手动绘制并用属性动画。这篇文章只是概要,没有深入的技术细节。
-
上周Google上线了一个名为stream的功能,可以在搜索结果中直接将一个App呈现给用户,即使你并没有安装过这个App,也能正常使用它。这听起来确实很酷,目前Android L以上设备,Wifi环境下可用,且暂时只支持英语搜索结果,可以看看下面这个图感受下。
开源库&项目
-
一个可以帮助你高亮话题标签("#example")以及捕获点击话题标签事件的库。
-
一个可以让你给任何 View 添加 Twitter 心型按钮动画效果的库。
-
Twitter 心型按钮动画效果。
-
一个可以让你很容易的创建基于贝塞尔曲线的 Drawable 动画的库。
-
可以将 Icon-font 转换为 Drawable 或者 Bitmap 的库。
-
在系统权限逻辑的基础上进行了包装。
-
不可错过的 Java8 教程。
-
一个简单易用的 App 主题引擎。
-
支持手势缩放的自定义 TextView,控件本身和文字都会随着手势同时放大和缩小。
-
效果很赞的 TextView 的文本显示动画。
-
此项目是Android插件开发框架完整源码及示例。用来通过动态加载的方式在宿主程序中运行插件APK。
工具
-
一个可以帮你生成漂亮的以及多种文档格式简历的工具。
-
一个通过 checkstyle, pmd, findbugs等工具在你执行 "gradle assembleXX" 或者 构建你的 App 的时候帮你检测代码质量的项目。
-
一个通过 yaml 格式文件帮你处理 variant 特定设置的 Gradle 插件。
视频
-
证券交易系统,面临的都是低延迟,高并发,事务性的操作。1. 我们应用Event Sourcing、Leader Election模式,解决交易中间件的高可用问题(多活,零延时切换)。2. 运用LMAX Disruptor解决服务内的高并发,低延迟消息传递。3. 基于PGM组播实现的交易总线解决服务任意扩展的问题。
技术之外
-
很多朋友来找我帮忙,说想要招人求推荐,我一般情况下都很为难。只有我和你熟识、了解你在做的事情、明白你的能力,才敢帮你简单宣传一下,至于靠谱的至交好友,我也定当竭力帮忙。但是,在现在的整个市场背景下,钱不是钱,程序员、设计师等技术人才因为不太正常的市场而在此特殊供需关系下价格飙升,再无人关注技术质量,因为招聘者本身并不尊重技术。