├── AndroidTesting └── README.md ├── Interview ├── Dalvik_ART.md └── ReadMe.md └── README.md /AndroidTesting/README.md: -------------------------------------------------------------------------------- 1 | 2 | - [Android单元测试研究与实践-美团](http://tech.meituan.com/Android_unit_test.html) 3 | - [Android测试驱动开发(TDD)](https://blog.desmondyao.com/android-test/) 4 | - [关于安卓单元测试,你需要知道的一切](http://chriszou.com/2016/06/07/android-unit-testing-everything-you-need-to-know.html) 5 | - [googlesamples/android-testing](https://github.com/googlesamples/android-testing) 6 | -------------------------------------------------------------------------------- /Interview/Dalvik_ART.md: -------------------------------------------------------------------------------- 1 | Dalvik ART 对比: 2 | 3 | Dalvik和ART是Android平台的JVM,运行dex格式的java程序。 4 | 主要区别: 5 | 6 | 1.Dalvik使用JIT,ART使用AOT预编译,JIT在程序运行过程中,Dalvik将字节码翻译成机器码执行;ART(Ahead-Of-Time)在程序安装时就已经将字节码翻译成了字节码,因此极大的提高了引用程序的运行效率。快,但是需要更多的Rom空间。 7 | 2. ART在GC效率上的提高,减少线程Pause时间,而且还在内存分配上对大内存的有单独的分配区域,减少碎片内存的产生,避免很多因GC导致的卡顿问题,Google官方的数据,ART的GC相比Dalvik效率提升了2-3倍,内存分配效率提升了10倍 参考 [Android GC 那点事](http://mp.weixin.qq.com/s?__biz=MzI1MTA1MzM2Nw%3D%3D&hmsr=toutiao.io&idx=1&mid=400021278&scene=0&sn=0e971807eb0e9dcc1a81853189a092f3&utm_medium=toutiao.io&utm_source=toutiao.io) 8 | 3. ART对MultiDex的支持,在Dalvik,Dex文件会被dex2opt优化成odex文件,加快运行效率,但是对于multiDex来说 需要使用multiDex库的支持,通过反射插入dexElements的做法,将multiDex-N插入到最后面;而在ART上,dex文件会被dex2oat优化为ELF格式的oat文件,oat文件格式中将多dex压缩在了一起,也就不存在multiDex加载的问题,特别是对于一些热修复框架的preverify的问题,基本在ART上都没有问题。 -------------------------------------------------------------------------------- /Interview/ReadMe.md: -------------------------------------------------------------------------------- 1 | # 面试相关 2 | 3 | * [BAT大厂面试题整理](https://mp.weixin.qq.com/s/p3l9wr4DX976Lr62-dYe8w) 4 | * [国内一线互联网公司内部面试题库](https://github.com/JackyAndroid/AndroidInterview-Q-A/blob/master/README-CN.md) 5 | * [Android 开发工程师面试指南](http://www.diycode.cc/wiki/androidinterview) 6 | * [史上最全 Android 面试资料集合](http://www.jianshu.com/p/d1efe2f31b6d) 7 | * [网络](http://www.jianshu.com/notebooks/3276500/latest) 8 | * [实习生面试题](https://juejin.im/entry/59127a6444d904007b0138cd) 9 | 10 | ## 算法 11 | * [LeetcodeTop](https://github.com/afatcoder/LeetcodeTop) 12 | 13 | ## JVM 14 | * [JVM 底层原理最全知识总结](https://github.com/doocs/jvm?utm_source=gold_browser_extension) 15 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | #开发中遇到的好的文章还有一些笔记 2 | 3 | ## Android Studio 相关 4 | ### 快捷键 5 | 6 | * [倍数提高工作效率的Android Studio奇技](http://www.kuqin.com/shuoit/20150909/347947.html) 7 | * [Android Studio Tips Of the Day - Roundup #1](http://www.developerphil.com/android-studio-tips-of-the-day-roundup-1/) 8 | 9 | ### Debug技巧 10 | 11 | * [Android Studio你不知道的调试技巧](http://tianweishu.com/2015/12/21/android-studio-debug-tips-you-may-not-know/) 12 | * [好用的屏幕共享](https://github.com/Genymobile/scrcpy) 13 | 14 | ## 好的文章 15 | 16 | * [Data Bindings](https://realm.io/cn/news/data-binding-android-boyar-mount/) 17 | * [Android硬件加速原理与实现简介](http://tech.meituan.com/hardware-accelerate.html) 18 | * [Activity到底是什么时候显示到屏幕上的呢?](http://blog.desmondyao.com/android-show-time/) 19 | * [android-activity&fragment-lifecycle](https://github.com/xxv/android-lifecycle) 20 | 21 | ## 设计模式 22 | 23 | * [如何正确地写出单例模式](http://wuchong.me/blog/2014/08/28/how-to-correctly-write-singleton-pattern/) 24 | * [戏说代理模式和Java动态代理](http://www.jianshu.com/p/0d919e54eef0) 25 | 26 | ## 源码分析 27 | 28 | * [Android网络框架源码分析二---Retrofit(动态代理的实际应用)](http://www.jianshu.com/p/07dac989272c) 29 | * [Glide系列](http://mrfu.me/2016/02/28/Glide_Series_Roundup/) 30 | 31 | ## 性能相关 32 | 33 | * [Android GC 那点事](http://mp.weixin.qq.com/s?__biz=MzI1MTA1MzM2Nw%3D%3D&hmsr=toutiao.io&idx=1&mid=400021278&scene=0&sn=0e971807eb0e9dcc1a81853189a092f3&utm_medium=toutiao.io&utm_source=toutiao.io) 34 | * [GC那些事儿--Android内存优化第一弹](http://www.jianshu.com/p/5db05db4f5ab) 35 | * [基于Android Studio的内存泄漏检测与解决全攻略](http://wetest.qq.com/lab/view/?id=99) 36 | 37 | 38 | ## 优化相关 39 | 40 | * [安装包立减1M--微信Android资源混淆打包工具](http://mp.weixin.qq.com/s?__biz=MzAwNDY1ODY2OQ==&mid=208135658&idx=1&sn=ac9bd6b4927e9e82f9fa14e396183a8f#rd) 41 | * [资源混淆方案之微信vs美团](http://mrljdx.com/2015/12/18/%E8%B5%84%E6%BA%90%E6%B7%B7%E6%B7%86%E6%96%B9%E6%A1%88%E4%B9%8B%E5%BE%AE%E4%BF%A1vs%E7%BE%8E%E5%9B%A2/) 42 | * [APK瘦身实践](http://www.jayfeng.com/2015/12/29/APK%E7%98%A6%E8%BA%AB%E5%AE%9E%E8%B7%B5/) 43 | * [APK瘦身记,如何实现高达53%的压缩效果](http://jaq.alibaba.com/community/art/show?articleid=219) 44 | * [https://code.facebook.com/posts/1480969635539475/optimizing-android-bytecode-with-redex](https://code.facebook.com/posts/1480969635539475/optimizing-android-bytecode-with-redex) 45 | * [基于 Facebook Redex 实现 Android APK 的压缩和优化](http://www.jianshu.com/p/78ad578251ef) 46 | * [Redex初探与Interdex:Andorid冷启动优化](http://dev.qq.com/topic/583b9e3ee8992c2c2df6e6ac) 47 | * [携程移动端性能优化](http://mp.weixin.qq.com/s/7wutqNV136ENi-oQjWlOpA) 48 | * [VasSonic H5首屏秒开方案](https://github.com/Tencent/VasSonic/blob/master/assets/sonic%E5%8F%91%E5%B1%95%E5%8E%86%E7%A8%8B.md) 49 | 50 | ## 应用安全 51 | 52 | * [Android应用安全开发之源码安全](http://drops.wooyun.org/mobile/12172) 53 | * [手把手教你逆向分析 Android 程序](https://segmentfault.com/a/1190000005133219) 54 | * [那些值得你试试的Android竞品分析工具](http://www.jianshu.com/p/ba2d9eca47a2) 55 | * [炒鸡牛逼的反编译工具jadx](https://github.com/skylot/jadx) 56 | * [安全和逆向-尼古拉斯赵四](http://www.wjdiankong.cn/category/%E5%AE%89%E5%85%A8%E5%92%8C%E9%80%86%E5%90%91/) 57 | * [Android 安全防护](http://blog.csdn.net/u013409903/article/details/76686155) 58 | * [常见app加固厂商脱壳方法研究](http://www.mottoin.com/89035.html) 59 | * [安卓脱壳&&协议分析&&Burp辅助分析插件编写](https://xianzhi.aliyun.com/forum/topic/1805) 60 | * [Android安全防护之旅—只需要这几行代码让Android程序项目变得更加安全](http://www.520monkey.com/archives/1263) 61 | * 微信 62 | * [微信数据库最新的解密方式,使用C++代码解密微信加密数据库信息!](http://www.520monkey.com/archives/1277) 63 | * [Java中通过JNI技术开发一款PC端微信数据库解密备份工具](http://www.520monkey.com/archives/1280) 64 | * 证书固定 65 | * [Xposed + JustTrustMe](https://github.com/Fuzion24/JustTrustMe) 66 | * [Frida + DroidSSLUnpinning](https://github.com/WooyunDota/DroidSSLUnpinning) 67 | 68 | ## Dex分包与加载 69 | 70 | * [Android Dex分包之旅](http://yydcdut.com/2016/03/20/split-dex/index.html#) 71 | * [dex分包变形记](https://segmentfault.com/a/1190000004053072) 72 | * [微信-Android拆分与加载Dex的多种方案对比](http://mp.weixin.qq.com/s?__biz=MzAwNDY1ODY2OQ==&mid=207151651&idx=1&sn=9eab282711f4eb2b4daf2fbae5a5ca9a&scene=4#wechat_redirect) 73 | * [美团Android DEX自动拆包及动态加载简介](http://tech.meituan.com/mt-android-auto-split-dex.html) 74 | * [携程Android App插件化和动态加载实践](http://mp.weixin.qq.com/s?__biz=MzAwMTcwNTE0NA==&mid=400217391&idx=1&sn=86181541ce0164156dfab135ed99bb5c&scene=0&key=b410d3164f5f798e61a5d4afb759fa38371c8b119384c6163a30c28163b4d4d5f59399f2400800ec842f1d0e0ffb84af&ascene=0&uin=MjExMjQ&pass_ticket=Nt5Jaa28jjFxcQO9o%2BvQiXX%2B0iXG5DlZlHNW97Fk1Ew%3D) 75 | * [其实你不知道MultiDex到底有多坑](http://blog.zongwu233.com/the-touble-of-multidex) 76 | * [MultiDex工作原理分析和优化方案](https://zhuanlan.zhihu.com/p/24305296) 77 | 78 | ## 热更新 79 | 80 | * [安卓App热补丁动态修复技术介绍 -- QQ空间](https://mp.weixin.qq.com/s?__biz=MzI1MTA1MzM2Nw==&mid=400118620&idx=1&sn=b4fdd5055731290eef12ad0d17f39d4a&scene=1&srcid=1106Imu9ZgwybID13e7y2nEi#wechat_redirect) 81 | * [各大热补丁方案分析和比较](http://blog.zhaiyifan.cn/2015/11/20/HotPatchCompare/) 82 | * [Android热补丁之AndFix原理解析](http://w4lle.github.io/2016/03/03/Android%E7%83%AD%E8%A1%A5%E4%B8%81%E4%B9%8BAndFix%E5%8E%9F%E7%90%86%E8%A7%A3%E6%9E%90/) 83 | * [从Instant run谈Android替换Application和动态加载机制](http://w4lle.github.io/2016/05/02/%E4%BB%8EInstant%20run%E8%B0%88Android%E6%9B%BF%E6%8D%A2Application%E5%92%8C%E5%8A%A8%E6%80%81%E5%8A%A0%E8%BD%BD%E6%9C%BA%E5%88%B6/) 84 | * [Android热补丁之Tinker原理解析](http://w4lle.github.io/2016/12/16/tinker/) 85 | * [微信Android热补丁实践演进之路](http://mp.weixin.qq.com/s?__biz=MzAwNDY1ODY2OQ==&mid=2649286306&idx=1&sn=d6b2865e033a99de60b2d4314c6e0a25&scene=4#wechat_redirect) 86 | * [Android热更新方案Robust](http://tech.meituan.com/android_robust.html) 87 | * [Tinker](https://github.com/Tencent/tinker) 88 | * [Tinker DexDiff](https://www.zybuluo.com/dodola/note/554061) 89 | * [ART下的方法内联策略及其对Android热修复方案的影响分析](http://mp.weixin.qq.com/s?__biz=MzAwNDY1ODY2OQ==&mid=2649286426&idx=1&sn=eb75349c0c3663f10fbdd74ef87be338&chksm=8334c398b4434a8e6933ddb4fda4a4f06c729c7d2ffef37e4598cb90f4602f5310486b7f95ff#rd) 90 | * [Freeline - Android平台上的秒级编译方案](https://yq.aliyun.com/articles/59122?spm=5176.8091938.0.0.1Bw3mU) 91 | * [QFix探索之路—手Q热补丁轻量级方案](http://dev.qq.com/topic/57ff5832bb8fec206ce2185d) 92 | * [阿里HotFix2.0升级详解 畅谈热修复领域那些事](http://mp.weixin.qq.com/s?__biz=MzA4MjA0MTc4NQ==&mid=2651574362&idx=1&sn=9445207e1059aeb4726b3f4311890c82&chksm=8474be8cb303379acce6281eeb2e88c565c098bbf6399923ef62d3b34a2b027e3b3ae53b9209&mpshare=1&scene=23&srcid=1227zMYCO3v8P6iUmS20H9n6) 93 | * [蘑菇街Android热修复探索之路](http://mp.weixin.qq.com/s/GuzbU1M1LY1VKmN7PyVbHQ) 94 | * [Android热补丁之Robust原理解析(一)](http://w4lle.github.io/2017/03/31/robust-0/) 95 | * [热修复总结](http://w4lle.github.io/2017/05/04/hotpatch-summary/) 96 | 97 | ## 插件化、动态加载 98 | 99 | * [VirtualAPK:滴滴 Android 插件化的实践之路](http://www.see-source.com/blog/300000033/1449.html) 100 | * [微店 Android 插件化实践](https://mp.weixin.qq.com/s/p8-ABKDpMLm6T4lJdK8Y3Q) 101 | * [Android博客周刊专题之#插件化开发#](http://www.androidblog.cn/index.php/Index/detail/id/16) 102 | * [滴滴插件化方案 VirtualApk 源码解析](http://blog.csdn.net/lmj623565791/article/details/75000580) 103 | * [VirtualAPK 资源篇](https://www.zybuluo.com/dodola/note/814116) 104 | * [蘑菇街Android快速调试工具的前生今世](https://tech.meili-inc.com/233-233) 105 | 106 | ## App 选型 107 | 108 | * [Native | Hybrid | Web App选型及演进方案](https://segmentfault.com/a/1190000008908963) 109 | 110 | ## Gradle 111 | 112 | * [深入理解Android之Gradle](http://blog.csdn.net/innost/article/details/48228651) 113 | * [Groovy Closure Example](https://examples.javacodegeeks.com/core-java/groovy-closure-example/) 114 | * [Groovy 与 Gradle 基础](http://blog.bugtags.com/2016/01/04/embrace-android-studio-groovy-gradle/) 115 | * [Gradle 插件开发](http://blog.bugtags.com/2016/03/28/embrace-android-studio-gradle-plugin/) 116 | 117 | # 自定义View 118 | 119 | * [Android 自定义View属性相关细节](http://mp.weixin.qq.com/s?__biz=MzAxMTI4MTkwNQ==&mid=2650820236&idx=1&sn=6dec4ff1efeda3224b5a40fdad862404&scene=0#wechat_redirect) 120 | * [Android自绘动画实现与优化实战——以Tencent OS录音机波形动](http://bugly.qq.com/bbs/forum.php?hmsr=toutiao.io&mod=viewthread&tid=1180&utm_medium=toutiao.io&utm_source=toutiao.io) 121 | 122 | ## 进程保活 123 | 124 | * [Android App 不死之路](http://mp.weixin.qq.com/s?__biz=MzA4MjA0MTc4NQ==&mid=504090054&idx=1&sn=5c5cb30c0ab4facffc7424dd6142e95d#rd) 125 | * [关于 Android 进程保活,你所需要知道的一切](http://www.jianshu.com/p/63aafe3c12af#) 126 | * [微信Android客户端后台保活经验分享](https://mp.weixin.qq.com/s?__biz=MzA3ODg4MDk0Ng==&mid=403254393&idx=1&sn=8dc0e3a03031177777b5a5876cb210cc) 127 | * [论Android应用进程长存的可行性](http://blog.csdn.net/aigestudio/article/details/51348408#t20) 128 | * [Android进程保活之绑定系统服务](http://w4lle.github.io/2016/07/24/Android%E8%BF%9B%E7%A8%8B%E4%BF%9D%E6%B4%BB%E4%B9%8B%E7%BB%91%E5%AE%9A%E7%B3%BB%E7%BB%9F%E6%9C%8D%E5%8A%A1/) 129 | 130 | ## APT 131 | 132 | * [Android编译时注解框架系列](https://lizhaoxuan.github.io/2016/07/17/apt-wathapt/) 133 | * [Android 利用 APT 技术在编译期生成代码](http://brucezz.itscoder.com/articles/2016/08/06/use-apt-in-android/) 134 | * [万能的APT!编译时注解的妙用](http://zjutkz.net/2016/04/07/%E4%B8%87%E8%83%BD%E7%9A%84APT%EF%BC%81%E7%BC%96%E8%AF%91%E6%97%B6%E6%B3%A8%E8%A7%A3%E7%9A%84%E5%A6%99%E7%94%A8/) 135 | 136 | ## 持续集成 137 | 138 | * [使用Jenkins搭建iOS/Android持续集成打包平台](http://debugtalk.com/post/iOS-Android-Packing-with-Jenkins) 139 | 140 | ## Adapter 141 | 142 | * [Adapter最佳实践](https://www.zybuluo.com/shark0017/note/202443) 143 | * [CommonAdapter](https://github.com/tianzhijiexian/CommonAdapter) 144 | 145 | ## 架构 146 | 147 | * [Android-CleanArchitecture](https://github.com/android10/Android-CleanArchitecture) 148 | * [Android Architecture: Part 3 – Applying clean architecture on Android 149 | ](http://five.agency/android-architecture-part-3-applying-clean-architecture-android/) 150 | * [从0开始的新项目系列](http://blog.zhaiyifan.cn/categories/Android-Project-From-0/) 151 | * [你知道途牛Android客户端架构是怎么优化的吗?](http://mp.weixin.qq.com/s/CfPlVKElv2SshAbfzHfRhg) 152 | * [Android架构思考(模块化、多进程)](http://blog.spinytech.com/2016/12/28/android_modularization/) 153 | * [有赞 App 模块化实战经验总结](https://youzanmobile.github.io/2017/04/14/youzan-app-modularization/) 154 | 155 | ## Android路由 156 | 157 | * [DeepLinkDispatch](https://github.com/airbnb/DeepLinkDispatch) 158 | * [AndRouter](https://github.com/campusappcn/AndRouter) 159 | * [ARouter](https://github.com/alibaba/ARouter) 160 | 161 | ## Slider for Markdown 162 | 163 | * [Google Slides](https://github.com/googlesamples/md2googleslides) 164 | * [Sliders](https://github.com/w4lle/sliders) 165 | 166 | ## Kotlin 167 | 168 | * [你为什么需要 Kotlin](https://mp.weixin.qq.com/s?__biz=MzA3NTYzODYzMg==&mid=2653578489&idx=1&sn=17d6e657d81c0daa345489271d305b36&chksm=84b3b6feb3c43fe8b0197850bf6ca8caefaa8045671f75ed6dec2171a681496365acfd0ebd33&scene=0&key=e2edf978de5e128c33ad2329438627d6ddd3f89b5f8a597c31747b7ea7ead2c303aef66f2da5ca136c6d494fa90f73d72f663a16508e1fc9c14b1382f23907c02ea420877f6fced5eaa6d917e5c1fe8c&ascene=0&uin=MTYzMjY2MTE1&devicetype=iMac+MacBookPro10%2C1+OSX+OSX+10.12.2+build(16C67)&version=12010210&nettype=WIFI&fontScale=100&pass_ticket=Bym3Ct07PyFlH6vOcEFkgafx4phhjeRc1sXOYJJr%2B2U%3D) 169 | 170 | ## 单元测试 171 | 172 | * [AndroidTesting](./AndroidTesting/README.md) 173 | 174 | ## 动态化配置 & A/B Test 175 | 176 | * [不要写死!天猫App的动态化配置中心实践](https://mp.weixin.qq.com/s?__biz=MzA3ODg4MDk0Ng==&mid=402842876&idx=1&sn=e15d596c95bf7d1ed579cfd7e410696a#rd) 177 | * [天猫App A/B测试实践](https://mp.weixin.qq.com/s?__biz=MzA3ODg4MDk0Ng==&mid=402918999&idx=1&sn=e1dcacc4dd314013a1153ec90ab4bb82#rd) 178 | 179 | ## 值得学习的开源项目 180 | 181 | * [ExpectAnim](https://github.com/florent37/ExpectAnim) 182 | 183 | ## 软件开发模式 184 | 185 | * [漫画解读:通过造车来了解软件开发模式](https://mp.weixin.qq.com/s/ecEinRGZEgStAJATEh6DMQ) 186 | 187 | ## 工作之外 188 | 189 | * [中国独立开发者项目列表](https://github.com/1c7/chinese-independent-developer) 190 | * [remote work](https://remoteok.io/) 191 | --------------------------------------------------------------------------------