{"id":13470326,"url":"https://github.com/tangqi92/Android-Tips","last_synced_at":"2025-03-26T11:31:25.619Z","repository":{"id":99626540,"uuid":"42233871","full_name":"tangqi92/Android-Tips","owner":"tangqi92","description":"An awesome list of tips for Android.","archived":false,"fork":false,"pushed_at":"2018-12-27T08:01:50.000Z","size":267,"stargazers_count":3234,"open_issues_count":2,"forks_count":830,"subscribers_count":212,"default_branch":"master","last_synced_at":"2025-03-23T20:04:37.435Z","etag":null,"topics":["android-activity","android-aidl","android-apk","android-async-http","android-fragments","android-gradle","android-intent","android-studio","android-view","gradle-android"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tangqi92.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-09-10T09:01:47.000Z","updated_at":"2025-03-12T02:01:27.000Z","dependencies_parsed_at":"2023-04-10T04:49:06.917Z","dependency_job_id":null,"html_url":"https://github.com/tangqi92/Android-Tips","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tangqi92%2FAndroid-Tips","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tangqi92%2FAndroid-Tips/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tangqi92%2FAndroid-Tips/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tangqi92%2FAndroid-Tips/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tangqi92","download_url":"https://codeload.github.com/tangqi92/Android-Tips/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245644304,"owners_count":20649175,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android-activity","android-aidl","android-apk","android-async-http","android-fragments","android-gradle","android-intent","android-studio","android-view","gradle-android"],"created_at":"2024-07-31T16:00:28.403Z","updated_at":"2025-03-26T11:31:25.609Z","avatar_url":"https://github.com/tangqi92.png","language":"Java","readme":"# Android-Tips\n\nThis is an awesome list of tips for android. \n\nIf you are a beginner, this list will be the first choice for you when you have a difficult time.\n\nWelcome `Star` and `Fork`, your support is my greatest affirmation.\n\n---\n\n学习 Android 至今，大大小小的坑没少踩过，庆幸的是，在强大的搜索引擎与无私奉献的人们的帮助下，那些坑都顺利地被填平了。\n\n为了日后在遇到同样的问题时，能免于再次搜索带来的麻烦，我养成了收藏书签的习惯，随着书签（Tips）的日积月累，我想，是时候该有这个项目了。\n\n**如果你是个 Android 新人，又不善于搜索或不知道从何开始，那么我相信这份列表，将会成为你的首选。**\n\n当然，这份列表并不完美，如果不幸，这里没有你所踩到的坑，或者对于某个问题你有更好的 Tips，欢迎与大家分享，让我们一起来维护这个项目！\n\n你可以通过 [Pull request](https://github.com/tangqi92/Android-Tips/pulls) 的形式进行提交，当然也欢迎 `Star` 与 `Fork` ：）\n\n\u003e 由于各种问题，给出的链接可能会无法正常访问。遇到这种情况欢迎大家提交 [Issue](https://github.com/tangqi92/Android-Tips/issues)，Contributers 也可以使用 [Utils](https://github.com/tangqi92/Android-Tips/tree/master/Utils) 里面的 [URLChecker](https://github.com/tangqi92/Android-Tips/blob/master/Utils/UrlCheckerREADME.md) 来检测列表里链接的有效性，你可以选择更改为新的有效连接，或者把需要**梯子**的文章以 Markdown 的形式保存在 Utils/Content 目录下，并注明原文章链接和作者。\n\n---\n\n## 目录\n\n* [A](#a)\n* [B](#b)\n* [C](#c)\n* [D](#d)\n* [E](#e)\n* [F](#f)\n* [G](#g)\n* [H](#h)\n* [I](#i)\n* [J](#j)\n* [K](#k)\n* [L](#l)\n* [M](#m)\n* [N](#n)\n* [O](#o)\n* [P](#p)\n* [Q](#q)\n* [R](#r)\n* [S](#s)\n* [T](#t)\n* [U](#u)\n* [V](#v)\n* [W](#w)\n* [X](#x)\n* [Y](#y)\n* [Z](#z)\n* [Others](#others)\n* [Contributors](#contributors)\n* [Contact Me](#contact-me)\n\n---\n\n### A\n\n### Activity\n\n1. [Android Activity为什么要细化出onCreate、onStart、onResume、onPause、onStop、onDesdroy这么多方法让应用去重载？](http://blog.csdn.net/zhao_3546/article/details/12843477)\n\n\n### ADB\n\n1. [Installing ADB on Windows 7](https://www.youtube.com/watch?v=5U_BfrXV90I)\n2. [Android ADB常用命令](http://android.jobbole.com/61592/)\n3. [Android开发调试工具ADB的使用](http://www.cnblogs.com/meil/archive/2012/05/24/2516055.html)\n4. [Android通过Wifi来调试你的应用](http://stormzhang.com/android/2014/08/27/adb-over-wifi/)\n5. [Adb connection Error:远程主机强迫关闭了一个现有的连接](http://www.oschina.net/question/54100_33209)\n\n### Adapter\n\n1. [Android简便通用的SimpleBaseAdapter](http://www.stormzhang.com/androidtips/2014/08/31/android-common-simplebaseadapter/)\n2. [Android 快速开发系列 打造万能的ListView GridView 适配器](http://blog.csdn.net/lmj623565791/article/details/38902805/)\n\n### AIDL\n\n1. [android进程间通信：使用AIDL](http://blog.csdn.net/saintswordsman/article/details/5130947)\n2. [Android AIDL使用详解](http://blog.csdn.net/stonecao/article/details/6425019)\n3. [android跨进程通信(IPC): 使用AIDL](http://blog.csdn.net/singwhatiwanna/article/details/17041691)\n4. [Android中的跨进程通信的实现（一）——远程调用过程和aidl](http://blog.csdn.net/notice520/article/details/8135600)\n5. [Android Studio下如何配置AIDL文件](http://chenqichao.me/2014/05/13/003-Android-Studio-AIDL/)\n\n### AlarmManager\n\n1. [Android AlarmManager实现不间断轮询服务](http://blog.csdn.net/ryantang03/article/details/9317499)\n\n### Android-Async-Http\n\n1. [Asynchronous Http Client for Android](https://github.com/loopj/android-async-http)\n2. [快速Android开发系列网络篇之Android-Async-Http](http://www.cnblogs.com/angeldevil/p/3729808.html)\n3. [android-async-http框架库使用基础](http://yanbober.github.io/2014/11/11/csdn-opensource-analysis-5/)\n\n### Android Studio\n\n1. [Android Studio导入项目](http://ask.android-studio.org/?/article/21)\n2. [Android Studio 简单设置](http://blog.gaoqixhb.com/p/54b9c293bf1ac9364284af78)\n3. [Android Studio 简介及导入 jar 包和第三方开源库方法](http://drakeet.me/android-studio)\n4. [Android Studio使用技巧系列教程（一）](http://blog.csdn.net/growth58/article/details/46729803)\n5. [Android Studio中如何使用Git和Github来管理项目](http://blog.csdn.net/wei18359100306/article/details/45645145)\n6. [Android Studio 权威教程](http://blog.csdn.net/column/details/zsl-androidstudio.html)\n7. [倍数提高工作效率的Android Studio奇技](http://zlv.me/posts/2015/07/13/14_android-studio-tips/)\n8. [Android Studio 快捷键（Windows）](http://blog.csdn.net/altair86/article/details/8972178)\n9. [Android Studio详细教程汇总](http://www.stormzhang.com/devtools/2015/06/17/android-studio-all/)\n10. [Android Studio有什么奇技淫巧](http://www.zhihu.com/question/27482725)\n\n### AQuery\n\n1. [AQuery Image Loading](http://programmerguru.com/android-tutorial/aquery-image-loading/)\n2. [Android之使用Android-query框架进行开发（一）](http://www.cnblogs.com/lee0oo0/archive/2012/10/25/2738299.html)\n\n### AsyncTask\n\n1. [Android AsyncTask完全解析，带你从源码的角度彻底理解](http://blog.csdn.net/guolin_blog/article/details/11711405)\n2. [Android中AsyncTask的简单用法](http://blog.csdn.net/cjjky/article/details/6684959)\n3. [Android开发者：你真的会用AsyncTask吗？](http://code.oneapm.com/android/2015/06/02/android1/)\n4. [深入解析AsyncTask,多例子版](http://www.cnblogs.com/anee/archive/2012/09/24/2699829.html)\n\n### Annotations\n\n1. [AndroidAnnotations框架入门教程一之介绍](http://zhenhappy.github.io/2015/10/11/Android-Annotations-1-Introduce.html)\n2. [How to stop an animation (cancel() does not work)](http://stackoverflow.com/questions/4112599/how-to-stop-an-animation-cancel-does-not-work)\n\n### Android 6.0 \n\n1. [Android6.0运行时权限简介](http://unclechen.github.io/2016/03/05/Android6.0%E8%BF%90%E8%A1%8C%E6%97%B6%E6%9D%83%E9%99%90%E7%AE%80%E4%BB%8B/)\n2. [Android 6.0 - 动态权限管理的解决方案](http://www.jianshu.com/p/dbe4d37731e6)\n3. [聊一聊Android 6.0的运行时权限](http://droidyue.com/blog/2016/01/17/understanding-marshmallow-runtime-permission/)\n4. [Android6.0权限系统](https://github.com/CharonChui/AndroidNote/blob/master/Android%E5%8A%A0%E5%BC%BA/Android6.0%E6%9D%83%E9%99%90%E7%B3%BB%E7%BB%9F.md)\n\n---\n\n## B\n\n### Bitmap\n\n1. [图片处理](http://beartung.github.io/rockwithandroid/image.html)\n2. [Android中自定义布局中加载图片BitmapFactory.options详解](http://blog.csdn.net/appandroid/article/details/11213973)\n3. [Android学习笔记进阶16之BitmapShader](http://blog.csdn.net/sjf0115/article/details/7267532)\n4. [Android 优化Bitmap避免OutOfMemoryError](http://chjmars.iteye.com/blog/1157137)\n5. [Android 异步加载图片，使用LruCache和SD卡或手机缓存，效果非常的流畅](http://blog.csdn.net/xiaanming/article/details/9825113)\n6. [Android 开发绕不过的坑：你的 Bitmap 究竟占多大内存？](http://bugly.qq.com/bbs/forum.php?mod=viewthread\u0026tid=498\u0026fromuid=6)\n\n### Broadcast\n\n1. [【Android】BroadCast广播机制应用与实例](http://blog.csdn.net/jueblog/article/details/12667463)\n2. [玩转Android---组件篇---Broadcast Receiver（广播接收器）](http://hualang.iteye.com/blog/1003374)\n3. [【Android】动态注册广播接收器](http://blog.csdn.net/etzmico/article/details/7317528)\n\n---\n\n## C\n\n### Canvas\n\n1. [Android利用canvas画各种图形(点、直线、弧、圆、椭圆、文字、矩形、多边形、曲线、圆角矩形)](http://blog.csdn.net/rhljiayou/article/details/7212620)\n\n### Callback\n\n1. [How to Define Callbacks in Android?](http://stackoverflow.com/questions/3398363/how-to-define-callbacks-in-android)\n2. [一个经典例子让你彻彻底底理解java回调机制](http://blog.csdn.net/xiaanming/article/details/8703708)\n3. [Java设计模式-回调函数和观察者模式](http://blog.csdn.net/cauchyweierstrass/article/details/44593807)\n\n### CardView\n\n1. [Android5.0新控件CardView的介绍和使用](http://www.cnblogs.com/tianzhijiexian/p/4067308.html)\n2. [Android CardView Example](http://www.truiton.com/2015/03/android-cardview-example/)\n3. [Android CardView Widget – Add Cards to a List using RecyclerView](http://techlovejump.com/android-cardview-widget-example-add-to-list-using-recyclerview/)\n4. [CardView在API 21以下的圆角效果处理](http://www.jianshu.com/p/07097b562acb)\n\n### Configuration Change\n\n1. [Android Configuration change引发的问题及解决方法](http://blog.csdn.net/aliaooooo/article/details/23606179?utm_source=tuicool)\n2. [Handling Runtime Changes](https://github.com/troyliu0105/Android-Tips/blob/master/Utils/Content/Handing_Runtime_Changes.md)\n\n### Context\n\n1. [android学习—— context 和 getApplicationContext()](http://blog.csdn.net/janronehoo/article/details/7348566)\n2. [Android中Context详解 ---- 你所不知道的Context](http://blog.csdn.net/qinjuning/article/details/7310620)\n3. [Difference between getContext() , getApplicationContext() , getBaseContext() and “this”](http://stackoverflow.com/questions/10641144/difference-between-getcontext-getapplicationcontext-getbasecontext-and)\n\n### CoordinatorLayout\n\n1. [CoordinatorLayout与滚动的处理](http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0717/3196.html)\n2. [Handling Scrolls with CoordinatorLayout](https://guides.codepath.com/android/Handling-Scrolls-with-CoordinatorLayout)\n\n---\n\n## D\n\n### Download\n\n1. [Download a file with Android, and showing the progress in a ProgressDialog](http://stackoverflow.com/questions/3028306/download-a-file-with-android-and-showing-the-progress-in-a-progressdialog) [**译文**](https://github.com/troyliu0105/stackoverflow-java-top-qa/blob/master/contents/Download_a_file_with_Android_and_showing_the_progress_in_a_ProgressDialog.md)\n2. [Java 服务器端支持断点续传的源代码【支持快车、迅雷】](http://blog.csdn.net/defonds/article/details/7074352)\n3. [Java 多线程断点下载文件](http://www.cnblogs.com/hoojo/archive/2011/09/30/2196767.html)\n4. [Android 后台Service下载 （一）](http://blog.csdn.net/qingye_love/article/details/14163511)\n5. [Android网络编程 --断点续传下载文件](http://blog.csdn.net/wwj_748/article/details/20146869)\n6. [android 多线程断点续传下载 一](http://blog.csdn.net/shimiso/article/details/6763664)\n\n### DownloadManager\n\n1. [Android DownloadManager 的使用](http://www.jianshu.com/p/5b1ad56b9cef)\n\n\n### Dagger\n\n1. [Dagger on Android－Dagger2详解](http://blog.fidroid.com/post/android/dagger-on-android-dagger2xiang-jie)\n2. [使用Dagger 2进行依赖注入](http://codethink.me/2015/08/06/dependency-injection-with-dagger-2/)\n\n\n---\n\n## E\n\n### EventBus\n\n1. [EventBus使用详解(一)——初步使用EventBus](http://blog.csdn.net/harvic880925/article/details/40660137)\n2. [快速Android开发系列通信篇之EventBus](http://www.cnblogs.com/angeldevil/p/3715934.html)\n3. [Android EventBus实战 没听过你就out了](http://blog.csdn.net/lmj623565791/article/details/40794879)\n\n---\n\n## F\n\n### Fragment - 碎片\n\n1. [Android Fragment完全解析，关于碎片你所需知道的一切](http://blog.csdn.net/guolin_blog/article/details/8881711)\n2. [Android Fragment 你应该知道的一切](http://blog.csdn.net/lmj623565791/article/details/42628537)\n3. [Android系列之Fragment（二）----Fragment的生命周期和返回栈](http://www.cnblogs.com/smyhvae/p/3983234.html)\n4. [处女男学Android（九）---Fragment进阶篇之Fragment生命周期和回退栈](http://blog.csdn.net/wlwlwlwl015/article/details/40584567)\n5. [Fragment笔记整理](http://www.lightskystreet.com/2015/02/02/fragment-note/)\n6. [Android实战技巧：Fragment的那些坑](http://toughcoder.net/blog/2015/04/30/android-fragment-the-bad-parts/)\n7. [android Fragments详解四:管理fragment](http://www.cnblogs.com/mybkn/articles/2455138.html)\n8. [Android Fragment 嵌套使用(Nested Fragments)](http://blog.csdn.net/top_code/article/details/37343075)\n9. [Fragment MyFragment not attached to Activity](http://stackoverflow.com/questions/10919240/fragment-myfragment-not-attached-to-activity)\n10. [Fragment全解析系列（一）：那些年踩过的坑](http://www.jianshu.com/p/d9143a92ad94)\n11. [onActivityResult is not being called in Fragment](http://stackoverflow.com/questions/6147884/onactivityresult-is-not-being-called-in-fragment)\n\n### Fresco\n\n1. [Fresco学习笔记](http://blog.happyhls.me/2015/08/03/fresco%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/)\n2. [why use fresco datasource to get bitmap is empty](http://stackoverflow.com/questions/30477827/why-use-fresco-datasource-to-get-bitmap-is-empty)\n3. [Always cannot show the images when loading lots of bitmaps on screen](https://github.com/facebook/fresco/issues/256)\n4. [SimpleDraweeView did not recycled in RecyclerView](https://github.com/facebook/fresco/issues/414)\n5. [Fresco-Facebook的图片加载框架的使用](http://www.voidcn.com/blog/chwnpp2/article/p-5761715.html)\n6. [Resizing and Rotating](http://frescolib.org/docs/resizing-rotating.html#_)\n\n\n### FlowLayout - 自定义流布局\n\n1. [Android 自定义ViewGroup - 实现FlowLayout - 本文出自【张鸿洋的博客】](http://blog.csdn.net/lmj623565791/article/details/38352503)\n\n---\n\n## G\n\n### Glide\n\n1. [Glide 一个专注于平滑滚动的图片加载和缓存库](http://www.jianshu.com/p/4a3177b57949?utm_campaign=maleskine\u0026utm_content=note\u0026utm_medium=writer_share\u0026utm_source=weibo)\n2. [Google推荐的图片加载库Glide介绍](http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0327/2650.html)\n\n### Gradle\n\n1. [用Gradle 构建你的android程序](http://www.cnblogs.com/youxilua/archive/2013/05/20/3087935.html)\n2. [Android Studio系列教程四--Gradle基础](http://stormzhang.com/devtools/2014/12/18/android-studio-tutorial4/)\n3. [使用Gradle构建Android项目](http://blog.isming.me/2014/05/20/android4gradle/)\n4. [使用Gradle管理你的Android Studio工程](http://www.flysnow.org/2015/03/30/manage-your-android-project-with-gradle.html)\n5. [灵活强大的构建系统Gradle](http://tech.meituan.com/gradle-practice.html)\n6. [Gradle Android Could not find method testPackage()](http://stackoverflow.com/questions/16971740/gradle-android-could-not-find-method-testpackage)\n7. [Android Studio 1.0 Gradle Error with getConfiguration()](http://stackoverflow.com/questions/27410183/android-studio-1-0-gradle-error-with-getconfiguration)\n8. [Android打包的那些事](http://www.jayfeng.com/2015/11/07/Android%E6%89%93%E5%8C%85%E7%9A%84%E9%82%A3%E4%BA%9B%E4%BA%8B/)\n9. [深入理解Android之Gradle](http://blog.csdn.net/innost/article/details/48228651)\n10. [gradle build fails on lint task](http://stackoverflow.com/questions/20699147/gradle-build-fails-on-lint-task)\n11. [“Gradle Version 2.10 is required.” Error](http://stackoverflow.com/questions/34814368/gradle-version-2-10-is-required-error)\n\n### greenDao\n\n1. [ORM 框架之 greenDAO 使用心得](http://imtangqi.com/2015/07/26/orm-greendao-summary/)\n2. [SQLite数据库框架ORMLite与GreenDao的简单比较](http://blog.csdn.net/xushuaic/article/details/24434881)\n3. [在AndoridStudio中引入GreenDAO](http://blog.csdn.net/h3c4lenovo/article/details/43566169)\n4. [gradle脚本集成greendao-generator生成android端greendao](http://www.chenkaihua.com/2016/01/05/gradle-integration-greendao_generator-generate-greendao)\n\n### GridView\n\n1. [Android入门第八篇之GridView(九宫图)](http://blog.csdn.net/hellogv/article/details/4567095)\n2. [用Volley让GridView加载网络图片](http://www.cnblogs.com/tianzhijiexian/p/4277873.html)\n3. [Add space to top and bottom of GridView](http://stackoverflow.com/questions/23709114/add-space-to-top-and-bottom-of-gridview)\n\n---\n\n## H\n\n### Hotfix\n\n1. [Android热更新实现原理](http://blog.csdn.net/lzyzsd/article/details/49843581#0-tsina-1-98317-397232819ff9a47a7b7e80a40613cfe1)\n2. [Android App 线上热修复方案](http://lirenlong.github.io/hotfix/)\n3. [Nuwa](https://github.com/jasonross/Nuwa)\n4. [Android 热补丁动态修复框架小结](http://blog.csdn.net/lmj623565791/article/details/49883661)\n5. [安卓App热补丁动态修复技术介绍](https://mp.weixin.qq.com/s?__biz=MzI1MTA1MzM2Nw==\u0026mid=400118620\u0026idx=1\u0026sn=b4fdd5055731290eef12ad0d17f39d4a\u0026scene=1\u0026srcid=1106Imu9ZgwybID13e7y2nEi#wechat_redirect)\n\n### Handler\n\n1. [Handler和他的小伙伴们](http://www.jianshu.com/p/e04698eaba88)\n\n## I\n\n### ImageView\n\n1. [[Android] ImageView.ScaleType设置图解](http://blog.csdn.net/larryl2003/article/details/6919513)\n\n### Immersive Full-Screen Mode\n\n1. [Using Immersive Full-Screen Mode](https://developer.android.com/training/system-ui/immersive.html)   [**译文**](http://hukai.me/android-training-course-in-chinese/ui/system-ui/immersive.html)\n\n### Intent\n\n1. [Android系列教程之十：Intents and Intent Filters(一)](http://flysnow.iteye.com/blog/961576)\n2. [ Android高手进阶教程(十七)之---Android中Intent传递对象的两种方法(Serializable,Parcelable)!](http://blog.csdn.net/android_tutor/article/details/5740845)\n3. [Intent filter 关于Action、Category属性详解---附带实例源码](http://blog.csdn.net/andie_guo/article/details/9271973)\n4. [startActivityForResult用法详解](http://www.cnblogs.com/linjiqin/archive/2011/06/03/2071956.html)\n5. [Android 开发笔记——通过 Intent 传递类对象](http://www.cnblogs.com/shaocm/archive/2013/01/08/2851248.html)\n\n---\n\n## J\n\n### Java 8\n\n1. [Modern Java - A Guide to Java 8](https://github.com/winterbe/java8-tutorial)\n2. [Java8系列 - Java8简明指南](https://biezhi.me/article/java8-tutorial.html)\n\n### JSON\n\n1. [Android系列---JSON数据解析](http://www.cnblogs.com/xiaoluo501395377/p/3446605.html)\n2. [android json解析及简单例子](http://blog.csdn.net/lilu_leo/article/details/7000077)\n3. [Android开源库--Gson谷歌官方json解析库](http://www.cnblogs.com/leestar54/p/4212318.html)\n4. [DataContract4A-简化Json解析与生成](https://github.com/jywanghold/DataContract4A)\n\n### JNI\n\n1. [Hello JNI](https://github.com/googlesamples/android-ndk/tree/master/hello-jni)\n\n---\n\n## K\n\n### Kotlin\n\n1. [Using Kotlin for Android Development](http://imtangqi.com/2017/03/28/using-kotlin-for-android-development/)\n2. [Kotlin: Java 6 废土中的一线希望](https://realm.io/cn/news/droidcon-michael-pardo-kotlin/)\n3. [Kotlin 语言高级安卓开发入门](https://realm.io/cn/news/oredev-jake-wharton-kotlin-advancing-android-dev/)\n4. [Kotlin的黑魔法](http://blog.inico.me/2016/10/26/Kotlin-Magic-Java-Swift#.WONK-nR972R)\n5. [Learn Kotlin with Keddit](https://medium.com/@juanchosaravia/learn-kotlin-while-developing-an-android-app-introduction-567e21ff9664)\n6. [Coding Android Apps in Kotlin](https://code.tutsplus.com/series/coding-android-apps-in-kotlin--cms-1119)\n7. [Kotlin 一门强大的语言](https://kymjs.com/column/kotlin.html)\n8. [kotlin 学习](https://www.feel88.cn/2016/09/21/kotlin%E5%AD%A6%E4%B9%A0/)\n9. [Kotlin从入门到『放弃』系列 视频教程](https://github.com/enbandari/Kotlin-Tutorials)\n\n---\n\n## L\n\n### largeHeap\n\n1. [探究android:largeHeap](http://droidyue.com/blog/2015/08/01/dive-into-android-large-heap/index.html)\n\n### ListFragment\n\n1. [Android App组件之ListFragment -- 说明和示例](http://www.cnblogs.com/skywang12345/p/3160260.html)\n2. [Android 使用ListFragment显示列表](http://li2.me/android/Displaying-Lists-with-ListFragment/)\n\n### ListView\n\n1. [在Activity中响应ListView内部按钮的点击事件](http://www.cnblogs.com/ivan-xu/p/4124967.html)\n\n### Log\n\n1. [Logger工具类](https://github.com/orhanobut/logger)\n2. [KLog](https://github.com/ZhaoKaiQiang/KLog)\n\n---\n\n## M\n\n### MessageDigest\n\n1. [Java利用MessageDigest获取字符串或文件MD5详解](http://blog.csdn.net/xiao__gui/article/details/8148203)\n2. [类 MessageDigest](http://www.cjsdn.net/Doc/JDK50/java/security/MessageDigest.html)\n\n### Material Design\n\n1. [Google Material Design: Everything You Need to Know](http://designshack.net/articles/webstandards/google-material-design-everything-you-need-to-know/)\n2. [An exploration in Material Design](https://medium.com/feedly-behind-the-curtain/an-exploration-in-material-design-by-feedly-8c1a1cbdfdcd)\n3. [谢谷歌大神传我动画设计30年功力](http://www.zcool.com.cn/article/ZMTU5MzAw.html#jtss-tsina)\n4. [Codelab for Android Design Support Library used in I/O Rewind Bangkok session](http://inthecheesefactory.com/blog/android-design-support-library-codelab/en)\n\n### MVP\n\n1. [浅谈 MVP in Android](http://blog.csdn.net/lmj623565791/article/details/46596109)\n2. [Android中的MVP](http://rocko.xyz/2015/02/06/Android%E4%B8%AD%E7%9A%84MVP/)\n3. [开源项目Philm的MVP架构分析](http://www.lightskystreet.com/2015/02/10/philm_mvp/)\n4. [一种在android中实现MVP模式的新思路](https://github.com/bboyfeiyu/android-tech-frontier/tree/master/androidweekly/%E4%B8%80%E7%A7%8D%E5%9C%A8android%E4%B8%AD%E5%AE%9E%E7%8E%B0MVP%E6%A8%A1%E5%BC%8F%E7%9A%84%E6%96%B0%E6%80%9D%E8%B7%AF)\n5. ​[说说Android的MVP模式](http://toughcoder.net/blog/2015/11/29/understanding-android-mvp-pattern/)\n\n---\n\n## N\n\n### NavigationView\n\n1. [Easy Navigation Drawer with Design Support Library](http://blog.grafixartist.com/easy-navigation-drawer-with-design-support-library/)\n\n### Notification\n\n1. [Android——Notifications笔记](http://segmentfault.com/a/1190000000402154)\n2. [Android学习之Notification的简单使用](http://blog.csdn.net/cjllife/article/details/8565370)\n\n---\n\n## O\n\n### ORMLite\n\n1. [Android 快速开发系列 ORMLite 框架最佳实践](http://blog.csdn.net/lmj623565791/article/details/39122981)\n2. [Android ORM框架之 ORMLite](https://www.zybuluo.com/flyouting/note/6996)\n\n### OkHttp\n\n1. [开源项目OkHttpPlus——支持GET、POST、UI线程回调、JSON格式解析、链式调用、文件上传下载](http://blog.csdn.net/zhaokaiqiang1992/article/details/50016815)\n2. [Android OkHttp完全解析 是时候来了解OkHttp了](http://blog.csdn.net/lmj623565791/article/details/47911083)\n\n---\n\n## P\n\n### Parcelable\n\n1. [Android中Parcelable接口用法](http://www.cnblogs.com/renqingping/archive/2012/10/25/Parcelable.html)\n\n### PackageManager\n\n1. [Android中获取应用程序(包)的信息-----PackageManager的使用(一)](http://blog.csdn.net/qinjuning/article/details/6867806)\n2. [【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等)](http://blog.csdn.net/feng88724/article/details/6198446)\n3. [Android获取已安装应用信息(图标，名称，版本号，包)](http://www.cnblogs.com/mainroadlee/archive/2011/05/23/android_get_installed_app.html)\n4. [关于android 如何安装 assets文件下的apk](http://blog.csdn.net/shen332401890/article/details/8826827)\n\n### Palette\n\n1. [Extracting Colors to a Palette with Android Lollipop](https://www.bignerdranch.com/blog/extracting-colors-to-a-palette-with-android-lollipop/)\n2. [Android Lollipop 新特性 - Palette](https://github.com/troyliu0105/Android-Tips/blob/master/Utils/Content/Android_Lollipop_%E6%96%B0%E7%89%B9%E6%80%A7-Palette.md)\n\n### PopupWindow\n\n1. [http://wuxiaolong.me/2015/09/02/SharePopupWindow/](http://wuxiaolong.me/2015/09/02/SharePopupWindow/)\n\n### Preference\n\n1. [PreferenceActivity（首选项设置页）](http://blog.csdn.net/plussoft/article/details/9993759)\n2. [Android的设置界面及Preference使用](http://blog.csdn.net/ichliebephone/article/details/5916320)\n\n### Picasso\n\n1. [Picasso官方网站及javadoc](http://square.github.io/picasso/)\n2. [Android图片下载缓存库picasso解析](http://blog.csdn.net/xu_fu/article/details/17043231)\n\n---\n\n## R\n\n### React Native\n\n1. [React Native for Android 入门老虎](http://www.race604.com/react-native-for-android-start/)\n2. [React Native For Android初体验](http://www.jianshu.com/p/847a54e0c385)\n3. [React Native for Android 实践 -- 实现知乎日报客户端](http://www.race604.com/react-native-android-practice/)\n4. [React Native Android 踩坑之旅](http://www.alloyteam.com/2015/10/react-native-android-steps-on-tour/)\n\n### Reference\n\n1. [Java的引用StrongReference、 SoftReference、 WeakReference 、PhantomReference](http://blog.csdn.net/mxbhxx/article/details/9111711)\n2. [Java 7之基础 - 强引用、弱引用、软引用、虚引用](http://blog.csdn.net/mazhimazh/article/details/19752475)\n\n### RecyclerView\n\n1. [RecyclerView使用详解（一）](http://frank-zhu.github.io/android/2015/01/16/android-recyclerview-part-1/)\n2. [Android RecyclerView 使用完全解析 体验艺术般的控件](http://blog.csdn.net/lmj623565791/article/details/45059587)\n3. [A Guide to Android RecyclerView and CardView](http://www.binpress.com/tutorial/android-l-recyclerview-and-cardview-tutorial/156)\n4. [Android-RecyclerView-Item点击事件设置](http://blog.csdn.net/guxiao1201/article/details/40423361)\n5. [Why doesn't RecyclerView have onItemClickListener()? And how RecyclerView is different from Listview?](http://stackoverflow.com/questions/24885223/why-doesnt-recyclerview-have-onitemclicklistener-and-how-recyclerview-is-dif)\n6. [Create RecyclerView with multiple view type](http://doublewong.com/2014/create-recyclerview-with-multiple-view-type/)\n7. [Simple RecyclerView Divider](https://github.com/troyliu0105/Android-Tips/blob/master/Utils/Content/Simple_RecyclerView_Divider.md)\n\n### Retrofit\n\n1. [我对Retrofit的认识](http://blog.fangjie.info/2016/07/14/%E6%88%91%E5%AF%B9Retrofit%E7%9A%84%E8%AE%A4%E8%AF%86/)\n\n\n### RxJava\n\n1. [RxJava: Reactive Extensions for the JVM](https://github.com/ReactiveX/RxJava)\n2. [给 Android 开发者的 RxJava 详解](http://gank.io/post/560e15be2dca930e00da1083)\n3. [NotRxJava懒人专用指南](http://www.devtf.cn/?p=323)\n4. [小试RxJava](http://kescoode.com/try-rxjava/)\n\n### RxAndroid\n\n1. [IllegalStateException onError](https://github.com/ReactiveX/RxAndroid/issues/79)\n\n### RandomAccessFile\n\n1. [Java RandomAccessFile用法](http://blog.csdn.net/akon_vm/article/details/7429245)\n\n---\n\n## S\n\n### SearchView\n\n1. [详细解读Android中的搜索框（三）—— SearchView](http://www.cnblogs.com/tianzhijiexian/p/4226675.html)\n\n### Serializable\n\n1. [Android系统中Parcelable和Serializable的区别](http://greenrobot.me/devpost/android-parcelable-serializable/)\n2. [Android: Difference between Parcelable and Serializable?](http://stackoverflow.com/questions/3323074/android-difference-between-parcelable-and-serializable)\n\n### Service\n\n1. [Android Service完全解析，关于服务你所需知道的一切(上)](http://blog.csdn.net/guolin_blog/article/details/11952435)\n2. [ExecutorService 的理解与使用](http://blog.csdn.net/bairrfhoinn/article/details/16848785)\n3. [Android基本功：IntentService的使用](http://blog.csdn.net/p106786860/article/details/17885115)\n4. [Android基础笔记（十一）- Service基础和注意事项以及Activity与Service的通信](http://blog.csdn.net/biezhihua/article/details/44281029)\n\n### SharedPreference\n\n1. [Android SharedPreferences使用以及原理详解](http://blog.csdn.net/wxyyxc1992/article/details/17222841)\n2. [Google为何这样设计OnSharedPreferenceChangeListener](http://droidyue.com/blog/2014/11/29/why-onsharedpreferencechangelistener-was-not-called/)\n3. [SharedPreferences在多进程中的使用及注意事项](http://zmywly8866.github.io/2015/09/09/sharedpreferences-in-multiprocess.html)\n4. [What's the difference between commit() and apply() in Shared Preference](http://stackoverflow.com/questions/5960678/whats-the-difference-between-commit-and-apply-in-shared-preference)\n\n### SparseArray\n\n1. [Android应用性能优化之使用SparseArray替代HashMap](http://liuzhichao.com/p/832.html)\n2. [Android SparseArray](http://lmbj.net/blog/android-sparsearray/)\n3. [Android性能优化之使用SparseArray代替HashMap](http://stormzhang.com/android/2013/08/01/android-use-sparsearray-for-performance-optimization/)\n4. [HashMap的实现与优化](http://www.jianshu.com/p/e54047b2b563)\n\n### SQLite\n\n1. [Android中SQLite应用详解](http://blog.csdn.net/liuhe688/article/details/6715983)\n2. [ANDROID开发之SQLite详解](http://www.cnblogs.com/Excellent/archive/2011/11/19/2254888.html)\n3. [使用嵌入式关系型SQLite数据库存储数据](http://justsee.iteye.com/blog/932591)\n4. [Android将数据库保存到SD卡的实现](http://zmywly8866.github.io/2015/03/09/android-save-database-in-sdcard.html)\n\n### Support Library\n\n1. [Android Support兼容包详解](http://stormzhang.com/android/2015/03/29/android-support-library/)\n2. [Android各个Support Library介绍](http://zmywly8866.github.io/2015/10/09/android-support-library.html)\n3. [Android Support Library 23.1的变化](http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/1025/3622.html)\n\n### SwipeRefreshLayout\n\n1. [Android SwipeRefreshLayout](http://www.stormzhang.com/android/2014/03/29/android-swiperefreshlayout/)\n2. [下拉刷新之 swipeRefreshLayout](http://blog.csdn.net/xinjianwuhen1991/article/details/49914343)\n\n---\n\n## T\n\n### Textview\n\n1. [Remove underline from links in TextView](http://stackoverflow.com/questions/4096851/remove-underline-from-links-in-textview-android)\n2. [What is the default text size on Android?](http://stackoverflow.com/questions/5611411/what-is-the-default-text-size-on-android)\n3. [Which unit of measurement does the Paint.setTextSize(float) use?](http://stackoverflow.com/questions/11720093/which-unit-of-measurement-does-the-paint-settextsizefloat-use)\n4. [How to set unit for Paint.setTextSize()](http://stackoverflow.com/questions/3061930/how-to-set-unit-for-paint-settextsize)\n5. [Android Center text on canvas](http://stackoverflow.com/questions/11120392/android-center-text-on-canvas)\n\n### TouchEvent\n\n1. [两分钟彻底让你明白Android中onInterceptTouchEvent与onTouchEvent(图文)!](http://blog.csdn.net/android_tutor/article/details/7193090)\n2. [MotionEvent事件在onInterceptTouchEvent()、onTouchEvent()中的传递顺序](http://www.cnblogs.com/rocky_yi/archive/2011/01/21/1941522.html#)\n3. [Android Deeper(00) - Touch事件分发响应机制](http://hukai.me/android-deeper-touch-event-dispatch-process/)\n\n### Thread\n\n1. [ThreadPoolExecutor运转机制详解](http://blog.csdn.net/cutesource/article/details/6061229)\n2. [ThreadPoolExecutor使用和思考(上)-线程池大小设置与BlockingQueue的三种实现区别](http://dongxuan.iteye.com/blog/901689)\n3. [Java并发编程：Callable、Future和FutureTask](http://www.cnblogs.com/dolphin0520/p/3949310.html)\n4. [Java 7之多线程线程池 - Callable和Future](http://blog.csdn.net/mazhimazh/article/details/19291965)\n5. [Java 7之多线程线程池 - 线程池原理（1)](http://blog.csdn.net/mazhimazh/article/details/19243889)\n6. [Android线程间交互（Java synchronized \u0026 Android Handler）](http://www.juwends.com/tech/android/android-inter-thread-comm.html)\n7. [Android--多线程之Handler](http://www.cnblogs.com/plokmju/p/android_handler.html)\n8. [Java(Android)中线程池的使用](http://landerlyoung.github.io/blog/2014/09/23/javazhong-xian-cheng-chi-de-shi-yong/)\n9. [Java(Android)线程池](http://www.trinea.cn/android/java-android-thread-pool/)\n\n---\n\n## U\n\n### Unit Test\n\n1. [Android单元测试](http://www.cnblogs.com/tianzhijiexian/p/4296055.html)\n2. [Don’t Test Blindly: The Right Methods for Unit Testing Your Java Apps](http://zeroturnaround.com/rebellabs/dont-test-blindly-the-right-methods-for-unit-testing-your-java-apps/)\n3. [在Android Studio中进行单元测试和UI测试](http://www.jianshu.com/p/03118c11c199)\n\n### URL Routing - 路由协议\n\n1. [Android路由框架设计与实现](http://www.sixwolf.net/blog/2016/03/23/Android%E8%B7%AF%E7%94%B1%E6%A1%86%E6%9E%B6%E8%AE%BE%E8%AE%A1/)\n2. [UrlRouter路由框架的设计](http://zhengxiaoyong.me/2016/04/24/UrlRouter%E8%B7%AF%E7%94%B1%E6%A1%86%E6%9E%B6%E7%9A%84%E8%AE%BE%E8%AE%A1/)\n3. [需要给activity跳转增加路由么？](https://github.com/android-cn/android-discuss/issues/383)\n4. [通过 URL 打开 Activity](http://caodongping.me/2016/04/11/%E9%80%9A%E8%BF%87URL%E6%89%93%E5%BC%80Activity/#more)\n\n---\n\n## V\n\n### ViewPager\n\n1. [Android ViewPager使用详解](http://blog.csdn.net/wangjinyu501/article/details/8169924)\n2. [ViewPager + Fragment实现滑动标签页](http://blog.csdn.net/lizhenmingdirk/article/details/13631813)\n3. [【移动开发】Android中Fragment+ViewPager的配合使用](http://smallwoniu.blog.51cto.com/3911954/1322746)\n4. [Android 手把手教您自定义ViewGroup（一）本文出自:【张鸿洋的博客】](http://blog.csdn.net/lmj623565791/article/details/38339817)\n5. [Android的坑之ScrollView嵌套ViewPager](http://hellsam.com/2015/01/29/Android%E7%9A%84%E5%9D%91%E4%B9%8BScrollView%E5%B5%8C%E5%A5%97ViewPager/)\n6. [IllegalStateException: The application's PagerAdapter changed the adapter's content without calling PagerAdapter#notifyDataSetChanged](http://stackoverflow.com/questions/22943658/illegalstateexception-the-applications-pageradapter-changed-the-adapters-cont)\n\n### View\n\n1. [Android LayoutInflater原理分析，带你一步步深入了解View(一)](http://blog.csdn.net/guolin_blog/article/details/12921889)\n2. [Android中View绘制流程以及invalidate()等相关方法分析](http://blog.csdn.net/qinjuning/article/details/7110211)\n3. [Android中measure过程、WRAP_CONTENT详解以及xml布局文件解析流程浅析(上)](http://blog.csdn.net/qinjuning/article/details/8051811)\n4. [Android开发：LayoutParams的用法](http://www.cnblogs.com/shaweng/archive/2012/07/10/2585134.html)\n5. [Saving Android View state correctly](http://trickyandroid.com/saving-android-view-state-correctly/)\n\n### ViewFlipper\n\n1. [Android ViewFlipper的使用分析](http://www.cnblogs.com/PengLee/p/4156302.html)\n2. [Android 滑动效果入门篇（一）—— ViewFlipper](http://blog.csdn.net/ithomer/article/details/7420567)\n\n### VideoView\n\n1. [Android--使用VideoView播放视频](http://www.cnblogs.com/plokmju/p/android_videoview.html)\n2. [Playing a video in VideoView in Android](http://stackoverflow.com/questions/3263736/playing-a-video-in-videoview-in-android)\n3. [Position Video Inside a VideoView](http://stackoverflow.com/questions/4619563/position-video-inside-a-videoview/4855315#4855315)\n\n### Volley\n\n1. [Android Volley](https://github.com/mcxiaoke/android-volley)\n2. [Android Volley完全解析(一)，初识Volley的基本用法](http://blog.csdn.net/guolin_blog/article/details/17482095)\n3. [Android库Volley的使用介绍](https://bxbxbai.github.io/2014/09/14/android-working-with-volley/)\n4. [网络请求库Volley详解](http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0526/2934.html)\n5. [Volley 源码解析](http://www.codekk.com/blogs/detail/54cfab086c4761e5001b2542)\n6. [使用okHttp、Volley、Gson快速组装HttpClinet](http://oakzmm.com/2015/07/22/okHttp-Volley-Gson/)\n\n---\n\n## W\n\n### WebView\n\n1. [Java 与 JavaScript 如何进行交互](http://imtangqi.com/2015/03/07/java-and-javascript-interaction/)\n2. [Android与js交互实例](http://blog.csdn.net/ithomer/article/details/8737999)\n3. [Android中Java和JavaScript交互](http://droidyue.com/blog/2014/09/20/interaction-between-java-and-javascript-in-android/)\n4. [顶部带进度条的Webview](http://droidyue.com/blog/2014/07/12/ding-bu-dai-jin-du-tiao-de-webview/)\n5. [Android WebView播放视频问题](http://www.stormzhang.com/android/2014/03/23/android-webview-play-video/)\n6. [理解WebKit和Chromium: Android 4.4 上的Chromium WebView](http://blog.csdn.net/milado_nju/article/details/17098399)\n7. [在WebView中如何让JS与Java安全地互相调用](http://www.pedant.cn/2014/07/04/webview-js-java-interface-research/)\n8. [Android WebView的Js对象注入漏洞解决方案](http://blog.csdn.net/leehong2005/article/details/11808557)\n9. [Android WebView播放视频问题](http://www.jianshu.com/p/d6d379e3f41d)\n\n---\n\n## Others\n\n### Code Style\n\n1. [Java编程规范](http://www.stormzhang.com/java/2013/07/20/java-coding-standards/)\n2. [Android 命名规范 （提高代码可以读性）](http://blog.csdn.net/vipzjyno1/article/details/23542617)\n3. [Code Style Guidelines for Contributors](http://source.android.com/source/code-style.html)\n\n---\n\n### Git\n\n1. [Pro Git](http://git-scm.com/book/zh/v1)\n2. [GitHub秘籍](http://snowdream86.gitbooks.io/github-cheat-sheet/content/zh/index.html)\n3. [git - 简易指南](http://www.bootcss.com/p/git-guide/)\n4. [基于Github参与开源项目指南](http://yeungeek.com/2015/07/01/%E5%9F%BA%E4%BA%8EGithub%E5%8F%82%E4%B8%8E%E5%BC%80%E6%BA%90%E9%A1%B9%E7%9B%AE%E6%8C%87%E5%8D%97/)\n5. [使用git和github进行协同开发流程](http://livoras.com/post/28)  \n6. [如何高效利用GitHub](http://www.yangzhiping.com/tech/github.html#q1)  \n7. [廖雪峰的GIT入门教程](http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000)\n8. [GitHub\u0026Git入门基础](http://www.nowcoder.com/courses/2)\n9. [git-flow 备忘清单](http://danielkummer.github.io/git-flow-cheatsheet/index.zh_CN.html)\n\n---\n\n### JCenter\n\n1. [Android Studio发布项目到Jcenter](http://blog.saymagic.cn/2015/02/16/release-library-to-jcenter.html)\n2. [将Library上传到Jcenter](http://www.jianshu.com/p/0ba8960f80a9)\n3. [使用Gradle发布aar项目到JCenter仓库](http://www.cnblogs.com/qianxudetianxia/p/4322331.html)\n\n### JitPack\n\n1. [优雅的发布Android开源库(论JitPack的优越性)](https://github.com/GcsSloop/AndroidNote/blob/master/Course/ReleaseLibraryByJitPack.md)\n\n### 反编译\n\n1. [android_smali语法学习](http://blog.csdn.net/wdaming1986/article/details/8299996)\n2. [apk的包名修改](http://www.cnblogs.com/tianxiaozz/archive/2012/12/26/change_apk_package_name.html)\n3. [为Sublime Text安装smali代码语法高亮插件](http://liuzhichao.com/p/1476.html)\n4. [Android APK反编译详解（附图）](http://blog.csdn.net/ithomer/article/details/6727581)\n5. [Android开发学习总结（六）—— APK反编译](http://www.cnblogs.com/xdp-gacl/p/4677145.html)\n6. [我是如何使用Android反编译软件的？](http://www.jianshu.com/p/8c24136e0c1f)\n7. [Android程序的反编译对抗研究](http://www.freebuf.com/tools/76884.html)\n\n---\n\n### 设计模式\n\n1. [Java开发中的23种设计模式详解](http://zz563143188.iteye.com/blog/1847029)\n2. [MVC，MVP 和 MVVM 的图示](http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html)\n3. [如果让我重新设计一款Android App](http://blog.csdn.net/ahence/article/details/47154419)\n4. [一个人如何开发一款 App？](https://www.zhihu.com/question/29020285/answer/66095377?utm_campaign=webshare\u0026utm_source=weibo\u0026utm_medium=zhihu\u0026_t=1445344015624)\n5. [Android应用架构 (Android Dev Summit 2015)](http://blog.zhaiyifan.cn/2016/01/29/android-app-architecture-2015/?from=timeline\u0026isappinstalled=0)\n6. [Android源码设计模式分析项目](https://github.com/simple-android-framework-exchange/android_design_patterns_analysis)\n\n---\n\n### 夜间模式\n\n1. [Android Night Mode 夜间模式实现](http://echo.vars.me/android/android-night-mode/)\n2. [Android夜间模式实现](http://blog.kymjs.com/code/2015/05/26/01/)\n3. [Android 中 知乎日报和知乎设置夜间模式是怎么样做到不重启Activity的?](https://www.zhihu.com/question/31145990)\n\n---\n\n### 自定义控件\n\n1. [Android 自定义View及其在布局文件中的使用示例](http://www.cnblogs.com/crashmaker/p/3521310.html)\n2. [自定义控件进阶:declare-styleable重用attr](https://github.com/troyliu0105/Android-Tips/blob/master/Utils/Content/declare-styleable_reuse_attr.md)\n3. [android 自定义控件 使用declare-styleable进行配置属性（源码角度）](http://blog.csdn.net/vipzjyno1/article/details/23696537)\n4. [Android使用AttributeSet自定义控件的方法](http://www.cnblogs.com/zwl12549/archive/2011/04/13/2015366.html)\n5. [从源码中浅析Android中如何利用attrs和styles定义控件](http://michaelye1988.iteye.com/blog/1773997)\n6. [Android SDK: Creating Custom Views](http://code.tutsplus.com/tutorials/android-sdk-creating-custom-views--mobile-14548)\n7. [Creating custom and compound Views in Android - Tutorial](http://www.vogella.com/tutorials/AndroidCustomViews/article.html)\n8. [Tutorial: Enhancing Android UI with Custom Views](https://newcircle.com/s/post/1663/tutorial_enhancing_android_ui_with_custom_views_dave_smith_video)\n9. [Android 自定义View (一)](http://blog.csdn.net/lmj623565791/article/details/24252901)\n10. [What does postInvalidate() do?](http://stackoverflow.com/questions/5521596/what-does-postinvalidate-do)\n11. [When it's necessary to execute invalidate() on a View?](http://stackoverflow.com/questions/10647558/when-its-necessary-to-execute-invalidate-on-a-view)\n12. [Android笔记：invalidate()和postInvalidate() 的区别及使用](http://blog.csdn.net/mars2639/article/details/6650876)\n\n---\n\n### No category\n\n1. [THE DEX 64K LIMIT IS NOT A PROBLEM ANYMORE, ALMOST](http://www.mutualmobile.com/posts/dex-64k-limit-not-problem-anymore-almost)   \n2. [Android 4.4从图库选择图片,获取图片路径并裁剪](http://blog.csdn.net/tempersitu/article/details/20557383) \n3. [浅析android应用增量升级](http://blog.csdn.net/hmg25/article/details/8100896)  \n4. [Android四大基本组件介绍与生命周期](http://www.cnblogs.com/bravestarrhu/archive/2012/05/02/2479461.html)  \n5. [Android代码优化——使用Android lint工具](http://blog.csdn.net/xyz_lmn/article/details/14222939)  \n6. [Android 插件化 动态升级](http://www.trinea.cn/android/android-plugin/) \n7. [Java String StringBuilder StringBuffer](http://www.stormzhang.com/java/2014/08/08/java-string-stringbuilder-stringbuffer/)  \n8. [tools:context=\".MainActivity的作用](http://blog.csdn.net/caiwenfeng_for_23/article/details/8373569) \n9. [关于APK瘦身值得分享的一些经验](http://www.jianshu.com/p/bd90dee57ad0) \n10. [性能优化之数据库优化](http://www.trinea.cn/android/database-performance/)  \n11. [How to check visibility of software keyboard in Android?](http://stackoverflow.com/questions/2150078/how-to-check-visibility-of-software-keyboard-in-android) \n12. [android 4.4.4侧滑退出显示app启动界面](https://github.com/ikew0ng/SwipeBackLayout/issues/45) ​\n13. [How to get a Color from hexadecimal Color String](http://stackoverflow.com/questions/5248583/how-to-get-a-color-from-hexadecimal-color-string)\n14. [【译】Android应用架构](http://www.jianshu.com/p/8ca27934c6e6)\n15. [Android静默安装实现方案，仿360手机助手秒装和智能安装功能](http://blog.csdn.net/guolin_blog/article/details/47803149)\n16. [How to convert a color integer to a hex String in Android?](http://stackoverflow.com/questions/6539879/how-to-convert-a-color-integer-to-a-hex-string-in-android)\n17. [IllegalArgumentException: width and height must be \u003e 0 while loading Bitmap from View](http://stackoverflow.com/questions/17605662/illegalargumentexception-width-and-height-must-be-0-while-loading-bitmap-from)\n18. [Unable to instantiate application com.android.tools.fd.runtime.BootstrapApplication ?](http://stackoverflow.com/questions/33967703/unable-to-instantiate-application-com-android-tools-fd-runtime-bootstrapapplicat)\n19. [Unknown URL content://downloads/my_downloads](http://blog.csdn.net/mackkill/article/details/52003858)\n20. [Android开发之实现多次点击事件](http://blog.csdn.net/fengshizty/article/details/41675923)\n21. [Android完美解决输入框EditText隐藏密码打勾显示密码问题](http://blog.csdn.net/a2bgeek/article/details/9705305)\n22. [Android获取手机型号,系统版本,App版本号等信息](http://blog.csdn.net/lfdfhl/article/details/9070183)\n23. [你需要知道的Android拍照适配方案](http://www.jianshu.com/p/f269bcda335f)\n24. [Can't create handler inside thread that has not called Looper.prepare()](http://stackoverflow.com/questions/3875184/cant-create-handler-inside-thread-that-has-not-called-looper-prepare)\n\n---\n\n## Contributors\n\n- [troyliu0105](https://github.com/troyliu0105)\n- [whiskeyfei](https://github.com/whiskeyfei)\n- [pingfanganwei](https://github.com/pingfanganwei)\n- [whilu](https://github.com/whilu)\n- [yy1300326388](https://github.com/yy1300326388)\n- [ichenkaihua](https://github.com/ichenkaihua) \n- [wavever](https://github.com/wavever)\n- [windog](https://github.com/windog)\n- [Henryzhugithub](https://github.com/Henryzhugithub)\n- [Dimon94](https://github.com/Dimon94)\n- [nitta-honoka](https://github.com/nitta-honoka)\n\n---\n\n## Contact Me\n\nIf you have any questions or want to make friends with me, please feel free to contact me : [imtangqi#gmail.com](mailto:imtangqi@gmail.com \"Welcome to contact me\")  \n\n","funding_links":[],"categories":["Java","Internal","实践篇","相似的Andorid Tips的Repositories"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftangqi92%2FAndroid-Tips","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftangqi92%2FAndroid-Tips","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftangqi92%2FAndroid-Tips/lists"}