Flutter 与原生交互总结 (mp.weixin.qq.com)
Android与Flutter之间的通信共有四种实现方式。

由于在初始化flutter页面时会传递一个字符串——route,因此我们就可以拿route来做文章,传递自己想要传递的数据。该种方式仅支持单向数据传递且数据类型只能为字符串,无返回值。
通过EventChannel来实现,EventChannel仅支持数据单向传递,无返回值。
通过MethodChannel来实现,MethodChannel支持数据双向传递,有返回值。
通过BasicMessageChannel来实现,BasicMessageChannel支持数据双向传递,有返回值。
by @code小生 2019-08-18 23:19 分享 查看详情
Glide 架构设计艺术 (mp.weixin.qq.com)
自从Android诞生以来,Bitmap的管理就一直是大问题,为了更好的管理它,不同的图片加载框架不断的被推出,从刚开始的ImageLoader,到Picasso,再到现在的Fresco和Glide,可谓百花齐放。然而前两者现在都已经不再维护了,同时我们公司的项目目前也已经从Fresco切换到Glide了,之前之所以用Fresco是因为他在Android5.0以下系统中能从native层“偷”内存,但后面由于Android对于Bitmap内存管理方式的改变,这个功能不再生效,相比于Glide来说,Fresco就显得侵入性太强,而且可扩展性没有glide强。而Glide之所以扩展性如此强,就在于它 优秀的架构设计 ,这也是我们今天要讨论的。
by @code小生 2019-08-18 23:19 分享 查看详情
Android Study - 关于AIDL的使用学习 (mp.weixin.qq.com)
进程:一般指一个执行单元,在平台上指一个程序或一个应用;

