刘光利,阿里资深研发,专注移动客户端、前端开发。“持续学习的人会越来越年轻,失去学习热情的人早已老去!”,追求匠人精神,对技术探索保持高度热情。
## 应用知栏视图是如何夸进程显示到 SystemUI 的? 跨进程通讯的基础是 IPC ,通知服务(NotificationManagerService, 简称 NMS)也不离开 IPC ,核心架构还是 IPC 架构。 ### 消息通道 1. 应用做作为通知的发送端, 需要调用 NMS ,发通知。例如: String channelId = "channe
2018年,整个移动互联网进入了下半场。为什么说已经进入了下半场,谈未来,先讲历史,我们来重头开始捋一捋吧。 2005 年,Google 收购了成立不到两年的 Android 公司,经过三年多的研发,于 2008年推出了 Android 1.0 ,此时还是搭载塞班系统的诺基亚的天下,业界并不看好 Google 的 Android ,很多人认为最多一年 Google 就会放弃 Android。
比特币和区块链 2008年,中本聪发布了一篇名为《比特币:一种点对点的电子现金系统》论文,之所以选择在金融危机这年发布,也许别有深意。他认为传统货币最根本的问题在于信任,银行必须让人信任它能帮我们管好钱财,但是银行却在用货币制造信贷泡沫,通货膨胀使人财富缩水。
假如你现在要开发一个 SDK,比如说广告SDK吧,你希望在应用的入口 Activity 之前插入你的 Activity,在你的 Activity 中显示广告, 怎么做? 我看过联通沃商店的做法, 要求接入方声明自己的 Ativity 为入口 Activity,这种做法显然不符合一个技术人的追求的。
> 注:这是一片翻译文章:原文:[How to improve quality and syntax of your Android code](http://vincentbrison.com/2014/07/19/how-to-improve-quality-and-syntax-of-your-android-code/),为了理解连贯,翻译过程中我修改了一些陈述逻辑和顺序,同时也加了一些自
> 注:这是一篇翻译文章,原文:[How to improve quality and syntax of your Android code](http://vincentbrison.com/2014/07/19/how-to-improve-quality-and-syntax-of-your-android-code/),为了理解连贯,翻译过程中我修改了一些陈述逻辑和顺序,同时也加了一些自
在[《DIY 物联网 4 - 遥控控制风扇》](http://www.liuguangli.win/archives/601)中实现了用空调遥控来控制一台普通的风扇,沿着上一章的基础,这一章我们来一个更酷的: 用手机控制风扇。
先说两个真实的故事: 第一个故事有点悲凉,2011年3月,我的同学老 A 和我一同进入茁壮网络,2012 年公司战略变动,整个部门端掉了,我提前离了职另谋出路,老 A 一直赖到了最后拿到了N+1,后来和当时的部门经理一同进入一家创业公司,没日没夜的干了两年,最后公司工资都发不起,直到我这位同学离开
对于测试,大家都不陌生,但是我相信还是有部分开发觉得测试工作和自己没有直接关系、测试工作是测试工程师的事。惭愧的说,本人也是很长一段时间内没真正理解“测试”这件事儿,之前呆过的几家公司都没有真正的“测试工程师”,确切的说,是没有会写代码的测试工程师,基本上都是手动测试,然后输出报告,测试无需懂技术,
内存、性能是程序永恒的话题,实际开发中关于卡顿、OOM也经常是打不完的两只老虎,关于卡顿、OOM的定位方法和工具比较多,这篇文章也不打算赘述了,本章主要是来整理一下JVM的内存模型以及Java对象的生与死。 生存空间(内存区域) Java程序运行在JVM之上,如果Java对象是一个有血有肉的生灵
在《浮窗开发之窗口层级》这篇文章中,开篇提出了三个问题: 窗口层级关系(浮窗是如何“浮”的)? 浮窗有哪些限制,如何越过用户授权实现浮窗功能? Activity是如何接收到touch事件的? 前两个问题在前两篇文章中已经分析,在这篇文章中我们以第三个问题为切入点,简单分析一下窗口与用户输入的
通常一个App的成长过程都是这样的: 第一阶:先用最少的成本和时间快速把东西做出来。 第二阶段:积累一定用户量之后再小步快跑的迭代功能。 第三阶段:性能和体验上逐步求精。 我发现好多项目在第二阶段和第三阶段耗费了好多本来不应该浪费的人力成本、时间成本。究其原因就是因为前期忽略了合理的架构,我甚至经历过因为前期的设计不合理导致后期技术债务太多项目濒临死掉、整个项目组全员换掉重造锅炉的境地。所
我们都知道垃圾回收是指回收那些不再使用的对象所占的内存区域。生动的说,在 Java 的世界里,无用的人就要拉出去枪毙了,并且把其所占的地盘清理,以便让“别人“来使用。 如何判断对象“无用”? 关于判断对象是否无用的算法,在JVM的发展过程中出现过两种算法:一种是引用计数和根集算法。 引用计
最近在项目中遇到了这样的需求:需要在特定的其他应用之上悬浮自己的UI交互(拖动、输入等复杂的UI交互),和九游的浮窗类似,不过我们的比九游的体验更好,我们越过了很多授权的限制。 很多人都知道如何去实现一个简单的浮窗,但是却很少有人去深入的研究背后的流程机制,由于项目中浮窗交互比较复杂,遇到了些
文章首发:Android应用程序插件化研究之DexClassLoader|大利猫 最近在研究Android应用的插件化开发,看了好几个相关的开源项目。插件化都是在解决以下几个问题: * 如何把插件apk中的代码和资源加载到当前虚拟机。 * 如何把插件apk中的四大组