{"id":15040803,"url":"https://github.com/johncaijing/androidtips","last_synced_at":"2025-04-04T10:05:00.032Z","repository":{"id":39342428,"uuid":"44042532","full_name":"johncaijing/AndroidTips","owner":"johncaijing","description":"A collections of tips in Android developing.Android开发总结。我的博客:","archived":false,"fork":false,"pushed_at":"2022-08-18T13:13:14.000Z","size":11672,"stargazers_count":721,"open_issues_count":1,"forks_count":128,"subscribers_count":41,"default_branch":"master","last_synced_at":"2025-04-04T09:31:40.646Z","etag":null,"topics":["android","android-application","android-course","android-development","android-gradle","android-studio","android-tips","android-view"],"latest_commit_sha":null,"homepage":"http://www.johntsai.work","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/johncaijing.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}},"created_at":"2015-10-11T07:03:54.000Z","updated_at":"2025-03-11T07:48:58.000Z","dependencies_parsed_at":"2022-09-08T23:22:18.349Z","dependency_job_id":null,"html_url":"https://github.com/johncaijing/AndroidTips","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/johncaijing%2FAndroidTips","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johncaijing%2FAndroidTips/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johncaijing%2FAndroidTips/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johncaijing%2FAndroidTips/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/johncaijing","download_url":"https://codeload.github.com/johncaijing/AndroidTips/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247157281,"owners_count":20893220,"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","android-application","android-course","android-development","android-gradle","android-studio","android-tips","android-view"],"created_at":"2024-09-24T20:45:06.064Z","updated_at":"2025-04-04T10:05:00.006Z","avatar_url":"https://github.com/johncaijing.png","language":"Java","readme":"# AndroidTips\nA collections of tips in Android developing.\nAndroid开发总结。\n\n## 前言\n我们在日常开发中，会遇到各种各样的问题，或大或小。正是通过解决这些问题，使得我们的开发技能得到进步。养成记录的好习惯，方便自己日后查看，也方便广大开发者能找到自己遇到的问题的解决方案。\n\nPS：持续更新中(last update date:2019-10-29 14:40)\n\n## 目录\n\u003e[一.模拟器](#genymotion)\n\n\u003e[二.Android Studio](#AndroidStudio)\n\n\u003e[三.Gradle](#Gradle)\n\n\u003e [四.Android四大组件](#AndroidComponent)\n\n\u003e[五.动画](#animation)\n\n\u003e[六.View](#View)\n\n\u003e[七.XML](#XML)\n\n\u003e[八.Java](#Java)\n\n\u003e[九.混淆](#obfuscate)\n\n\u003e[十.优化](#optimize)\n\n\u003e[十一.优秀开发资料](#devTools)\n\n\u003e [十二.值得关注的Android大牛](#greatDeveloper)\n\n\u003e [十三.Canvas](#Canvas) \n\n\u003e [十四.学习方法总结](#howToLearn)\n\n\u003e [十五.Kotlin](#kotlin) \n\n\u003e [十六.MaterialDesign](#MD)\n\n\u003e [十七.自学资料](#selfStudy)\n\n\u003e [十八.RxJava](#RxJava)\n\n\u003e [十九.开发框架（如MVP等）](#MVPMVC) \n\n\u003e [二十.Android开发面试资料](#Interview)\n\n\u003e [二十一.Android逆向与安全](#Reverse)\n\n\u003e [二十二.Android编译构建](#AndroidBuild) \n\n\u003e [二十三.Android动态加载](#AndroidDynamicLoad)\n\n\u003e [二十四.Google最新的跨平台框架Flutter](#Flutter)\n\n## 正文\n\u003ch6 id=\"genymotion\"\u003e一.模拟器\u003c/h6\u003e\n\n1.genymotion模拟器如何锁屏？\n\u003e答：在模拟器的设置--\u003e安全--\u003e屏幕锁定--\u003e选择除\u003c**无**\u003e以外的其他选项。\n       然后点击模拟器的电源按钮即可锁屏（或在命令行中输入```adb shell keyevent 26```原理和按电源键一样，模拟电源键点击事件）\n       \n 参考链接：[http://stackoverflow.com/questions/29292060/how-to-lock-genymotion](http://stackoverflow.com/questions/29292060/how-to-lock-genymotion)\n \n 2.genymotion模拟器如何打开输入法软键盘？\n \u003e答：在设置输入法选项中，关闭物理键盘即可。\n \n 3.genymotion如何安装谷歌服务？\n \u003e答:   [http://stackoverflow.com/questions/17831990/how-do-you-install-google-frameworks-play-accounts-etc-on-a-genymotion-virt](http://stackoverflow.com/questions/17831990/how-do-you-install-google-frameworks-play-accounts-etc-on-a-genymotion-virt)\n \n \n\u003ch6 id=\"AndroidStudio\"\u003e二.Android Studio\u003c/h6\u003e\n\n1.Andorid Studio中有哪些好用的插件？\n\n\u003e答: \n\u003e1\u003e.[GsonFormat](https://github.com/zzz40500/GsonFormat):用json数据一键生成JavaBeans\n\n\u003e2\u003e. [ADB Idea](https://github.com/pbreault/adb-idea)：ctrl + Shift + A 查找中添加常用卸载安装app的一些操作，无需命令行\n\n\u003e 3\u003e.[android-parcelable-intellij-plugin](https://github.com/mcharmas/android-parcelable-intellij-plugin) 快速实现parcelable序列化\n\n\u003e 4\u003e.[android-butterknife-zelezny](https://github.com/avast/android-butterknife-zelezny) ButterKnife生成器，快速生成View声明代码\n\n\u003e 5\u003e.[Android WiFi ADB](https://github.com/pedrovgs/AndroidWiFiADB) 使用WiFi连接而不需要USB连接Android设备达到安装、运行、调试应用的目的。\n\n\u003e 6\u003e.[simpleUMLCE](https://plugins.jetbrains.com/plugin/4946?pr=) 自动生成类图\n\n2.Android Studio提升效率的技巧文章\n\u003e答:\n\n\u003e[http://www.developerphil.com/android-studio-tips-of-the-day-roundup-1/](http://www.developerphil.com/android-studio-tips-of-the-day-roundup-1/)\n\n\u003e[http://www.developerphil.com/android-studio-tips-of-the-day-roundup-2/](http://www.developerphil.com/android-studio-tips-of-the-day-roundup-2/)\n\n\u003e[http://www.developerphil.com/android-studio-tips-of-the-day-roundup-3/](http://www.developerphil.com/android-studio-tips-of-the-day-roundup-3/)\n\n\u003e[http://www.developerphil.com/android-studio-tips-of-the-day-roundup-4/](http://www.developerphil.com/android-studio-tips-of-the-day-roundup-4/)\n\n\u003e[http://www.developerphil.com/android-studio-tips-of-the-day-roundup-5/](http://www.developerphil.com/android-studio-tips-of-the-day-roundup-5/)\n\n\u003e[http://www.developerphil.com/android-studio-tips-of-the-day-roundup-6/](http://www.developerphil.com/android-studio-tips-of-the-day-roundup-6/)\n\n\u003e[上述Android Studio技巧的中文版](http://laobie.github.io/android/2016/02/14/android-studio-tips.html)\n\n3.更新Android Studio报如下错误如何解决？\n\u003eAndroid Studio: Error:/android-studio/gradle/gradle-2.4/lib/plugins/gradle-diagnostics-2.4.jar (No such file or directory)\n\n更新Android Studio后，Gradle的也得到了更新。cd到gradle文件夹下查看里面gradle文件夹的名字。例如gradle-2.8。然后在Android Studio中依次打开Module Settings-\u003eProject，将Gradle version改成和之前文件夹对应的版本。Rebuild项目就好了。\n\n4.Android Studio的常用快捷键？\n\u003e答:\n\n\u003e1.快速生成get,set代码（Command+N）\n\n\u003e2.查找方法(Find Action)(Command+Shift+A)\n\n\u003e3.查看类的层级(Ctrl+H)\n\n\u003e4.选中一侧代码(Alt+鼠标左键)\n\n\u003e5.提取方法(Command+Option+M)\n\n![](http://stormzhang.com/image/53-extractmethod.gif)\n\n5.Android Studio中开启DDMS？\n\n\u003e答:在Android中，依次点击Tools-\u003eAndroid-\u003eAndroid Device Monitor\n\n6.Android Studio与Gradle教程\n\u003e答：\n\n\u003e1.[拥抱 Android Studio 之一：从 ADT 到 Android Studio](http://kvh.io/cn/embrace-android-studio-migration.html)\n\n\u003e2.[拥抱 Android Studio 之二：Android Studio 与 Gradle 深入](http://kvh.io/cn/embrace-android-studio-indepth.html)\n\n\u003e3.[拥抱 Android Studio 之三：溯源，Groovy 与 Gradle 基础](http://kvh.io/cn/embrace-android-studio-groovy-gradle.html)\n\n\u003e4.[拥抱 Android Studio 之四：Maven 仓库使用与私有仓库搭建](http://kvh.io/cn/embrace-android-studio-maven-deploy.html)\n\n\u003e5.[拥抱 Android Studio 之五：Gradle 插件开发](http://kvh.io/cn/embrace-android-studio-gradle-plugin.html)\n\n\u003ch6 id=\"Gradle\"\u003e三.Gradle\u003c/h6\u003e\n\n1.Gradle有什么教程?\n\n\n\u003e1.[Gradle User Guide 中文版](https://dongchuan.gitbooks.io/gradle-user-guide-/content/)\n\n\u003e2.[Gradle官方教程](https://docs.gradle.org/current/userguide/userguide.html)\n\n\u003e3.[灵活强大的构建系统Gradle（美团技术团队）](http://tech.meituan.com/gradle-practice.html)\n\n\u003e4.[Android官方Gradle教程](https://developer.android.com/intl/zh-cn/tools/building/plugin-for-gradle.html)\n\n\u003e5.[Gradle官方Training](http://gradle.org/getting-started-android/)\n\n\u003e6.[android-studio.org的Gradle教程](http://ask.android-studio.org/?/explore/category-gradle)\n\n\u003e7.[Android Plugin DSL Reference](http://google.github.io/android-gradle-dsl/current/?url_type=39\u0026object_type=webpage\u0026pos=1)\n\n\u003e8.[Gradle脚本基础全攻略](http://blog.csdn.net/yanbober/article/details/49314255#0-tsina-1-52349-397232819ff9a47a7b7e80a40613cfe1)\n\n\u003e9.[深入理解Android之Gradle](http://blog.csdn.net/innost/article/details/48228651)\n\n\u003e10.[Android 开发必备知识：我和 Gradle 有个约会(腾讯bugly团队)](http://mp.weixin.qq.com/s?__biz=MzA3NTYzODYzMg==\u0026mid=401572523\u0026idx=1\u0026sn=19504d41b81f82a5388ae4f95072aea5\u0026scene=0#wechat_redirect)\n\n\u003e11.[Android Recipes for Android](./book/Gradle Recipes for Android.pdf)\n\n2.Gradle在编译的时候报如下错误：Error:Timeout waiting to lock buildscript class cache for build file ，怎么解决？\n\n\u003e答:\n\n\u003eWindows:删除C:\\Users\\Administrator\\.gradle\\caches.这个文件夹\n\n\u003eOS X:删除~/.gradle/caches这个文件夹\n\n参考：[http://stackoverflow.com/questions/31784132/errortimeout-waiting-to-lock-buildscript-class-cache-for-build-file-when-change](http://stackoverflow.com/questions/31784132/errortimeout-waiting-to-lock-buildscript-class-cache-for-build-file-when-change)\n\n3.什么是Gradle，为什么在Android Studio中引进Gradle?\n\u003e答：\n\n[http://stackoverflow.com/questions/16754643/what-is-gradle-in-android-studio](http://stackoverflow.com/questions/16754643/what-is-gradle-in-android-studio)\n\n\u003ch6 id=\"AndroidComponent\"\u003e四.Android四大组件\u003c/h6\u003e\n\n\u003e1.Activity\n\n\u003e2.Service\n\n\u003e* [Android Service完全解析，关于服务你所需知道的一切(上)](http://blog.csdn.net/guolin_blog/article/details/11952435)\n\u003e* [Android Service完全解析，关于服务你所需知道的一切(下)](http://blog.csdn.net/guolin_blog/article/details/9797169)\n\u003e* [Services(Android官方文档)](http://developer.android.com/guide/components/services.html)\n\n\u003e3.ContentProvider\n\n\u003e4.BroadcastReceriver\n\n\u003e* [BroadcastReceiverAndroid官方文档](http://developer.android.com/reference/android/content/BroadcastReceiver.html)\n\n\u003ch6 id=\"animation\"\u003e五.动画\u003c/h6\u003e\n\n1.关于动画有什么教程?\n\u003e1.[Android官方](http://developer.android.com/intl/zh-cn/guide/topics/graphics/index.html)\n\n\u003e2.[tutorialspoint动画教程](http://www.tutorialspoint.com/android/android_animations.htm)\n\n\u003e3.[Android属性动画完全解析(上)，初识属性动画的基本用法](http://blog.csdn.net/guolin_blog/article/details/43536355)\n\n\u003e4.[ Android属性动画完全解析(中)，ValueAnimator和ObjectAnimator的高级用法](http://blog.csdn.net/guolin_blog/article/details/43816093)\n\n\u003e5.[Android属性动画完全解析(下)，Interpolator和ViewPropertyAnimator的用法](http://blog.csdn.net/guolin_blog/article/details/44171115)\n\n\u003e6.[Using animations in Android application](http://www.vogella.com/tutorials/AndroidAnimation/article.html)\n\n\u003e7 .[动画系列 - 传统View动画与Property动画基础及比较](http://www.lightskystreet.com/2014/12/03/view-and-property-anim-knowldege-and-compare/)\n\n\u003e8 .[动画系列 - PropertyAnim 详解](http://www.lightskystreet.com/2014/12/04/propertyview-anim-analysis/)\n\n\u003e9 .[动画系列 - PropertyAnim 实际应用](http://www.lightskystreet.com/2014/12/10/propertyview-anim-practice/)\n\n\u003e10 .[动画系列 - ViewPager动画](http://www.lightskystreet.com/2014/12/15/viewpager-anim/)\n\n\u003e11 .[Android 动画基础](http://www.lightskystreet.com/2015/05/23/anim_basic_knowledge/)\n\n\u003e12 .[codepath_android_guides_animations](https://github.com/codepath/android_guides/wiki/Animations)\n\n\u003e12 .[bignerdranch_frame-animations-in-android](https://www.bignerdranch.com/blog/frame-animations-in-android/)\n\n\u003e13 .[Building Meaningful Motion(Plaid作者Android动画演讲分享)](https://photos.google.com/share/AF1QipMRnZL6gNbS06fnBNtKffRm9HBaxW8iP6w0L1T4nZYLI6s3wi_l8daT6mq4nwPf-w?key=LThZNmFXUUtmNi04bWlEYmVfcWdPenlvaDdCRU13)\n\n\u003ch6 id=\"View\"\u003e六.View\u003c/h6\u003e\n\n1.View是如何绘制的？\n\u003e1.[How Android Draws Views](http://developer.android.com/intl/zh-cn/guide/topics/ui/how-android-draws.html)\n\n\u003e2.[Android视图状态及重绘流程分析，带你一步步深入了解View(一)](http://blog.csdn.net/guolin_blog/article/details/12921889)\n\n\u003e3.[Android视图状态及重绘流程分析，带你一步步深入了解View(二)](http://blog.csdn.net/guolin_blog/article/details/16330267)\n\n\u003e4.[Android视图状态及重绘流程分析，带你一步步深入了解View(三)](http://blog.csdn.net/guolin_blog/article/details/17045157)\n\n\u003e5.[Android视图状态及重绘流程分析，带你一步步深入了解View(四)](http://blog.csdn.net/guolin_blog/article/details/17357967)\n\n2.如何实现自定义View？\n\u003e1.[Android官方教程](http://developer.android.com/intl/zh-cn/training/custom-views/index.html)\n\n\u003e2.[Android官方教程中文版](http://hukai.me/android-training-course-in-chinese/ui/custom-view/index.html)\n\n\u003e3.[Creating custom and compound Views in Android - Tutorial](http://www.vogella.com/tutorials/AndroidCustomViews/article.html)\n\n\u003e4.[Tutorialspoint教程](http://www.tutorialspoint.com/android/android_custom_components.htm)\n\n\u003e5.[ Android自定义View的实现方法，带你一步步深入了解View(四)](http://blog.csdn.net/guolin_blog/article/details/17357967)\n\n\u003e6.[Canvas and Drawables\n](http://developer.android.com/intl/zh-cn/guide/topics/graphics/2d-graphics.html)\n\n\u003e7.[Android自定义View系列文章](https://github.com/GcsSloop/AndroidNote/blob/master/CustomView/README.md)\n\n3.Android touch事件分发机制\n\u003e1.[Managing Touch Events in a ViewGroup](http://developer.android.com/intl/zh-cn/training/gestures/viewgroup.html)\n\n\u003e2.[Android事件分发机制完全解析，带你从源码的角度彻底理解(上)](http://blog.csdn.net/guolin_blog/article/details/9097463)\n\n\u003e3.[Android事件分发机制完全解析，带你从源码的角度彻底理解(下)](http://blog.csdn.net/guolin_blog/article/details/9153747)\n\n\u003e4.[Android事件传递机制](http://ryantang.me/blog/2014/01/02/android-event-dispatch/)\n\n\u003e5.[Handling single and multi touch on Android - Tutorial](http://www.vogella.com/tutorials/AndroidTouch/article.html)\n\n4.ImageView使用src和background设置图片的区别？\n\u003e1.[http://stackoverflow.com/questions/5454491/what-is-the-difference-between-src-and-background-of-imageview](http://stackoverflow.com/questions/5454491/what-is-the-difference-between-src-and-background-of-imageview)\n\n\u003e2.[Android 中 imageView 的 Src 和 Background\n](http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0723/3217.html)\n\n5.View中onTouch和onTouchEvent的区别？\n\u003e 1.[http://stackoverflow.com/questions/5002049/ontouchevent-vs-ontouch](http://stackoverflow.com/questions/5002049/ontouchevent-vs-ontouch)\n\n\n\n\u003ch6 id=\"XML\"\u003e七.XML\u003c/h6\u003e\n\n1.为什么在XML代码中有tools命名空间？\n代码如下:\n\n```\n\u003cLinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n              xmlns:tools=\"http://schemas.android.com/tools\"\n              android:layout_width=\"match_parent\"\n              android:layout_height=\"wrap_content\"\u003e     \n       \u003cTextView\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        tools:text=\"0\"/\u003e\n\u003c/LinearLayout\u003e\n```\n\n\u003etools:text，其实就是给ADT用的，用于在design页面能够预览到这个属性的值，但是当实际上运行的时候是看不到这个值的。具体可查看[Designtime Layout Attributes](http://tools.android.com/tips/layout-designtime-attributes) \n\n\n\u003ch6 id=\"Java\"\u003e八.Java\u003c/h6\u003e\n\n\u003e1.[深入理解Java中的final关键字](http://www.importnew.com/7553.html)\n\n\u003e2.[Java中==和equals的区别](http://stackoverflow.com/questions/7520432/java-vs-equals-confusion)\n\n\u003e3.[Java中的hashCode()方法和equals()方法](http://www.ibm.com/developerworks/library/j-jtp05273/)\n\n\u003e4.[Java资源大全中文版(awesome-java-cn)](https://github.com/jobbole/awesome-java-cn)\n\n\u003ch6 id=\"obfuscate\"\u003e九.混淆\u003c/h6\u003e\n\n\u003e1. Android混淆有什么资料教程?\n\n\u003e答:\n\n\u003e* 1.[Android官方混淆教程](http://developer.android.com/tools/help/proguard.html)\n\n\u003e* 2.[ProGuard官方教程](http://proguard.sourceforge.net/manual/examples.html)\n\n2.资源混淆有什么好的技术文章?\n\n\u003e答:\n\n\u003e1.[美团Android资源混淆保护实践](http://tech.meituan.com/mt-android-resource-obfuscation.html)\n\n\u003e2.[安装包立减1M--微信Android资源混淆打包工具](http://mp.weixin.qq.com/s?__biz=MzAwNDY1ODY2OQ==\u0026mid=208135658\u0026idx=1\u0026sn=ac9bd6b4927e9e82f9fa14e396183a8f\u0026scene=23\u0026srcid=1012zDgw2RHFIoV0NLKVHhbT#rd)\n\n\n\u003ch6 id=\"optimize\"\u003e十.优化\u003c/h6\u003e\n\n\u003e1.[Android内存优化杂谈(微信移动客户端开发团队)](http://mp.weixin.qq.com/s?__biz=MzAwNDY1ODY2OQ==\u0026mid=400656149\u0026idx=1\u0026sn=122b4f4965fafebf78ec0b4fce2ef62a\u00263rd=MzA3MDU4NTYzMw==\u0026scene=6#rd)\n\n\u003e2.[如何提高开发效率?(微信移动客户端开发团队)](https://mp.weixin.qq.com/s?__biz=MzAwNDY1ODY2OQ==\u0026mid=400785752\u0026idx=1\u0026sn=e1c166e7fad0892811c9ca9bca6d1540\u0026scene=0\u0026key=41ecb04b051110033c2815a97388b84addcfa13da2d8c8fd754bdd21384a795226da667df6a4f1b591c452ccd48d29b8\u0026ascene=0\u0026uin=NTMyODkxMDE1\u0026devicetype=iMac+MacBookPro12%2C1+OSX+OSX+10.11.2+build(15C50)\u0026version=11020201\u0026pass_ticket=ZXGITxr6bbn9Jmjzi5s4TzNgphY7BZ3j7xzQh%2BtYcqRDRivYxSjA1JbKPe1ME1q4)\n\n\u003e3.[Android 开发绕不过的坑：你的 Bitmap 究竟占多大内存？(腾讯Bugly团队)](http://bugly.qq.com/bbs/forum.php?mod=viewthread\u0026tid=498\u0026fromuid=6)\n\n\u003ch6 id=\"devTools\"\u003e十一.优秀开发资料\u003c/h6\u003e\n\n\u003e1.如何寻找优秀开源库？\n\n\u003e答：\n\n\u003e* 1.[codeKK开源库收集网站(由国内Android大牛Trinea)维护)](http://p.codekk.com/)\n\u003e* 2.[查看Github JAVA trending](https://github.com/trending?l=java)\n\u003e* 3.[Android Arsenal](http://android-arsenal.com/)\n\n\u003e2.在线查看Android源码的网站:\n\n\u003e* 1.[http://grepcode.com/project/repository.grepcode.com/java/ext/com.google.android/android/](http://grepcode.com/project/repository.grepcode.com/java/ext/com.google.android/android/)\n\u003e* 2.[https://github.com/android](https://github.com/android)\n\n\u003e3.在线书籍:\n\n\u003e* 1.[Android 实战技巧](http://wiki.jikexueyuan.com/project/android-actual-combat-skills/)\n\n\u003e* 2.[RxJava Essentials 中文翻译版](https://github.com/yuxingxin/RxJava-Essentials-CN)\n\n\n\u003e4.程序员的读书清单\n\n\u003e答:\n\n\u003e* 1.[程序员必读书单 1.0(作者:Lucida,Google大牛)](http://zh.lucida.me/blog/developer-reading-list/)\n\u003e* 2.[Android开发者必备书单](http://mp.weixin.qq.com/s?__biz=MjM5MTE1NjQzMQ==\u0026mid=403570038\u0026idx=1\u0026sn=19f8e9f035dfef36a15ada6fda2cc788\u00263rd=MzA3MDU4NTYzMw==\u0026scene=6#rd)\n\n\u003e5.Android图片相关工具\n\n\u003e* 1.[Android Asset Studio](http://romannurik.github.io/AndroidAssetStudio/)\n\n\u003e6.Android开发相关书籍推荐\n\n\u003e* 1.[Android编程权威指南](https://book.douban.com/subject/25848404/)(入门，推荐)\n\u003e* 2.[疯狂Android讲义](https://book.douban.com/subject/6515839/)(入门)\n\u003e* 3.[第一行代码](https://book.douban.com/subject/25942191/)(入门)\n\u003e* 4.[Android开发艺术探索](https://book.douban.com/subject/26599538/)(进阶，推荐)\n\u003e* 5.[Andorid群英传](https://book.douban.com/subject/26599539/)(进阶)\n\n\n\u003ch6 id=\"greatDeveloper\"\u003e十二.值得关注的Android大牛\u003c/h6\u003e\n\n\u003e[国外](https://github.com/android-cn/android-dev-com)\n\u003e\n\u003e[国内](https://github.com/android-cn/android-dev-cn)\n\u003e\n\n\n---\n\n\u003e**CSDN**\n\n\u003e* 1.[郭霖](http://blog.csdn.net/guolin_blog)\n\u003e* 2.[任玉刚](http://blog.csdn.net/singwhatiwanna)\n\u003e* 3.[张鸿洋](http://blog.csdn.net/lmj623565791)\n\u003e* 4.[罗升阳*](http://blog.csdn.net/Luoshengyang/)\n\n\u003e (PS:*表示Android系统研究)\n\n\u003e**微信公众号**\n\n\u003e* 1.Google开发者（Google_Developers）\n\u003e* 2.QQ空间终端开发团队(qzonemobiledev)\n\u003e* 3.手机淘宝技术团队MTT（AlibabaMTT）\n\u003e* 4.腾讯bugly(weixinBugly)\n\u003e* 5.微信移动客户端团队（WeMobileDev）\n\u003e* 6.好东西传送门(awesomeport)\n\u003e* 7.阿里聚安全\n\n\u003e 注:括号内为微信号\n\n\n\u003e**Google+**\n\n\u003e* 1.[JakeWharton(Work@Square)](https://plus.google.com/+JakeWharton)\n\u003e* 2.[CyrilMottier](https://plus.google.com/+CyrilMottier)\n\u003e* 3.[RomainGuy(Work@Google)](https://plus.google.com/+RomainGuy)\n\u003e* 4.[NickButcher(Work@Google)](https://plus.google.com/+NickButcher)\n\n\u003e**公司技术团队**\n\n\u003e* 1.[美团点评技术团队](http://tech.meituan.com/)\n\u003e* 2.[Glow 技术团队博客](http://tech.glowing.com/cn/)\n\u003e* 3.[蘑菇街技术博客](http://mogu.io/)\n\u003e* 4.[腾讯bugly团队](http://bugly.qq.com/blog/)\n\u003e* 5.[腾讯ISUX团队](http://isux.tencent.com/)\n\u003e* 6.[BigNerdRanch团队（国外著名培训机构）](https://www.bignerdranch.com/blog/)\n\u003e* 7.[ IBM developerworks(Java)](http://www.ibm.com/developerworks/cn/java/)\n\u003e* 8.[考拉移动团队](https://blog.klmobile.app/)\n\u003e* 9.[大搜车技术团队](https://blog.souche.com/)\n\n\u003e**Android开发技术资讯网站**\n\n\u003e* 1.[干货集中营gank.io](http://gank.io)\n\u003e* 2.[稀土掘金](http://gold.xitu.io/#/)\n\u003e* 3.[Android Weekly](http://androidweekly.net/)\n\u003e* 4.[AndroidHive（一个针对初学者的Android开发的教程、贴士，小技巧等的英文网站）](http://www.androidhive.info/)\n\n\u003e**Github上那些值得关注的公司组织**\n\n\u003e* 1.[Google(谷歌)](https://github.com/google)\n\u003e* 2.[Excilys(作品有著名的Android注入框架AndroidAnnotation)](https://github.com/excilys)\n\u003e* 3.[Alibaba(阿里)](https://github.com/alibaba)\n\u003e* 4.[Square(作品有著名的Android网络框架OkHttp,Retrofit)](https://github.com/square)\n\u003e* 5.[TecentOpen(腾讯)](https://github.com/TencentOpen)\n\u003e* 6.[500-px](https://github.com/500px)\n\u003e* 7.[dropbox](https://github.com/dropbox)\n\n\n\u003e**个人独立博客**\n\n\n\u003ch6 id=\"Canvas\"\u003e十三.Canvas\u003c/h6\u003e\n\n\u003e1.Canvas相关的教程:\n\n\u003e* 1.[Canvas and Drawables(Android官方教程)](http://developer.android.com/guide/topics/graphics/2d-graphics.html)\n\n\u003ch6 id=\"howToLearn\"\u003e十四.学习方法/路线总结\u003c/h6\u003e\n\n\u003e1.[Android学习进阶路线导航线路](http://www.webtag123.com/android/38528.html)\n\n\u003e2.[ Android学习路线指南](http://blog.csdn.net/singwhatiwanna/article/details/49560409)\n\n\u003e3.[Android学习之路](http://stormzhang.com/android/2014/07/07/learn-android-from-rookie/)\n\n\u003e4.[Android 开发进阶指南](http://mp.weixin.qq.com/s?__biz=MzA4MTg4MjkzMw==\u0026mid=405812592\u0026idx=1\u0026sn=efa3c70957cc475eae9802944ecd0de0\u00263rd=MzA3MDU4NTYzMw==\u0026scene=6#rd)\n\n\u003e5.[怎样的Android开发毕业生可以算达到优秀的水平？](https://www.zhihu.com/question/39009692)\n\n\u003e6.[Android 程序猿如何继续深入的研究技术层的知识？](https://www.zhihu.com/question/37549641/answer/83217748)\n\n\u003e7.[给那些刚入行的 iOS/Android 开发新手们的一些建议](http://mp.weixin.qq.com/s?__biz=MzIwMTYzMzcwOQ==\u0026mid=403237166\u0026idx=1\u0026sn=86c173ccbe9f93175dd842bba66bd821\u00263rd=MzA3MDU4NTYzMw==\u0026scene=6#rd)\n\n\n\u003ch6 id=\"kotlin\"\u003e十五.Kotlin\u003c/h6\u003e\n\n\u003e1. [Kotlin官网](https://kotlinlang.org/)\n\n\u003e2. [Kotlin官网（中文版）](http://kotlinlang.cn/)\n\n\u003e3. [《Kotlin for android developers》中文版](https://wangjiegulu.gitbooks.io/kotlin-for-android-developers-zh/content/)\n\n\n\u003ch6 id=\"MD\"\u003e十六.MaterialDesign\u003c/h6\u003e\n\n\u003ch6 id=\"selfStudy\"\u003e十七.自学资料\u003c/h6\u003e\n\n\u003e1. [Android开发官方文档（英文版）](http://developer.android.com/training/index.html)\n\n\u003e2. [Android开发中文文档](http://hukai.me/android-training-course-in-chinese/index.html)\n\n\u003e3. [Android学习资料收集](https://github.com/Freelander/Android_Data)\n\n\n\u003ch6 id=\"RxJava\"\u003e十八.RxJava\u003c/h6\u003e\n\n\u003e 1. [给 Android 开发者的 RxJava 详解](http://gank.io/post/560e15be2dca930e00da1083)\n\u003e 2. [Adopting RxJava on Airbnb Android](https://realm.io/news/kau-felipe-lima-adopting-rxjava-airbnb-android/)\n\u003e 3. [Grokking RxJava系列](http://blog.danlew.net/2014/09/15/grokking-rxjava-part-1/)\n\u003e 4. [Reactivex官方教程](http://reactivex.io/tutorials.html)\n\u003e 5. [RxJava Essentials 中文翻译版](https://github.com/yuxingxin/RxJava-Essentials-CN)\n\u003e 6. [RxJava文档中文版](https://www.gitbook.com/book/mcxiaoke/rxdocs/details)\n\u003e 7. [Awesome-RxJava](https://github.com/lzyzsd/Awesome-RxJava)\n\u003e8. [Learning RxJava.pdf](./book/Learning RxJava.pdf)\n\n\u003ch6 id=\"MVPMVC\"\u003e十九.开发框架（如MVP等）\u003c/h6\u003e\n\n \u003e 1.[一步一步实现Android的MVP框架](https://mp.weixin.qq.com/s?__biz=MzA3NTYzODYzMg==\u0026mid=2653577546\u0026idx=1\u0026sn=e10be159645a3aa8f6d6f209420fb412\u0026scene=0\u0026key=8dcebf9e179c9f3a130f41588b53ffbaaf5f043957c7e472dbaed7fd6f0b0a1cb29335430d756e6473d09ff8fd11bc8c)\n \n \u003e 2.[Android Application Architecture](https://labs.ribot.co.uk/android-application-architecture-8b6e34acda65#.igkl0haav)\n \n \u003e 3.[Google官方Android架构示例](https://github.com/googlesamples/android-architecture)\n \n \n\u003ch6 id=\"Interview\"\u003e二十.Android开发面试资料\u003c/h6\u003e\n\n\u003e 1.[Android interview questions for 2-5 yrs experienced(2-5年经验的Android开发面试问题)](http://androidquestions.quora.com/Android-interview-questions-for-2-5-yrs-experienced)\n\n\u003e 2.[250 Android Interview Questions(250道Android开发面试题)](https://androidquestions.quora.com/250-Android-Interview-Questions) \n\n\u003e 3.[Android interview questions(Android面试问题)](http://androidquestions.quora.com/Android-interview-questions)\n \n\n\u003ch6 id=\"Reverse\"\u003e二十一.Android逆向与安全\u003c/h6\u003e\n\n\u003e 1.[Android技术分享的逆向教程](http://blog.csdn.net/jiangwei0910410003/article/category/5897865)\n\u003e 2. [Android反破解之一：Android Java混淆(ProGuard)](http://bbs.pediy.com/showthread.php?t=137112)\n\u003e 3. [APK反破解之二：Android APK 签名比对](http://bbs.pediy.com/showthread.php?t=137500)\n\u003e 4. [APK反破解之三：NDK编译.so动态库](http://bbs.pediy.com/showthread.php?t=141960)\n\u003e 5. [APK反破解之四：Android代码动态加载技术](http://bbs.pediy.com/showthread.php?t=142256)\n \n \n\u003ch6 id=\"AndroidBuild\"\u003e二十二.Android编译构建\u003c/h6\u003e\n\n\u003e 1.[Android构建过程分析](http://mp.weixin.qq.com/s?__biz=MzI1NjEwMTM4OA==\u0026mid=2651232113\u0026idx=1\u0026sn=02f413999ab0865e23d272e69b9e6196\u0026scene=0#rd)\n\n\u003ch6 id=\"AndroidDynamicLoad\"\u003e二十三.Android动态加载\u003c/h6\u003e\n\n\u003e 1.[Android动态加载基础 ClassLoader工作机制](https://segmentfault.com/a/1190000004062880)\n\u003e \n\u003e 2.[Android插件化研究](https://github.com/nuptboyzhb/AndroidPluginFramework)\n\u003e \n\u003e 3.[Android插件化原理研究](http://weishu.me/2016/01/28/understand-plugin-framework-overview/)\n\u003e \n\u003e 4.[Understanding Java ClassLoader](https://www.ibm.com/developerworks/java/tutorials/j-classloader/j-classloader.html)\n\n\u003ch6 id=\"Flutter\"\u003e二十四.Google最新的跨平台框架\u003c/h6\u003e\n\n\u003e 1.[闲鱼技术团队的Flutter研究文档](https://yuque.com/xytech/flutter)\n \n## 参与维护\n欢迎Pull Request和使用issue\n\n## LICENCE\n以上内容采用[ CC BY-NC-SA 3.0](http://creativecommons.org/licenses/by-nc-sa/3.0/deed.zh)进行许可\n\n## 关于我\n网络ID:JohnTsai\n\nAndroid开发者，手机发烧友。\n\n我的博客:[https://www.johntsai.xyz](https://www.johntsai.xyz)\n\n博客园博客:[http://www.cnblogs.com/JohnTsai](http://www.cnblogs.com/JohnTsai)\n\n简书:[http://www.jianshu.com/users/07ba99ac6962/latest_articles](http://www.jianshu.com/users/07ba99ac6962/latest_articles)\n\nGoogle+:[https://plus.google.com/106757597621151145389/posts](https://plus.google.com/106757597621151145389/posts)\n\n邮箱:[JohnTsai.Work#gmail.com](mailto:JohnTsai.Work@gmail.com)\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohncaijing%2Fandroidtips","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjohncaijing%2Fandroidtips","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohncaijing%2Fandroidtips/lists"}