线程:CPU调度的最小单位,也是一种资源,一个应用可包含多个线程;
by @code小生 2019-08-18 23:19 分享 查看详情
代码洁癖症的我,学习 Lint 学到心态爆炸 (mp.weixin.qq.com)
以前对下面的问题,我的态度是,不报错就是没问题,报错就用快捷键,根据Android Studio提示修复问题,从来不去问个为什么?现在代码洁癖症越来越严重的我,忍不住想看清什么东西在搞鬼。
by @code小生 2019-08-18 23:18 分享 查看详情
你 多久没有跳槽了? (mp.weixin.qq.com)
临近年关,王丽一直惴惴不安,时刻盯着手机,生怕遗漏任何重要的电话。前不久,她去应聘了一家心仪的单位岗位,过五关斩六将,已经通过了两轮面试。本打算年后辞职的,但左等右等,就是没有等来录取的offer,也没有接到不录用的通知。
by @code小生 2019-08-18 23:18 分享 查看详情
推荐几款能提升代码效率的笔记应用 (mp.weixin.qq.com)
编程容易产生挫折,即使作为一种业余爱好也可能是这样。建立一个网页,手机APP或桌面应用都是个很大的工程,好的记笔记技能是让这个工程井然有序的关键,也是克服压力、绝望和倦怠的好方法。
by @code小生 2019-08-18 23:17 分享 查看详情
这本豆瓣评分 9.7 的操作系统导论竟然是免费的 (mp.weixin.qq.com)
不学习底层知识你依然可以成为一个称职的程序员,但也许会阻碍你成为一个优秀的程序员。
by @code小生 2019-08-18 23:17 分享 查看详情
推荐 15 款编程游戏,从此谁都可以学编程! (mp.weixin.qq.com)
一边玩游戏,一边挑战编程难题。Coding games支持包括PHP、C、JavaScript在内的20多种编程语言。用户界面功能强大,可以定制。
by @code小生 2019-08-18 23:16 分享 查看详情
你的财商正在决定着你要走的路 (mp.weixin.qq.com)
财商可能很多人不懂,更不知道自己道财商有多高,今天,小编带大家揭晓答案,让你清楚自己对 钱 是个什么认识。
by @code小生 2019-08-11 21:32 分享 查看详情
这本豆瓣评分 9.7 的操作系统导论竟然是免费的 (mp.weixin.qq.com)
不学习底层知识你依然可以成为一个称职的程序员,但也许会阻碍你成为一个优秀的程序员。
by @code小生 2019-08-11 21:30 分享 查看详情
推荐 15 款编程游戏,从此谁都可以学编程! (mp.weixin.qq.com)
一边玩游戏,一边挑战编程难题。Coding games支持包括PHP、C、JavaScript在内的20多种编程语言。用户界面功能强大,可以定制。
by @code小生 2019-08-11 21:30 分享 查看详情
利用 Android Keystore 系统 加密存储和解密敏感信息 (mp.weixin.qq.com)
利用 Android Keystore 系统,您可以在容器中存储加密密钥,从而提高从设备中提取密钥的难度。在密钥进入 Keystore 后,可以将它们用于加密操作,而密钥材料仍不可导出。此外,它提供了密钥使用的时间和方式限制措施,例如要求进行用户身份验证才能使用密钥,或者限制为只能在某些加密模式中使用。
by @code小生 2019-08-11 21:28 分享 查看详情
有关 Map 的一些总结 (mp.weixin.qq.com)
我们知道在Java中最常用的两种结构是数组和模拟指针(引用),几乎所有的数据结构都可以利用这两种来组合实现,HashMap也是如此。实际上HashMap是一个“链表散列”,如下是它数据结构:
by @code小生 2019-08-04 23:53 分享 查看详情
动态加载 so 注意事项&案例 (mp.weixin.qq.com)
打包在apk中的情况,不需要开发者自己去判断ABI,Android系统在安装APK的时候,不会安装APK里面全部的SO库文件,而是会根据当前CPU类型支持的ABI,从APK里面拷贝最合适的SO库,并保存在APP的内部存储路径的 libs 下面。
by @code小生 2019-08-04 23:53 分享 查看详情
一次 Android 权限删除经历 (mp.weixin.qq.com)
近期google play发布了新的政策,其中一部分是限制权限使用,只允许满足条件的使用场景才能申请权限,小编所在的项目被检测出使用了RECEIVE_SMS权限,但是从app下的Androidmanifest文件中并未发现有该权限的注册,所以该权限是哪里来的呢?
by @code小生 2019-08-04 23:52 分享 查看详情
架构师之路 - SOLID设计原则 (mp.weixin.qq.com)
在架构之路上和代码设计上,我们一定要明白上面的几个原则,在这几个原则的指导下,才能设计出优良的架构,才能经得住撕逼。
by @code小生 2019-08-04 23:52 分享 查看详情
ANR 问题一般解决思路 (mp.weixin.qq.com)
本文案例主要源于项目上实际遇到的问题,希望通过梳理之后能够对ANR问题能够快速定位,减少排查时间,同时在遇到棘手问题,能够更加从容。
by @code小生 2019-08-04 23:51 分享 查看详情
如何开发一款高性能的 gradle transform (mp.weixin.qq.com)
对于java开发者来说,大家好像都比较喜欢在编译期间搞事儿,比如为了做到AOP编程,大家都喜欢利用字节码生成技术,常用的有无痕埋点,方法耗时统计等等。那么Android中具体是如何做到这些的呢?所谓字节码插桩技术,其实就是修改已经编译的class文件,往里面添加自己的字节码,然后打包的时候打包的是修改后的class文件。为了便捷的修改编译后的class文件,Google爸爸开发了一套gradle相关的库,也就是gradle-transform-api,利用这个工具,我们可以自己实现class文件修改,下面我们看看具体做法。
by @code小生 2019-08-04 23:51 分享 查看详情
Android 开发之硬件加速 (mp.weixin.qq.com)
所谓硬件加速,指的是把某些计算工作交给专门的硬件来做,而不是和普通的计算工作一样交给 CPU 来处理。这样不仅减轻了 CPU 的压力,而且由于有了专门硬件的处理,这份计算工作的速度也被加快了。这就是硬件加速。
by @code小生 2019-07-21 19:07 分享 查看详情
Jetpack 源码解析—LiveData的使用及工作原理 (mp.weixin.qq.com)
LiveData是一个可观察的数据持有者类,与常规observable不同,LiveData是生命周期感知的,这意味着它尊重其他应用程序组件的生命周期,例如Activity,Fragment或Service。此感知确保LiveData仅更新处于活动生命周期状态的应用程序组件观察者。
by @code小生 2019-07-21 19:06 分享 查看详情