From 10ca13abacb61c74e699f2dbc497ddb8865cb52c Mon Sep 17 00:00:00 2001 From: Troy Liu Date: Mon, 14 Sep 2015 23:00:47 +0800 Subject: [PATCH 01/85] add something about Picasso --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 26805c5..40990fd 100644 --- a/README.md +++ b/README.md @@ -245,6 +245,11 @@ 1. [PreferenceActivity(首选项设置页)](http://blog.csdn.net/plussoft/article/details/9993759) 2. [Android的设置界面及Preference使用](http://blog.csdn.net/ichliebephone/article/details/5916320) +### Picasso + +1. [Picasso官方网站及javadoc](http://square.github.io/picasso/) +2. [Android图片下载缓存库picasso解析](http://blog.csdn.net/xu_fu/article/details/17043231) + ## R ### Reference @@ -437,4 +442,4 @@ 11. [MVC,MVP 和 MVVM 的图示](http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html) 12. [关于APK瘦身值得分享的一些经验](http://www.jianshu.com/p/bd90dee57ad0) 13. [Java开发中的23种设计模式详解](http://zz563143188.iteye.com/blog/1847029) -14. [性能优化之数据库优化](http://www.trinea.cn/android/database-performance/) \ No newline at end of file +14. [性能优化之数据库优化](http://www.trinea.cn/android/database-performance/) From 646b40783e4f8dc5fe3b81b47ac10d49d8ddbc86 Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Mon, 14 Sep 2015 23:12:16 +0800 Subject: [PATCH 02/85] update 2015-09-14 23:12 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 26805c5..41abcf6 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ **如果你是个 Android 新人,那么我希望这份列表,可以成为你踩到坑时的不完全手册。** -当然,这份列表一定会有遗漏,如果不幸,这里没有你所踩到的坑,或者对于某个问题你有更好的 Tips,欢迎分享,让我们一起来维护这个项目!你可以通过 [Commit](https://github.com/tangqi92/Android-Tips/issues) 的形式,当然也欢迎 `Star` 与 `Fork` :) +当然,这份列表一定会有遗漏,如果不幸,这里没有你所踩到的坑,或者对于某个问题你有更好的 Tips,欢迎分享,让我们一起来维护这个项目!你可以通过 [Commit](https://github.com/tangqi92/Android-Tips/issues) 或者 [Pull requests](https://github.com/tangqi92/Android-Tips/pulls) 的形式,当然也欢迎 `Star` 与 `Fork` :) >由于本项目面向的群体为初学者,所以列表的知识点以初级为主,资源大多数为中文,如遇到少数无法访问的情况,请自备梯子。 From 31b99abb01362732d60ec50b7fe69e62c864a872 Mon Sep 17 00:00:00 2001 From: Wavever Date: Tue, 15 Sep 2015 12:36:12 +0800 Subject: [PATCH 03/85] add somthing about git --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2e9ed4b..3a4a93b 100644 --- a/README.md +++ b/README.md @@ -408,6 +408,7 @@ 2. [GitHub秘籍](http://snowdream86.gitbooks.io/github-cheat-sheet/content/zh/index.html) 3. [git - 简易指南](http://www.bootcss.com/p/git-guide/) 4. [基于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/) +5. [使用git和github进行协同开发流程](http://livoras.com/post/28) --- From 1b42ff68aa67b2dbd6ecf1173c46200ce3a84d2e Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Tue, 15 Sep 2015 19:35:45 +0800 Subject: [PATCH 04/85] add Create RecyclerView with multiple view type --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2e9ed4b..e515368 100644 --- a/README.md +++ b/README.md @@ -264,6 +264,7 @@ 3. [A Guide to Android RecyclerView and CardView](http://www.binpress.com/tutorial/android-l-recyclerview-and-cardview-tutorial/156) 4. [Android-RecyclerView-Item点击事件设置](http://blog.csdn.net/guxiao1201/article/details/40423361) 5. [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) +6. [Create RecyclerView with multiple view type](http://doublewong.com/2014/create-recyclerview-with-multiple-view-type/) ### RandomAccessFile From 5103c2e0f19ff04cf1c2d2194becd3fdff0d6d47 Mon Sep 17 00:00:00 2001 From: jywang Date: Wed, 16 Sep 2015 09:21:57 +0800 Subject: [PATCH 05/85] Add a simple third part library for json Add a simple third part library for json.Whne you want to deserialize json to object,just add some annotation and use just only one line to dot it. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b3efe73..b4b09a2 100644 --- a/README.md +++ b/README.md @@ -184,6 +184,7 @@ 1. [Android系列---JSON数据解析](http://www.cnblogs.com/xiaoluo501395377/p/3446605.html) 2. [android json解析及简单例子](http://blog.csdn.net/lilu_leo/article/details/7000077) 3. [Android开源库--Gson谷歌官方json解析库](http://www.cnblogs.com/leestar54/p/4212318.html) +4. [DataContract4A-简化Json解析与生成](https://github.com/jywanghold/DataContract4A) ## L From 6eddb0fe04a047f13452eb02ef0c7792ab92514d Mon Sep 17 00:00:00 2001 From: Troy Liu Date: Wed, 16 Sep 2015 10:43:49 +0800 Subject: [PATCH 06/85] add something about Unit Test --- README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b3efe73..602430f 100644 --- a/README.md +++ b/README.md @@ -247,7 +247,7 @@ ### Picasso -1. [Picasso官方网站及javadoc](http://square.github.io/picasso/) +1. [Picasso官方网站及javadoc](http://square.github.io/picasso/) 2. [Android图片下载缓存库picasso解析](http://blog.csdn.net/xu_fu/article/details/17043231) ## R @@ -326,6 +326,13 @@ 8. [Java(Android)中线程池的使用](http://landerlyoung.github.io/blog/2014/09/23/javazhong-xian-cheng-chi-de-shi-yong/) 9. [Java(Android)线程池](http://www.trinea.cn/android/java-android-thread-pool/) +## U + +### Unit Test + +1. [Android单元测试](http://www.cnblogs.com/tianzhijiexian/p/4296055.html) +2. [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/) + ## V ### ViewPager From 3d12ae728e6c3f7cdece074de96c1c651c66efcd Mon Sep 17 00:00:00 2001 From: Troy Liu Date: Wed, 16 Sep 2015 21:54:59 +0800 Subject: [PATCH 07/85] add translate article for 'Download #1' --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 63066a5..7bc06c6 100644 --- a/README.md +++ b/README.md @@ -103,7 +103,7 @@ ### Download -1. [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) +1. [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) 2. [Java 服务器端支持断点续传的源代码【支持快车、迅雷】](http://blog.csdn.net/defonds/article/details/7074352) 3. [Java 多线程断点下载文件](http://www.cnblogs.com/hoojo/archive/2011/09/30/2196767.html) 4. [Android 后台Service下载 (一)](http://blog.csdn.net/qingye_love/article/details/14163511) From 8046a64961411f26735a4ba88dd4b16bb444da84 Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Wed, 16 Sep 2015 22:26:42 +0800 Subject: [PATCH 08/85] update 2015-09-16 22:26 --- README.md | 45 ++++++++++++++++++++++++++++++--------------- 1 file changed, 30 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 63066a5..a2fc9a7 100644 --- a/README.md +++ b/README.md @@ -2,11 +2,13 @@ 学习 Android 至今,大大小小的坑没少踩,庆幸的是,在强大的搜索引擎与无私奉献的人们的帮助下,我遇到的坑都顺利地被填平了。 -为了便于日后遇到同样的问题时,能免于再次搜索带来的麻烦,我养成了收藏书签的习惯,随着书签(Tips)的日积月累,我想,是时候该有这个项目了。 +为了便于日后在遇到同样的问题时,能免于因再次搜索所带来的麻烦,我养成了收藏书签的习惯,随着书签(Tips)的日积月累,我想,是时候该有这个项目了。 -**如果你是个 Android 新人,那么我希望这份列表,可以成为你踩到坑时的不完全手册。** +**如果你是个 Android 新人,又不善于搜索或不知道从何开始,那么我希望这份列表,可以成为你踩到坑时的不完全手册。** -当然,这份列表一定会有遗漏,如果不幸,这里没有你所踩到的坑,或者对于某个问题你有更好的 Tips,欢迎分享,让我们一起来维护这个项目!你可以通过 [Commit](https://github.com/tangqi92/Android-Tips/issues) 或者 [Pull requests](https://github.com/tangqi92/Android-Tips/pulls) 的形式,当然也欢迎 `Star` 与 `Fork` :) +当然,这份列表一定会有遗漏,如果不幸,这里没有你所踩到的坑,或者对于某个问题你有更好的 Tips,欢迎与大家分享,让我们一起来维护这个项目! + +你可以通过 [Pull requests](https://github.com/tangqi92/Android-Tips/pulls) 的形式进行提交,当然也欢迎 `Star` 与 `Fork` :) >由于本项目面向的群体为初学者,所以列表的知识点以初级为主,资源大多数为中文,如遇到少数无法访问的情况,请自备梯子。 @@ -80,10 +82,6 @@ 2. [Android CardView Example](http://www.truiton.com/2015/03/android-cardview-example/) 3. [Android CardView Widget – Add Cards to a List using RecyclerView](http://techlovejump.com/android-cardview-widget-example-add-to-list-using-recyclerview/) -### Check - -1. [How to check visibility of software keyboard in Android?](http://stackoverflow.com/questions/2150078/how-to-check-visibility-of-software-keyboard-in-android) - ### Configuration Change 1. [Android Configuration change引发的问题及解决方法](http://blog.csdn.net/aliaooooo/article/details/23606179?utm_source=tuicool) @@ -213,9 +211,16 @@ ## N +### NavigationView + +1. [Easy Navigation Drawer with Design Support Library](http://blog.grafixartist.com/easy-navigation-drawer-with-design-support-library/) + +### Notification + 1. [Android——Notifications笔记](http://segmentfault.com/a/1190000000402154) 2. [Android学习之Notification的简单使用](http://blog.csdn.net/cjllife/article/details/8565370) + ## O ### ORMLite @@ -266,6 +271,7 @@ 4. [Android-RecyclerView-Item点击事件设置](http://blog.csdn.net/guxiao1201/article/details/40423361) 5. [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) 6. [Create RecyclerView with multiple view type](http://doublewong.com/2014/create-recyclerview-with-multiple-view-type/) +7. [Simple RecyclerView Divider](https://gist.github.com/polbins/e37206fbc444207c0e92) ### RandomAccessFile @@ -315,6 +321,11 @@ 1. [Remove underline from links in TextView](http://stackoverflow.com/questions/4096851/remove-underline-from-links-in-textview-android) +### TouchEvent + +1. [两分钟彻底让你明白Android中onInterceptTouchEvent与onTouchEvent(图文)!](http://blog.csdn.net/android_tutor/article/details/7193090) +2. [MotionEvent事件在onInterceptTouchEvent()、onTouchEvent()中的传递顺序](http://www.cnblogs.com/rocky_yi/archive/2011/01/21/1941522.html#) + ### Thread 1. [ThreadPoolExecutor运转机制详解](http://blog.csdn.net/cutesource/article/details/6061229) @@ -439,17 +450,21 @@ --- +### 设计模式 + +1. [Java开发中的23种设计模式详解](http://zz563143188.iteye.com/blog/1847029) +2. [MVC,MVP 和 MVVM 的图示](http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html) + +### Others + 1. [THE DEX 64K LIMIT IS NOT A PROBLEM ANYMORE, ALMOST](http://www.mutualmobile.com/posts/dex-64k-limit-not-problem-anymore-almost) 2. [Android 4.4从图库选择图片,获取图片路径并裁剪](http://blog.csdn.net/tempersitu/article/details/20557383) 3. [浅析android应用增量升级](http://blog.csdn.net/hmg25/article/details/8100896) 4. [Android四大基本组件介绍与生命周期](http://www.cnblogs.com/bravestarrhu/archive/2012/05/02/2479461.html) 5. [Android代码优化——使用Android lint工具](http://blog.csdn.net/xyz_lmn/article/details/14222939) 6. [Android 插件化 动态升级](http://www.trinea.cn/android/android-plugin/) -7. [两分钟彻底让你明白Android中onInterceptTouchEvent与onTouchEvent(图文)!](http://blog.csdn.net/android_tutor/article/details/7193090) -8. [MotionEvent事件在onInterceptTouchEvent()、onTouchEvent()中的传递顺序](http://www.cnblogs.com/rocky_yi/archive/2011/01/21/1941522.html#) -9. [Java String StringBuilder StringBuffer](http://www.stormzhang.com/java/2014/08/08/java-string-stringbuilder-stringbuffer/) -10. [tools:context=".MainActivity的作用](http://blog.csdn.net/caiwenfeng_for_23/article/details/8373569) -11. [MVC,MVP 和 MVVM 的图示](http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html) -12. [关于APK瘦身值得分享的一些经验](http://www.jianshu.com/p/bd90dee57ad0) -13. [Java开发中的23种设计模式详解](http://zz563143188.iteye.com/blog/1847029) -14. [性能优化之数据库优化](http://www.trinea.cn/android/database-performance/) +7. [Java String StringBuilder StringBuffer](http://www.stormzhang.com/java/2014/08/08/java-string-stringbuilder-stringbuffer/) +8. [tools:context=".MainActivity的作用](http://blog.csdn.net/caiwenfeng_for_23/article/details/8373569) +9. [关于APK瘦身值得分享的一些经验](http://www.jianshu.com/p/bd90dee57ad0) +10. [性能优化之数据库优化](http://www.trinea.cn/android/database-performance/) +11. [How to check visibility of software keyboard in Android?](http://stackoverflow.com/questions/2150078/how-to-check-visibility-of-software-keyboard-in-android) From 4dbe64372e526f2c88d5af13202338495070805b Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Wed, 16 Sep 2015 22:43:57 +0800 Subject: [PATCH 09/85] update 2015-09-16 22:43 --- README.md | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/README.md b/README.md index a2fc9a7..316061e 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,8 @@ 2. [Android中AsyncTask的简单用法](http://blog.csdn.net/cjjky/article/details/6684959) 3. [Android开发者:你真的会用AsyncTask吗?](http://code.oneapm.com/android/2015/06/02/android1/) +--- + ## B ### Bitmap @@ -68,6 +70,8 @@ 2. [玩转Android---组件篇---Broadcast Receiver(广播接收器)](http://hualang.iteye.com/blog/1003374) 3. [【Android】动态注册广播接收器](http://blog.csdn.net/etzmico/article/details/7317528) +--- + ## C ### Callback @@ -97,6 +101,8 @@ 1. [CoordinatorLayout与滚动的处理](http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0717/3196.html) 2. [Handling Scrolls with CoordinatorLayout](https://guides.codepath.com/android/Handling-Scrolls-with-CoordinatorLayout) +--- + ## D ### Download @@ -108,6 +114,8 @@ 5. [Android网络编程 --断点续传下载文件](http://blog.csdn.net/wwj_748/article/details/20146869) 6. [android 多线程断点续传下载 一](http://blog.csdn.net/shimiso/article/details/6763664) +--- + ## E ### EventBus @@ -115,6 +123,8 @@ 1. [EventBus使用详解(一)——初步使用EventBus](http://blog.csdn.net/harvic880925/article/details/40660137) 2. [快速Android开发系列通信篇之EventBus](http://www.cnblogs.com/angeldevil/p/3715934.html) +--- + ## F ### Fragment - 碎片 @@ -128,6 +138,8 @@ 6. [android Fragments详解四:管理fragment](http://www.cnblogs.com/mybkn/articles/2455138.html) 7. [Android Fragment 嵌套使用(Nested Fragments)](http://blog.csdn.net/top_code/article/details/37343075) +--- + ## G ### Glide @@ -156,6 +168,8 @@ 1. [Android入门第八篇之GridView(九宫图)](http://blog.csdn.net/hellogv/article/details/4567095) 2. [用Volley让GridView加载网络图片](http://www.cnblogs.com/tianzhijiexian/p/4277873.html) +--- + ## I ### ImageView @@ -175,6 +189,8 @@ 4. [startActivityForResult用法详解](http://www.cnblogs.com/linjiqin/archive/2011/06/03/2071956.html) 5. [Android 开发笔记——通过 Intent 传递类对象](http://www.cnblogs.com/shaocm/archive/2013/01/08/2851248.html) +--- + ## J ### Json @@ -184,6 +200,8 @@ 3. [Android开源库--Gson谷歌官方json解析库](http://www.cnblogs.com/leestar54/p/4212318.html) 4. [DataContract4A-简化Json解析与生成](https://github.com/jywanghold/DataContract4A) +--- + ## L ### ListFragment @@ -195,6 +213,8 @@ 1. [在Activity中响应ListView内部按钮的点击事件](http://www.cnblogs.com/ivan-xu/p/4124967.html) +--- + ## M ### MessageDigest @@ -209,6 +229,8 @@ 3. [谢谷歌大神传我动画设计30年功力](http://www.zcool.com.cn/article/ZMTU5MzAw.html#jtss-tsina) 4. [Codelab for Android Design Support Library used in I/O Rewind Bangkok session](http://inthecheesefactory.com/blog/android-design-support-library-codelab/en) +--- + ## N ### NavigationView @@ -220,6 +242,7 @@ 1. [Android——Notifications笔记](http://segmentfault.com/a/1190000000402154) 2. [Android学习之Notification的简单使用](http://blog.csdn.net/cjllife/article/details/8565370) +--- ## O @@ -228,6 +251,8 @@ 1. [Android 快速开发系列 ORMLite 框架最佳实践](http://blog.csdn.net/lmj623565791/article/details/39122981) 2. [Android ORM框架之 ORMLite](https://www.zybuluo.com/flyouting/note/6996) +--- + ## P ### Parcelable @@ -256,6 +281,8 @@ 1. [Picasso官方网站及javadoc](http://square.github.io/picasso/) 2. [Android图片下载缓存库picasso解析](http://blog.csdn.net/xu_fu/article/details/17043231) +--- + ## R ### Reference @@ -277,6 +304,8 @@ 1. [Java RandomAccessFile用法](http://blog.csdn.net/akon_vm/article/details/7429245) +--- + ## S ### Serializable @@ -315,6 +344,8 @@ 1. [Android SwipeRefreshLayout](http://www.stormzhang.com/android/2014/03/29/android-swiperefreshlayout/) +--- + ## T ### Textview @@ -338,6 +369,8 @@ 8. [Java(Android)中线程池的使用](http://landerlyoung.github.io/blog/2014/09/23/javazhong-xian-cheng-chi-de-shi-yong/) 9. [Java(Android)线程池](http://www.trinea.cn/android/java-android-thread-pool/) +--- + ## U ### Unit Test @@ -345,6 +378,8 @@ 1. [Android单元测试](http://www.cnblogs.com/tianzhijiexian/p/4296055.html) 2. [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/) +--- + ## V ### ViewPager @@ -374,6 +409,8 @@ 1. [Android Volley完全解析(一),初识Volley的基本用法](http://blog.csdn.net/guolin_blog/article/details/17482095) 2. [Android库Volley的使用介绍](https://bxbxbai.github.io/2014/09/14/android-working-with-volley/) +--- + ## W ### WebView @@ -388,6 +425,8 @@ 8. [在WebView中如何让JS与Java安全地互相调用](http://www.pedant.cn/2014/07/04/webview-js-java-interface-research/) 9. [Android WebView的Js对象注入漏洞解决方案](http://blog.csdn.net/leehong2005/article/details/11808557) +--- + ## 其他 ### 自定义控件 @@ -455,6 +494,8 @@ 1. [Java开发中的23种设计模式详解](http://zz563143188.iteye.com/blog/1847029) 2. [MVC,MVP 和 MVVM 的图示](http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html) +--- + ### Others 1. [THE DEX 64K LIMIT IS NOT A PROBLEM ANYMORE, ALMOST](http://www.mutualmobile.com/posts/dex-64k-limit-not-problem-anymore-almost) From 558a04cd9d0845dcd1d054a6168d8ece9907c38d Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Wed, 16 Sep 2015 22:47:17 +0800 Subject: [PATCH 10/85] update 2015-09-16 22:47 --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 5293079..7a87831 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,8 @@ >由于本项目面向的群体为初学者,所以列表的知识点以初级为主,资源大多数为中文,如遇到少数无法访问的情况,请自备梯子。 +--- + ## A ### ADB From 10b6aaeb38b195c5d8b156e0258309cb36b48035 Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Thu, 17 Sep 2015 16:28:44 +0800 Subject: [PATCH 11/85] update 2015-09-17 16:28 --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 7a87831..abe091c 100644 --- a/README.md +++ b/README.md @@ -310,6 +310,10 @@ ## S +### SearchView + +1. [详细解读Android中的搜索框(三)—— SearchView](http://www.cnblogs.com/tianzhijiexian/p/4226675.html) + ### Serializable 1. [Android系统中Parcelable和Serializable的区别](http://greenrobot.me/devpost/android-parcelable-serializable/) From 31566cb8d0e3e13144ad836662cd7f2fb0664421 Mon Sep 17 00:00:00 2001 From: Troy Liu Date: Fri, 18 Sep 2015 00:43:57 +0800 Subject: [PATCH 12/85] add URLChecker for repo --- .gitignore | 2 + Utils/README.md | 10 ++++ Utils/URLChecker/BadUrlsSaver.java | 37 ++++++++++++++ Utils/URLChecker/Main.java | 24 +++++++++ Utils/URLChecker/NetUtils.java | 80 ++++++++++++++++++++++++++++++ Utils/URLChecker/UrlMatcher.java | 19 +++++++ badUrls.txt | 12 +++++ 7 files changed, 184 insertions(+) create mode 100644 .gitignore create mode 100644 Utils/README.md create mode 100644 Utils/URLChecker/BadUrlsSaver.java create mode 100644 Utils/URLChecker/Main.java create mode 100644 Utils/URLChecker/NetUtils.java create mode 100644 Utils/URLChecker/UrlMatcher.java create mode 100644 badUrls.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f9d8038 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +Utils/URLChecker/out +Utils/URLChecker/*.class diff --git a/Utils/README.md b/Utils/README.md new file mode 100644 index 0000000..f1ffc96 --- /dev/null +++ b/Utils/README.md @@ -0,0 +1,10 @@ +### 检查URL连接是否有效的小工具 +--- + +因为有人问起,这个repo里面有些连接失效、无法访问或者被墙等。所有就打算把那些正常访问的连接修改或者转移到repo里面。 +但是不可能一个一个链接测试啊,所以就写了这个java小程序 + +我只是一个初学者,可能写得很挫,但是求别嫌弃 == + +`Main.java`是入口程序,默认会在repo的根目录下更新失效的连接。 +> 以200返回值为连接成功的标准 diff --git a/Utils/URLChecker/BadUrlsSaver.java b/Utils/URLChecker/BadUrlsSaver.java new file mode 100644 index 0000000..0edf92a --- /dev/null +++ b/Utils/URLChecker/BadUrlsSaver.java @@ -0,0 +1,37 @@ +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.util.Map; + +/** + * Created by Troy Liu on 2015,����,17, 23:21. + */ +public class BadUrlsSaver { + + /** + * �������������ַ��repoĿ¼�� + * + * @param map + * @param isSaveAlLMatterUrls + * @throws IOException + */ + public static void save(Map map, boolean isSaveAlLMatterUrls) throws IOException { + File file = new File("..\\..\\badUrls.txt"); + if (!file.exists()) { + file.createNewFile(); + } + FileWriter writer = new FileWriter(file); + BufferedWriter bufferedWriter = new BufferedWriter(writer); + for (Map.Entry entry : map.entrySet()) { + if (isSaveAlLMatterUrls) { + bufferedWriter.write(entry.getValue() + "\t\t" + entry.getKey() + "\r\n"); + } else { + if (entry.getValue().equals("TIMEOUT")) { + bufferedWriter.write(entry.getValue() + "\t\t" + entry.getKey() + "\r\n"); + } + } + } + bufferedWriter.close(); + } +} diff --git a/Utils/URLChecker/Main.java b/Utils/URLChecker/Main.java new file mode 100644 index 0000000..82c15f0 --- /dev/null +++ b/Utils/URLChecker/Main.java @@ -0,0 +1,24 @@ +import java.io.IOException; +import java.util.Map; + +/** + * Created by Troy Liu on 2015,����,17, 22:10. + */ +public class Main { + + // �Ƿ񱣴����������������url + public static final boolean saveAllMatterUrls = true; + + public static void main(String[] args) { + String urlBundle = "https://raw.githubusercontent.com/tangqi92/Android-Tips/master/README.md"; + Map matterUrls = NetUtils.getNotAvailableUrl(urlBundle); + for (Map.Entry entry : matterUrls.entrySet()) { + System.out.println(entry.getValue() + "--->" + entry.getKey()); + } + try { + BadUrlsSaver.save(matterUrls, saveAllMatterUrls); + } catch (IOException e) { + e.printStackTrace(); + } + } +} diff --git a/Utils/URLChecker/NetUtils.java b/Utils/URLChecker/NetUtils.java new file mode 100644 index 0000000..5a1d3be --- /dev/null +++ b/Utils/URLChecker/NetUtils.java @@ -0,0 +1,80 @@ +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * Created by Troy Liu on 2015,九月,17, 22:16. + */ +public class NetUtils { + + public static final int TIME_OUT = 1000; + + public static String getBundle(String urlMain) { + StringBuilder stringBuilder = null; + try { + URL url = new URL(urlMain); + HttpURLConnection connection = (HttpURLConnection) url.openConnection(); + InputStream inputStream; + stringBuilder = new StringBuilder(); + BufferedReader bufferedReader = null; + if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) { + inputStream = connection.getInputStream(); + bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); + String line = null; + while ((line = bufferedReader.readLine()) != null) { + stringBuilder.append(line); + } + } + bufferedReader.close(); + connection.disconnect(); + } catch (MalformedURLException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return stringBuilder.toString(); + } + + public static Map getNotAvailableUrl(String urlMain) { + Map matterUrls = new HashMap(); + String response = getBundle(urlMain); + List urlList = UrlMatcher.getUrlStr(response); + for (String url : urlList) { + checkUrl(url, matterUrls); + } + return matterUrls; + } + + private static void checkUrl(String url, Map map) { + int responseCode = 0; + try { + System.out.print("checking [" + url + "]"); + URL tmp = new URL(url); + HttpURLConnection connection = (HttpURLConnection) tmp.openConnection(); + connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36"); + connection.setRequestMethod("GET"); + connection.setConnectTimeout(TIME_OUT); + responseCode = connection.getResponseCode(); + if (responseCode == HttpURLConnection.HTTP_OK) { + System.out.println("----->[OK]"); + } else { + System.out.println("----->[BAD]" + "; Code--->" + responseCode); + map.put(url, "BAD"); + } + connection.disconnect(); + } catch (MalformedURLException e) { + e.printStackTrace(); + } catch (IOException e) { + System.out.println("[Time Out]"); + map.put(url, "TIMEOUT"); + } + } + +} diff --git a/Utils/URLChecker/UrlMatcher.java b/Utils/URLChecker/UrlMatcher.java new file mode 100644 index 0000000..2d3c23d --- /dev/null +++ b/Utils/URLChecker/UrlMatcher.java @@ -0,0 +1,19 @@ +import java.util.ArrayList; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * Created by Troy Liu on 2015,����,17, 22:11. + */ +public class UrlMatcher { + public static List getUrlStr(String response) { + Pattern pattern = Pattern.compile("(http|ftp|https):\\/\\/[\\w\\-_]+(\\.[\\w\\-_]+)+([\\w\\-\\.,@?^=%&:/~\\+#]*[\\w\\-\\@?^=%&/~\\+#])?"); + Matcher matcher = pattern.matcher(response); + List urlList = new ArrayList(); + while (matcher.find()) { + urlList.add(matcher.group()); + } + return urlList; + } +} diff --git a/badUrls.txt b/badUrls.txt new file mode 100644 index 0000000..b5f4531 --- /dev/null +++ b/badUrls.txt @@ -0,0 +1,12 @@ +TIMEOUT https://gist.github.com/polbins/e37206fbc444207c0e92 +TIMEOUT http://developer.android.com/guide/topics/resources/runtime-changes.html +TIMEOUT https://developer.android.com/training/system-ui/immersive.html +TIMEOUT https://www.youtube.com/watch?v=5U_BfrXV90I +TIMEOUT http://chenqichao.me/2014/05/13/003-Android-Studio-AIDL/ +TIMEOUT http://foocoder.com/blog/androidzhong-de-kua-jin-cheng-tong-xin-de-shi-xian- +TIMEOUT http://source.android.com/source/code-style.html +TIMEOUT http://li2.me/android/Displaying-Lists-with-ListFragment/ +TIMEOUT http://droidyue.com/blog/2014/09/20/interaction-between-java-and-javascript-in-android/ +TIMEOUT http://baoyz.com/android/2014/10/21/android-palette-use/ +TIMEOUT https://www.zybuluo.com/flyouting/note/6996 +BAD http://snowdream86.gitbooks.io/github-cheat-sheet/content/zh/index.html From 1aa0edd5e24698a90f24703153d0768e97d3e36b Mon Sep 17 00:00:00 2001 From: Troy Liu Date: Fri, 18 Sep 2015 04:02:54 +0800 Subject: [PATCH 13/85] add MultiThreadFunction to URLChecker --- Utils/URLChecker/BadUrlsSaver.java | 4 +- Utils/URLChecker/Main.java | 8 +++- Utils/URLChecker/NetUtils.java | 73 ++++++++++++++++++++++-------- Utils/URLChecker/UrlMatcher.java | 14 +++++- badUrls.txt | 17 +++---- 5 files changed, 82 insertions(+), 34 deletions(-) diff --git a/Utils/URLChecker/BadUrlsSaver.java b/Utils/URLChecker/BadUrlsSaver.java index 0edf92a..b617340 100644 --- a/Utils/URLChecker/BadUrlsSaver.java +++ b/Utils/URLChecker/BadUrlsSaver.java @@ -5,12 +5,12 @@ import java.util.Map; /** - * Created by Troy Liu on 2015,����,17, 23:21. + * Created by Troy Liu on 2015,九月,17, 23:21. */ public class BadUrlsSaver { /** - * �������������ַ��repoĿ¼�� + * 保存有问题的网址到repo目录下 * * @param map * @param isSaveAlLMatterUrls diff --git a/Utils/URLChecker/Main.java b/Utils/URLChecker/Main.java index 82c15f0..b835494 100644 --- a/Utils/URLChecker/Main.java +++ b/Utils/URLChecker/Main.java @@ -2,14 +2,15 @@ import java.util.Map; /** - * Created by Troy Liu on 2015,����,17, 22:10. + * Created by Troy Liu on 2015,九月,17, 22:10. */ public class Main { - // �Ƿ񱣴����������������url + // 是否保存所有有连接问题的url public static final boolean saveAllMatterUrls = true; public static void main(String[] args) { + long before = System.currentTimeMillis(); String urlBundle = "https://raw.githubusercontent.com/tangqi92/Android-Tips/master/README.md"; Map matterUrls = NetUtils.getNotAvailableUrl(urlBundle); for (Map.Entry entry : matterUrls.entrySet()) { @@ -19,6 +20,9 @@ public static void main(String[] args) { BadUrlsSaver.save(matterUrls, saveAllMatterUrls); } catch (IOException e) { e.printStackTrace(); + } finally { + long after = System.currentTimeMillis(); + System.out.println("耗时:" + (after - before) / 1000 + "s"); } } } diff --git a/Utils/URLChecker/NetUtils.java b/Utils/URLChecker/NetUtils.java index 5a1d3be..bec810a 100644 --- a/Utils/URLChecker/NetUtils.java +++ b/Utils/URLChecker/NetUtils.java @@ -8,21 +8,26 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +interface ICallback { + void finish(int code); + + void timeout(); +} /** * Created by Troy Liu on 2015,九月,17, 22:16. */ public class NetUtils { - public static final int TIME_OUT = 1000; - public static String getBundle(String urlMain) { - StringBuilder stringBuilder = null; + StringBuilder stringBuilder = new StringBuilder(); try { URL url = new URL(urlMain); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); InputStream inputStream; - stringBuilder = new StringBuilder(); BufferedReader bufferedReader = null; if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) { inputStream = connection.getInputStream(); @@ -32,7 +37,9 @@ public static String getBundle(String urlMain) { stringBuilder.append(line); } } - bufferedReader.close(); + if (bufferedReader != null) { + bufferedReader.close(); + } connection.disconnect(); } catch (MalformedURLException e) { e.printStackTrace(); @@ -43,38 +50,64 @@ public static String getBundle(String urlMain) { } public static Map getNotAvailableUrl(String urlMain) { - Map matterUrls = new HashMap(); + ExecutorService threadPool = Executors.newCachedThreadPool(); + final Map matterUrls = new HashMap(); String response = getBundle(urlMain); List urlList = UrlMatcher.getUrlStr(response); - for (String url : urlList) { - checkUrl(url, matterUrls); + for (final String url : urlList) { + threadPool.execute(new ItemThread(url, new ICallback() { + @Override + public void finish(int code) { + matterUrls.put(url, "BAD"); + } + + @Override + public void timeout() { + matterUrls.put(url, "TIMEOUT"); + } + })); } - return matterUrls; + threadPool.shutdown(); + while (true) { + if (threadPool.isTerminated()) { + return matterUrls; + } + } + } + +} + +class ItemThread implements Runnable { + + private final String url; + private ICallback callback; + + public ItemThread(String url, ICallback callback) { + this.callback = callback; + this.url = url; } - private static void checkUrl(String url, Map map) { - int responseCode = 0; + @Override + public void run() { try { - System.out.print("checking [" + url + "]"); URL tmp = new URL(url); HttpURLConnection connection = (HttpURLConnection) tmp.openConnection(); connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36"); connection.setRequestMethod("GET"); - connection.setConnectTimeout(TIME_OUT); - responseCode = connection.getResponseCode(); + connection.setConnectTimeout(1000); + int responseCode = connection.getResponseCode(); if (responseCode == HttpURLConnection.HTTP_OK) { - System.out.println("----->[OK]"); + System.out.println("checking [" + url + "]" + "----->[OK]"); } else { - System.out.println("----->[BAD]" + "; Code--->" + responseCode); - map.put(url, "BAD"); + System.out.println("checking [" + url + "]" + "----->[BAD]" + "; Code--->" + responseCode); + callback.finish(responseCode); } connection.disconnect(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { - System.out.println("[Time Out]"); - map.put(url, "TIMEOUT"); + System.out.println("checking [" + url + "]" + "[Time Out]"); + callback.timeout(); } } - } diff --git a/Utils/URLChecker/UrlMatcher.java b/Utils/URLChecker/UrlMatcher.java index 2d3c23d..534a0df 100644 --- a/Utils/URLChecker/UrlMatcher.java +++ b/Utils/URLChecker/UrlMatcher.java @@ -4,10 +4,10 @@ import java.util.regex.Pattern; /** - * Created by Troy Liu on 2015,����,17, 22:11. + * Created by Troy Liu on 2015,九月,17, 22:11. */ public class UrlMatcher { - public static List getUrlStr(String response) { + public static List getUrlStr(String response) { Pattern pattern = Pattern.compile("(http|ftp|https):\\/\\/[\\w\\-_]+(\\.[\\w\\-_]+)+([\\w\\-\\.,@?^=%&:/~\\+#]*[\\w\\-\\@?^=%&/~\\+#])?"); Matcher matcher = pattern.matcher(response); List urlList = new ArrayList(); @@ -16,4 +16,14 @@ public static List getUrlStr(String response) { } return urlList; } + + public static String getUrlTitle(String urlResponse) { + Pattern pattern = Pattern.compile(".*?"); + Matcher matcher = pattern.matcher(urlResponse); + String title = null; + while (matcher.find()) { + title = matcher.group(); + } + return title; + } } diff --git a/badUrls.txt b/badUrls.txt index b5f4531..c976db1 100644 --- a/badUrls.txt +++ b/badUrls.txt @@ -1,12 +1,13 @@ TIMEOUT https://gist.github.com/polbins/e37206fbc444207c0e92 -TIMEOUT http://developer.android.com/guide/topics/resources/runtime-changes.html TIMEOUT https://developer.android.com/training/system-ui/immersive.html -TIMEOUT https://www.youtube.com/watch?v=5U_BfrXV90I -TIMEOUT http://chenqichao.me/2014/05/13/003-Android-Studio-AIDL/ -TIMEOUT http://foocoder.com/blog/androidzhong-de-kua-jin-cheng-tong-xin-de-shi-xian- -TIMEOUT http://source.android.com/source/code-style.html -TIMEOUT http://li2.me/android/Displaying-Lists-with-ListFragment/ -TIMEOUT http://droidyue.com/blog/2014/09/20/interaction-between-java-and-javascript-in-android/ +BAD http://foocoder.com/blog/androidzhong-de-kua-jin-cheng-tong-xin-de-shi-xian- TIMEOUT http://baoyz.com/android/2014/10/21/android-palette-use/ -TIMEOUT https://www.zybuluo.com/flyouting/note/6996 BAD http://snowdream86.gitbooks.io/github-cheat-sheet/content/zh/index.html +TIMEOUT https://www.zybuluo.com/flyouting/note/6996 +TIMEOUT http://developer.android.com/guide/topics/resources/runtime-changes.html +TIMEOUT http://toughcoder.net/blog/2015/04/30/android-fragment-the-bad-parts/ +TIMEOUT https://www.youtube.com/watch?v=5U_BfrXV90I +TIMEOUT http://www.cnblogs.com/zwl12549/archive/2011/04/13/2015366.html +TIMEOUT http://source.android.com/source/code-style.html +TIMEOUT http://drakeet.me/android-studio +TIMEOUT http://www.truiton.com/2015/03/android-cardview-example/ From 5c48b22869b3b62ef4e5d19f5a551ab8271d49e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Fri, 18 Sep 2015 15:03:23 +0800 Subject: [PATCH 14/85] Update 9.18 README.md --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index abe091c..7c43efa 100644 --- a/README.md +++ b/README.md @@ -140,6 +140,10 @@ 6. [android Fragments详解四:管理fragment](http://www.cnblogs.com/mybkn/articles/2455138.html) 7. [Android Fragment 嵌套使用(Nested Fragments)](http://blog.csdn.net/top_code/article/details/37343075) +### FlowLayout - 自定义流布局 + +1. [Android 自定义ViewGroup - 实现FlowLayout - 本文出自【张鸿洋的博客】](http://blog.csdn.net/lmj623565791/article/details/38352503) + --- ## G @@ -392,6 +396,8 @@ 1. [ViewPager + Fragment实现滑动标签页](http://blog.csdn.net/lizhenmingdirk/article/details/13631813) 2. [【移动开发】Android中Fragment+ViewPager的配合使用](http://smallwoniu.blog.51cto.com/3911954/1322746) +3. [Android 手把手教您自定义ViewGroup(一)本文出自:【张鸿洋的博客】](http://blog.csdn.net/lmj623565791/article/details/38339817) +4. ### View From eb62b0046cabc27cd8bbd088e32d39b4fd3fc58d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Fri, 18 Sep 2015 15:28:10 +0800 Subject: [PATCH 15/85] add catalogue --- README.md | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7c43efa..9851224 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,40 @@ --- -## A +## 目录 + + * [A](#a) + * [B](#b) + * [C](#c) + * [D](#d) + * [E](#e) + * [F](#f) + * [G](#g) + * [H](#h) + * [I](#i) + * [J](#j) + * [K](#k) + * [L](#l) + * [M](#m) + * [N](#n) + * [O](#o) + * [P](#p) + * [Q](#q) + * [R](#r) + * [S](#s) + * [T](#t) + * [U](#u) + * [V](#v) + * [W](#w) + * [X](#x) + * [Y](#y) + * [Z](#z) + * [其他](#其他) + * [设计模式](#设计模式) + * [Others](#others) + + +### A ### ADB From 968df593d1618ddc09133213130fcbda7e2f6458 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Fri, 18 Sep 2015 15:30:06 +0800 Subject: [PATCH 16/85] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9851224..7f178ab 100644 --- a/README.md +++ b/README.md @@ -46,6 +46,7 @@ * [设计模式](#设计模式) * [Others](#others) +--- ### A From abb47118e0bf90543397b06ea9bec25bdf9baddc Mon Sep 17 00:00:00 2001 From: Troy Liu Date: Fri, 18 Sep 2015 16:14:15 +0800 Subject: [PATCH 17/85] modified URLChecker --- .gitignore | 2 ++ Utils/URLChecker/BadUrlsSaver.java | 10 ++++++---- Utils/URLChecker/NetUtils.java | 26 ++++++++++++++++++++------ Utils/URLChecker/UrlMatcher.java | 12 ++++++++---- 4 files changed, 36 insertions(+), 14 deletions(-) diff --git a/.gitignore b/.gitignore index f9d8038..8bc3b81 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ Utils/URLChecker/out Utils/URLChecker/*.class +Utils/.idea +Utils/Utils.iml diff --git a/Utils/URLChecker/BadUrlsSaver.java b/Utils/URLChecker/BadUrlsSaver.java index b617340..d4badbd 100644 --- a/Utils/URLChecker/BadUrlsSaver.java +++ b/Utils/URLChecker/BadUrlsSaver.java @@ -18,20 +18,22 @@ public class BadUrlsSaver { */ public static void save(Map map, boolean isSaveAlLMatterUrls) throws IOException { File file = new File("..\\..\\badUrls.txt"); - if (!file.exists()) { - file.createNewFile(); + if (file.exists()) { + System.out.println("删除先前文件: " + (file.delete() ? "成功" : "失败")); } FileWriter writer = new FileWriter(file); BufferedWriter bufferedWriter = new BufferedWriter(writer); + int index = 0; for (Map.Entry entry : map.entrySet()) { if (isSaveAlLMatterUrls) { - bufferedWriter.write(entry.getValue() + "\t\t" + entry.getKey() + "\r\n"); + bufferedWriter.write((index++) + ". " + "[" + entry.getValue() + "]+ \"(\"+ entry.getKey() + +\")\"+ \"\r\n"); } else { if (entry.getValue().equals("TIMEOUT")) { - bufferedWriter.write(entry.getValue() + "\t\t" + entry.getKey() + "\r\n"); + bufferedWriter.write((index++) + ". " + "[" + entry.getValue() + "]+ \"(\"+ entry.getKey() + +\")\"+ \"\r\n"); } } } bufferedWriter.close(); } + } diff --git a/Utils/URLChecker/NetUtils.java b/Utils/URLChecker/NetUtils.java index bec810a..06d1ec7 100644 --- a/Utils/URLChecker/NetUtils.java +++ b/Utils/URLChecker/NetUtils.java @@ -4,6 +4,7 @@ import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.MalformedURLException; +import java.net.ProtocolException; import java.net.URL; import java.util.HashMap; import java.util.List; @@ -27,11 +28,16 @@ public static String getBundle(String urlMain) { try { URL url = new URL(urlMain); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); + connection.setRequestProperty("Content-Type", "text/html"); + connection.setRequestProperty("Accept-Charset", "utf-8"); + connection.setRequestProperty("Content-Type", "utf-8"); + connection.setRequestProperty("Charset", "utf-8"); + connection.setRequestMethod("GET"); InputStream inputStream; BufferedReader bufferedReader = null; if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) { inputStream = connection.getInputStream(); - bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); + bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8")); String line = null; while ((line = bufferedReader.readLine()) != null) { stringBuilder.append(line); @@ -58,7 +64,7 @@ public static Map getNotAvailableUrl(String urlMain) { threadPool.execute(new ItemThread(url, new ICallback() { @Override public void finish(int code) { - matterUrls.put(url, "BAD"); + matterUrls.put(url, "BAD" + "[Code: " + code + "]"); } @Override @@ -75,6 +81,7 @@ public void timeout() { } } + } class ItemThread implements Runnable { @@ -89,12 +96,14 @@ public ItemThread(String url, ICallback callback) { @Override public void run() { + HttpURLConnection connection = null; try { URL tmp = new URL(url); - HttpURLConnection connection = (HttpURLConnection) tmp.openConnection(); + connection = (HttpURLConnection) tmp.openConnection(); connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36"); connection.setRequestMethod("GET"); - connection.setConnectTimeout(1000); + connection.setReadTimeout(10000); + connection.setConnectTimeout(10000); int responseCode = connection.getResponseCode(); if (responseCode == HttpURLConnection.HTTP_OK) { System.out.println("checking [" + url + "]" + "----->[OK]"); @@ -102,12 +111,17 @@ public void run() { System.out.println("checking [" + url + "]" + "----->[BAD]" + "; Code--->" + responseCode); callback.finish(responseCode); } - connection.disconnect(); } catch (MalformedURLException e) { e.printStackTrace(); + } catch (ProtocolException e) { + e.printStackTrace(); } catch (IOException e) { - System.out.println("checking [" + url + "]" + "[Time Out]"); + System.out.println("checking [" + url + "]" + e.getMessage()); callback.timeout(); + } finally { + if (connection != null) { + connection.disconnect(); + } } } } diff --git a/Utils/URLChecker/UrlMatcher.java b/Utils/URLChecker/UrlMatcher.java index 534a0df..8b88b3a 100644 --- a/Utils/URLChecker/UrlMatcher.java +++ b/Utils/URLChecker/UrlMatcher.java @@ -8,15 +8,19 @@ */ public class UrlMatcher { public static List getUrlStr(String response) { - Pattern pattern = Pattern.compile("(http|ftp|https):\\/\\/[\\w\\-_]+(\\.[\\w\\-_]+)+([\\w\\-\\.,@?^=%&:/~\\+#]*[\\w\\-\\@?^=%&/~\\+#])?"); + Pattern pattern = Pattern.compile("[a-zA-z]+://[^\\s]*", Pattern.CASE_INSENSITIVE | Pattern.DOTALL); Matcher matcher = pattern.matcher(response); - List urlList = new ArrayList(); + List urls = new ArrayList(); while (matcher.find()) { - urlList.add(matcher.group()); + String tmp = matcher.group(); + int index = tmp.lastIndexOf(")"); + tmp = tmp.substring(0, index); + urls.add(tmp); } - return urlList; + return urls; } + public static String getUrlTitle(String urlResponse) { Pattern pattern = Pattern.compile(".*?"); Matcher matcher = pattern.matcher(urlResponse); From cfe131d7b963ad67522b2b22574dfa398464d1e8 Mon Sep 17 00:00:00 2001 From: Troy Liu Date: Fri, 18 Sep 2015 17:02:09 +0800 Subject: [PATCH 18/85] remove or add some links --- .gitignore | 1 + ...26\260\347\211\271\346\200\247-Palette.md" | 91 +++++++++++ Utils/Content/Handing_Runtime_Changes.md | 143 ++++++++++++++++++ Utils/Content/Simple_RecyclerView_Divider.md | 72 +++++++++ 4 files changed, 307 insertions(+) create mode 100644 "Utils/Content/Android_Lollipop_\346\226\260\347\211\271\346\200\247-Palette.md" create mode 100644 Utils/Content/Handing_Runtime_Changes.md create mode 100644 Utils/Content/Simple_RecyclerView_Divider.md diff --git a/.gitignore b/.gitignore index 8bc3b81..1afbd9e 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ Utils/URLChecker/out Utils/URLChecker/*.class Utils/.idea Utils/Utils.iml +Utils/out diff --git "a/Utils/Content/Android_Lollipop_\346\226\260\347\211\271\346\200\247-Palette.md" "b/Utils/Content/Android_Lollipop_\346\226\260\347\211\271\346\200\247-Palette.md" new file mode 100644 index 0000000..8809b6e --- /dev/null +++ "b/Utils/Content/Android_Lollipop_\346\226\260\347\211\271\346\200\247-Palette.md" @@ -0,0 +1,91 @@ +[原文链接](http://baoyz.com/android/2014/10/21/android-palette-use/) (*需要科学上网*) + +## Android Lollipop 新特性 - Palette + +> *Palette 可以从一张图片中提取颜色,我们可以把提取的颜色融入到App UI中,可以使UI风格更加美观融洽。比如,我们可以从图片中提取颜色设置给ActionBar做背景颜色,这样ActionBar的颜色就会随着显示图片的变化而变化。* + +Palette可以提取的颜色如下: ++ Vibrant (有活力的) ++ Vibrant dark(有活力的 暗色) ++ Vibrant light(有活力的 亮色) ++ Muted (柔和的) ++ Muted dark(柔和的 暗色) ++ Muted light(柔和的 亮色) + +### 使用方法 + +> *我们要想使用Palette,需要导入Palette的兼容库,`Gradle` 中添加下面依赖。* + +``` +compile 'com.android.support:palette-v7:21.0.0' +``` + +第一步,我们需要通过一个Bitmap对象来生成一个对应的Palette对象。 +Palette 提供了四个静态方法用来生成对象。 + ++ `Palette generate(Bitmap bitmap)` ++ `Palette generate(Bitmap bitmap, int numColors)` ++ `generateAsync(Bitmap bitmap, PaletteAsyncListener listener)` ++ `generateAsync(Bitmap bitmap, int numColors, final PaletteAsyncListener listener)` + +> *不难看出,生成方法分为`generate`(同步)和`generateAsync`(异步)两种,如果图片过大使用generate方法,可能会阻塞主线程,我们更倾向于使用`generateAsync`的方法,其实内部就是创建了一个`AsyncTask`。`generateAsync`方法需要一个`PaletteAsyncListener`对象用于监听生成完毕的回调。除了必须的`Bitmap`参数外,还可以传入一个`numColors`参数指定颜色数,默认是 16。* + +第二步,得到Palette对象后,就可以拿到提取到的颜色值 + ++ `Palette.getVibrantSwatch()` ++ `Palette.getDarkVibrantSwatch()` ++ `Palette.getLightVibrantSwatch()` ++ `Palette.getMutedSwatch()` ++ `Palette.getDarkMutedSwatch()` ++ `Palette.getLightMutedSwatch()` + +第三步,使用颜色,上面get方法中返回的是一个 `Swatch` 样本对象,这个样本对象是Palette的一个内部类,它提供了一些获取最终颜色的方法。 + ++ `getPopulation()`: 样本中的像素数量 ++ `getRgb()`: 颜色的RBG值 ++ `getHsl()`: 颜色的HSL值 ++ `getBodyTextColor()`: 主体文字的颜色值 ++ `getTitleTextColor()`: 标题文字的颜色值 + +> *通过 `getRgb()` 可以得到最终的颜色值并应用到UI中。`getBodyTextColor()` 和 `getTitleTextColor()` 可以得到此颜色下文字适合的颜色,这样很方便我们设置文字的颜色,使文字看起来更加舒服。* + +### 实例代码 + +```java +// 此方法可能会阻塞主线程,建议使用异步方法 +Palette palette = Palette.generate(bitmap); +// 异步提取Bitmap颜色 +Palette.generateAsync(bitmap, new Palette.PaletteAsyncListener() { + @Override + public void onGenerated(Palette palette) { + // 提取完毕 + // 有活力的颜色 + Palette.Swatch vibrant = palette.getVibrantSwatch(); + // 有活力的暗色 + Palette.Swatch darkVibrant = palette.getDarkVibrantSwatch(); + // 有活力的亮色 + Palette.Swatch lightVibrant = palette.getLightVibrantSwatch(); + // 柔和的颜色 + Palette.Swatch muted = palette.getMutedSwatch(); + // 柔和的暗色 + Palette.Swatch darkMuted = palette.getDarkMutedSwatch(); + // 柔和的亮色 + Palette.Swatch lightMuted = palette.getLightMutedSwatch(); +  + // 使用颜色 + // 修改Actionbar背景颜色 + getActionBar().setBackgroundDrawable(new ColorDrawable(vibrant.getRgb())); + // 修改文字的颜色 + mTextView.setTextColor(vibrant.getTitleTextColor()); + ... + // 根据需求选择不同效果的颜色应用 + }); +``` + +### 效果 + +![pic](https://raw.githubusercontent.com/baoboy/baoboy.github.io/master/images/screenshots/palette_3.png) + +### 代码下载 + +[https://github.com/baoyongzhang/android-lollipop-samples](https://github.com/baoyongzhang/android-lollipop-samples)中的[palette-sample](https://github.com/baoyongzhang/android-lollipop-samples/tree/master/palette-sample) diff --git a/Utils/Content/Handing_Runtime_Changes.md b/Utils/Content/Handing_Runtime_Changes.md new file mode 100644 index 0000000..9677977 --- /dev/null +++ b/Utils/Content/Handing_Runtime_Changes.md @@ -0,0 +1,143 @@ +# Handling Runtime Changes + +Some device configurations can change during runtime (such as screen orientation, keyboard availability, and language). When such a change occurs, Android restarts the running `Activity` (`onDestroy()` is called, followed by `onCreate()`). The restart behavior is designed to help your application adapt to new configurations by automatically reloading your application with alternative resources that match the new device configuration. + +To properly handle a restart, it is important that your activity restores its previous state through the normal `Activity` lifecycle, in which Android calls `onSaveInstanceState()` before it destroys your activity so that you can save data about the application state. You can then restore the state during `onCreate()` or `onRestoreInstanceState()`. + +To test that your application restarts itself with the application state intact, you should invoke configuration changes (such as changing the screen orientation) while performing various tasks in your application. Your application should be able to restart at any time without loss of user data or state in order to handle events such as configuration changes or when the user receives an incoming phone call and then returns to your application much later after your application process may have been destroyed. To learn how you can restore your activity state, read about the `Activity lifecycle`. + +However, you might encounter a situation in which restarting your application and restoring significant amounts of data can be costly and create a poor user experience. In such a situation, you have two other options: + +1. Retain an object during a configuration change + + Allow your activity to restart when a configuration changes, but carry a stateful object to the new instance of your activity. +2. Handle the configuration change yourself + Prevent the system from restarting your activity during certain configuration changes, but receive a callback when the configurations do change, so that you can manually update your activity as necessary. + + +### Retaining an Object During a Configuration Change + +If restarting your activity requires that you recover large sets of data, re-establish a network connection, or perform other intensive operations, then a full restart due to a configuration change might be a slow user experience. Also, it might not be possible for you to completely restore your activity state with the `Bundle` that the system saves for you with the `onSaveInstanceState()` callback—it is not designed to carry large objects (such as bitmaps) and the data within it must be serialized then deserialized, which can consume a lot of memory and make the configuration change slow. In such a situation, you can alleviate the burden of reinitializing your activity by retaining a `Fragment` when your activity is restarted due to a configuration change. This fragment can contain references to stateful objects that you want to retain. + +When the Android system shuts down your activity due to a configuration change, the fragments of your activity that you have marked to retain are not destroyed. You can add such fragments to your activity to preserve stateful objects. + +To retain stateful objects in a fragment during a runtime configuration change: + +1. Extend the Fragment class and declare references to your stateful objects. +2. Call setRetainInstance(boolean) when the fragment is created. +3. Add the fragment to your activity. +4. Use FragmentManager to retrieve the fragment when the activity is restarted. + +For example, define your fragment as follows: + +```java +public class RetainedFragment extends Fragment { + + // data object we want to retain + private MyDataObject data; + + // this method is only called once for this fragment + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + // retain this fragment + setRetainInstance(true); + } + + public void setData(MyDataObject data) { + this.data = data; + } + + public MyDataObject getData() { + return data; + } +} +``` +> **Caution**: While you can store any object, you should never pass an object that is tied to the `Activity`, such as a `Drawable`, an `Adapter`, a `View` or any other object that's associated with a `Context`. If you do, it will leak all the views and resources of the original activity instance. (Leaking resources means that your application maintains a hold on them and they cannot be garbage-collected, so lots of memory can be lost.) + +Then use `FragmentManager` to add the fragment to the activity. You can obtain the data object from the fragment when the activity starts again during runtime configuration changes. For example, define your activity as follows: + +```java +public class MyActivity extends Activity { + + private RetainedFragment dataFragment; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.main); + + // find the retained fragment on activity restarts + FragmentManager fm = getFragmentManager(); + dataFragment = (DataFragment) fm.findFragmentByTag(“data”); + + // create the fragment and data the first time + if (dataFragment == null) { + // add the fragment + dataFragment = new DataFragment(); + fm.beginTransaction().add(dataFragment, “data”).commit(); + // load the data from the web + dataFragment.setData(loadMyData()); + } + + // the data is available in dataFragment.getData() + ... + } + + @Override + public void onDestroy() { + super.onDestroy(); + // store the data in the fragment + dataFragment.setData(collectMyLoadedData()); + } +} +``` + +In this example, `onCreate()` adds a fragment or restores a reference to it. `onCreate()` also stores the stateful object inside the fragment instance. `onDestroy()` updates the stateful object inside the retained fragment instance. + +### Handling the Configuration Change Yourself +If your application doesn't need to update resources during a specific configuration change and you have a performance limitation that requires you to avoid the activity restart, then you can declare that your activity handles the configuration change itself, which prevents the system from restarting your activity. + +> **Note**: Handling the configuration change yourself can make it much more difficult to use alternative resources, because the system does not automatically apply them for you. This technique should be considered a last resort when you must avoid restarts due to a configuration change and is not recommended for most applications. + +To declare that your activity handles a configuration change, edit the appropriate `` element in your manifest file to include the `android:configChanges` attribute with a value that represents the configuration you want to handle. Possible values are listed in the documentation for the `android:configChanges` attribute (the most commonly used values are `"orientation"` to prevent restarts when the screen orientation changes and `"keyboardHidden"` to prevent restarts when the keyboard availability changes). You can declare multiple configuration values in the attribute by separating them with a pipe `|` character. + +For example, the following manifest code declares an activity that handles both the screen orientation change and keyboard availability change: + +``` + +``` + +Now, when one of these configurations change, `MyActivity` does not restart. Instead, the MyActivity receives a call to `onConfigurationChanged()`. This method is passed a `Configuration` object that specifies the new device configuration. By reading fields in the Configuration, you can determine the new configuration and make appropriate changes by updating the resources used in your interface. At the time this method is called, your activity's `Resources` object is updated to return resources based on the new configuration, so you can easily reset elements of your UI without the system restarting your activity. + +> **Caution**: Beginning with Android 3.2 (API level 13), **the "screen size" also changes** when the device switches between portrait and landscape orientation. Thus, if you want to prevent runtime restarts due to orientation change when developing for API level 13 or higher (as declared by the `minSdkVersion` and `targetSdkVersion` attributes), you must include the `"screenSize"` value in addition to the `"orientation"` value. That is, you must decalare `android:configChanges="orientation|screenSize"`. However, if your application targets API level 12 or lower, then your activity always handles this configuration change itself (this configuration change does not restart your activity, even when running on an Android 3.2 or higher device). + +For example, the following `onConfigurationChanged()` implementation checks the current device orientation: + +```java +@Override +public void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + + // Checks the orientation of the screen + if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { + Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show(); + } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){ + Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show(); + } +} +``` + +The `Configuration` object represents all of the current configurations, not just the ones that have changed. Most of the time, you won't care exactly how the configuration has changed and can simply re-assign all your resources that provide alternatives to the configuration that you're handling. For example, because the `Resources` object is now updated, you can reset any `ImageViews` with `setImageResource()` and the appropriate resource for the new configuration is used (as described in `Providing Resources`). + +Notice that the values from the `Configuration` fields are integers that are matched to specific constants from the `Configuration` class. For documentation about which constants to use with each field, refer to the appropriate field in the `Configuration` reference. + +> **Remember**: When you declare your activity to handle a configuration change, you are responsible for resetting any elements for which you provide alternatives. If you declare your activity to handle the orientation change and have images that should change between landscape and portrait, you must re-assign each resource to each element during `onConfigurationChanged()`. + +If you don't need to update your application based on these configuration changes, you can instead not implement `onConfigurationChanged()`. In which case, all of the resources used before the configuration change are still used and you've only avoided the restart of your activity. However, your application should always be able to shutdown and restart with its previous state intact, so you should not consider this technique an escape from retaining your state during normal activity lifecycle. Not only because there are other configuration changes that you cannot prevent from restarting your application, but also because you should handle events such as when the user leaves your application and it gets destroyed before the user returns to it. + +For more about which configuration changes you can handle in your activity, see the [`android:configChanges`](http://developer.android.com/guide/topics/manifest/activity-element.html#config) documentation and the [`Configuration`](http://developer.android.com/reference/android/content/res/Configuration.html) class. [注1] + +[注1]: 需要科学上网 diff --git a/Utils/Content/Simple_RecyclerView_Divider.md b/Utils/Content/Simple_RecyclerView_Divider.md new file mode 100644 index 0000000..8e459b8 --- /dev/null +++ b/Utils/Content/Simple_RecyclerView_Divider.md @@ -0,0 +1,72 @@ +[原文链接](https://gist.github.com/polbins/e37206fbc444207c0e92) by [polbins](https://gist.github.com/polbins) + +--- +### Simple RecyclerView Divider +Simple Horizontal Divider Item Decoration for RecyclerView + +```java +mRecyclerView.addItemDecoration(new SimpleDividerItemDecoration( + getApplicationContext() + )); +``` + +**NOTE**: Add item decoration prior to setting the adapter + +--- +#### line_divider: + +```java + + + + + + + + + + + +``` + +--- + +#### SimpleDividerItemDecoration.java + +```java +public class SimpleDividerItemDecoration extends RecyclerView.ItemDecoration { + private Drawable mDivider; + + + public SimpleDividerItemDecoration(Context context) { + mDivider = context.getResources().getDrawable(R.drawable.line_divider); + } + + + @Override + public void onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state) { + int left = parent.getPaddingLeft(); + int right = parent.getWidth() - parent.getPaddingRight(); + + + int childCount = parent.getChildCount(); + for (int i = 0; i < childCount; i++) { + View child = parent.getChildAt(i); + + + RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child.getLayoutParams(); + + + int top = child.getBottom() + params.bottomMargin; + int bottom = top + mDivider.getIntrinsicHeight(); + + + mDivider.setBounds(left, top, right, bottom); + mDivider.draw(c); + } + } +} +``` From 3803a127eb24fdd02a22d23178c67e1ba1251270 Mon Sep 17 00:00:00 2001 From: Troy Liu Date: Fri, 18 Sep 2015 17:15:06 +0800 Subject: [PATCH 19/85] add Content links to README.md --- README.md | 10 +++++----- badUrls.txt | 12 ------------ 2 files changed, 5 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 7f178ab..8492028 100644 --- a/README.md +++ b/README.md @@ -69,7 +69,7 @@ 1. [android进程间通信:使用AIDL](http://blog.csdn.net/saintswordsman/article/details/5130947) 2. [Android AIDL使用详解](http://blog.csdn.net/stonecao/article/details/6425019) 3. [android跨进程通信(IPC): 使用AIDL](http://blog.csdn.net/singwhatiwanna/article/details/17041691) -4. [Android中的跨进程通信的实现(一)——远程调用过程和aidl](http://foocoder.com/blog/androidzhong-de-kua-jin-cheng-tong-xin-de-shi-xian-(%5B%3F%5D-)-yuan-cheng-diao-yong-guo-cheng-he-aidl.html/) +4. [Android中的跨进程通信的实现(一)——远程调用过程和aidl](http://blog.csdn.net/notice520/article/details/8135600) 5. [Android Studio下如何配置AIDL文件](http://chenqichao.me/2014/05/13/003-Android-Studio-AIDL/) ### Android-Async-Http @@ -125,7 +125,7 @@ ### Configuration Change 1. [Android Configuration change引发的问题及解决方法](http://blog.csdn.net/aliaooooo/article/details/23606179?utm_source=tuicool) -2. [Handling Runtime Changes](http://developer.android.com/guide/topics/resources/runtime-changes.html) +2. [Handling Runtime Changes](https://github.com/troyliu0105/Android-Tips/blob/master/Utils/Content/Handing_Runtime_Changes.md) ### Context @@ -309,7 +309,7 @@ ### Palette 1. [Extracting Colors to a Palette with Android Lollipop](https://www.bignerdranch.com/blog/extracting-colors-to-a-palette-with-android-lollipop/) -2. [Android Lollipop 新特性 - Palette](http://baoyz.com/android/2014/10/21/android-palette-use/) +2. [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) ### Preference @@ -338,7 +338,7 @@ 4. [Android-RecyclerView-Item点击事件设置](http://blog.csdn.net/guxiao1201/article/details/40423361) 5. [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) 6. [Create RecyclerView with multiple view type](http://doublewong.com/2014/create-recyclerview-with-multiple-view-type/) -7. [Simple RecyclerView Divider](https://gist.github.com/polbins/e37206fbc444207c0e92) +7. [Simple RecyclerView Divider](https://github.com/troyliu0105/Android-Tips/blob/master/Utils/Content/Simple_RecyclerView_Divider.md) ### RandomAccessFile @@ -431,7 +431,7 @@ 1. [ViewPager + Fragment实现滑动标签页](http://blog.csdn.net/lizhenmingdirk/article/details/13631813) 2. [【移动开发】Android中Fragment+ViewPager的配合使用](http://smallwoniu.blog.51cto.com/3911954/1322746) 3. [Android 手把手教您自定义ViewGroup(一)本文出自:【张鸿洋的博客】](http://blog.csdn.net/lmj623565791/article/details/38339817) -4. +4. ### View diff --git a/badUrls.txt b/badUrls.txt index c976db1..89d02ac 100644 --- a/badUrls.txt +++ b/badUrls.txt @@ -1,13 +1 @@ -TIMEOUT https://gist.github.com/polbins/e37206fbc444207c0e92 -TIMEOUT https://developer.android.com/training/system-ui/immersive.html -BAD http://foocoder.com/blog/androidzhong-de-kua-jin-cheng-tong-xin-de-shi-xian- -TIMEOUT http://baoyz.com/android/2014/10/21/android-palette-use/ -BAD http://snowdream86.gitbooks.io/github-cheat-sheet/content/zh/index.html -TIMEOUT https://www.zybuluo.com/flyouting/note/6996 -TIMEOUT http://developer.android.com/guide/topics/resources/runtime-changes.html -TIMEOUT http://toughcoder.net/blog/2015/04/30/android-fragment-the-bad-parts/ -TIMEOUT https://www.youtube.com/watch?v=5U_BfrXV90I -TIMEOUT http://www.cnblogs.com/zwl12549/archive/2011/04/13/2015366.html TIMEOUT http://source.android.com/source/code-style.html -TIMEOUT http://drakeet.me/android-studio -TIMEOUT http://www.truiton.com/2015/03/android-cardview-example/ From eb5db06b77b0f4ec0cf39ad6438282eb35a4e89d Mon Sep 17 00:00:00 2001 From: Troy Liu Date: Fri, 18 Sep 2015 17:19:01 +0800 Subject: [PATCH 20/85] move badUrls.txt to Utils --- Utils/URLChecker/BadUrlsSaver.java | 2 +- badUrls.txt => Utils/badUrls.txt | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename badUrls.txt => Utils/badUrls.txt (100%) diff --git a/Utils/URLChecker/BadUrlsSaver.java b/Utils/URLChecker/BadUrlsSaver.java index d4badbd..9548479 100644 --- a/Utils/URLChecker/BadUrlsSaver.java +++ b/Utils/URLChecker/BadUrlsSaver.java @@ -17,7 +17,7 @@ public class BadUrlsSaver { * @throws IOException */ public static void save(Map map, boolean isSaveAlLMatterUrls) throws IOException { - File file = new File("..\\..\\badUrls.txt"); + File file = new File("..\\badUrls.txt"); if (file.exists()) { System.out.println("删除先前文件: " + (file.delete() ? "成功" : "失败")); } diff --git a/badUrls.txt b/Utils/badUrls.txt similarity index 100% rename from badUrls.txt rename to Utils/badUrls.txt From bf2be9232ac3cdbb1e6a0f46a6204fb99b49a774 Mon Sep 17 00:00:00 2001 From: Troy Liu Date: Fri, 18 Sep 2015 17:32:31 +0800 Subject: [PATCH 21/85] remove some shit codes == --- Utils/URLChecker/BadUrlsSaver.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Utils/URLChecker/BadUrlsSaver.java b/Utils/URLChecker/BadUrlsSaver.java index 9548479..382b404 100644 --- a/Utils/URLChecker/BadUrlsSaver.java +++ b/Utils/URLChecker/BadUrlsSaver.java @@ -23,13 +23,12 @@ public static void save(Map map, boolean isSaveAlLMatterUrls) th } FileWriter writer = new FileWriter(file); BufferedWriter bufferedWriter = new BufferedWriter(writer); - int index = 0; for (Map.Entry entry : map.entrySet()) { if (isSaveAlLMatterUrls) { - bufferedWriter.write((index++) + ". " + "[" + entry.getValue() + "]+ \"(\"+ entry.getKey() + +\")\"+ \"\r\n"); + bufferedWriter.write(entry.getValue() + "\t\t" + entry.getKey() + "\r\n"); } else { if (entry.getValue().equals("TIMEOUT")) { - bufferedWriter.write((index++) + ". " + "[" + entry.getValue() + "]+ \"(\"+ entry.getKey() + +\")\"+ \"\r\n"); + bufferedWriter.write(entry.getValue() + "\t\t" + entry.getKey() + "\r\n"); } } } From 0a7b2d8fe314602edb968e45593191ff86bcfe9a Mon Sep 17 00:00:00 2001 From: Troy Liu Date: Fri, 18 Sep 2015 17:36:15 +0800 Subject: [PATCH 22/85] modified some typo --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 8492028..e675a51 100644 --- a/README.md +++ b/README.md @@ -431,7 +431,6 @@ 1. [ViewPager + Fragment实现滑动标签页](http://blog.csdn.net/lizhenmingdirk/article/details/13631813) 2. [【移动开发】Android中Fragment+ViewPager的配合使用](http://smallwoniu.blog.51cto.com/3911954/1322746) 3. [Android 手把手教您自定义ViewGroup(一)本文出自:【张鸿洋的博客】](http://blog.csdn.net/lmj623565791/article/details/38339817) -4. ### View From c5ea30a94012f90366c2e2abfbab0a4dbdf67bde Mon Sep 17 00:00:00 2001 From: Troy Liu Date: Fri, 18 Sep 2015 17:43:41 +0800 Subject: [PATCH 23/85] modified Using_Immersive_Full-Screen_Mod --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index e675a51..1892d36 100644 --- a/README.md +++ b/README.md @@ -218,8 +218,7 @@ ### Immersive Full-Screen Mode -1. [Using Immersive Full-Screen Mode](https://developer.android.com/training/system-ui/immersive.html) -2. [全屏沉浸式应用](http://hukai.me/android-training-course-in-chinese/ui/system-ui/immersive.html) +1. [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) ### Intent From 1b01440c25dd73a39bed9a64406accd730818024 Mon Sep 17 00:00:00 2001 From: Troy Liu Date: Fri, 18 Sep 2015 19:06:40 +0800 Subject: [PATCH 24/85] update README.md --- README.md | 2 ++ Utils/README.md | 10 ---------- Utils/UrlCheckerREADME.md | 15 +++++++++++++++ 3 files changed, 17 insertions(+), 10 deletions(-) delete mode 100644 Utils/README.md create mode 100644 Utils/UrlCheckerREADME.md diff --git a/README.md b/README.md index 1892d36..e085cf7 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,8 @@ 你可以通过 [Pull requests](https://github.com/tangqi92/Android-Tips/pulls) 的形式进行提交,当然也欢迎 `Star` 与 `Fork` :) +>由于各种问题,给出的链接可能会无法正常访问。遇到这种情况欢迎大家提交[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)来检测这个README.md下面的链接有效性,你可以选择更改为新的有效连接,或者把需要梯子的文章以Markdown的形式保存在Utils/Content目录下,并注明原文章链接和作者。 + >由于本项目面向的群体为初学者,所以列表的知识点以初级为主,资源大多数为中文,如遇到少数无法访问的情况,请自备梯子。 --- diff --git a/Utils/README.md b/Utils/README.md deleted file mode 100644 index f1ffc96..0000000 --- a/Utils/README.md +++ /dev/null @@ -1,10 +0,0 @@ -### 检查URL连接是否有效的小工具 ---- - -因为有人问起,这个repo里面有些连接失效、无法访问或者被墙等。所有就打算把那些正常访问的连接修改或者转移到repo里面。 -但是不可能一个一个链接测试啊,所以就写了这个java小程序 - -我只是一个初学者,可能写得很挫,但是求别嫌弃 == - -`Main.java`是入口程序,默认会在repo的根目录下更新失效的连接。 -> 以200返回值为连接成功的标准 diff --git a/Utils/UrlCheckerREADME.md b/Utils/UrlCheckerREADME.md new file mode 100644 index 0000000..9bb677a --- /dev/null +++ b/Utils/UrlCheckerREADME.md @@ -0,0 +1,15 @@ +### 检查URL连接是否有效的小工具 +--- + +因为有人提起,这个repo里面有些连接失效、无法访问或者被墙等。所有就打算把那些不能正常访问的连接替换,或者重写为Markdown的形式转移到repo里面。 + +PS:我只是一个初学者,可能写得很挫,但是求别嫌弃 == + +`Main.java`是入口程序,默认会在Utils目录下的badUrls.txt里面更新不能正常访问的连接。 + +> 以200返回值为连接成功的标准。 + +> 并且默认设定HttpUrlConnection实例的ReadTimeout和ConnectTimeout为10s。 +> 默认任何超时或者返回值不为200的链接都为`BadUrl`。 + +**注意**:这个小程序还不够完善,可能会在输出网址的时候出现错误,又或者输出的有问题的网址依然可以访问的情况。不过**不在**badUrls.txt文件里面的网址一般都是可以正常访问(不排除因不同地区的网络状况造成的访问不正常)。 From a6ceb8891b5a6be8abc4082a5a9b61da506d7357 Mon Sep 17 00:00:00 2001 From: honoka Date: Sat, 19 Sep 2015 01:07:45 +0800 Subject: [PATCH 25/85] add git --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e085cf7..03cf1be 100644 --- a/README.md +++ b/README.md @@ -513,7 +513,9 @@ 2. [GitHub秘籍](http://snowdream86.gitbooks.io/github-cheat-sheet/content/zh/index.html) 3. [git - 简易指南](http://www.bootcss.com/p/git-guide/) 4. [基于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/) -5. [使用git和github进行协同开发流程](http://livoras.com/post/28) +5. [使用git和github进行协同开发流程](http://livoras.com/post/28) +6. [如何高效利用GitHub](http://www.yangzhiping.com/tech/github.html#q1) +7. [廖雪峰的GIT入门教程](http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000) --- From 4f6531e4e5e0ac4f89fc870a48f64d17937bafb6 Mon Sep 17 00:00:00 2001 From: Troy Liu Date: Sat, 19 Sep 2015 09:50:15 +0800 Subject: [PATCH 26/85] update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e085cf7..b7c2d8d 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ 你可以通过 [Pull requests](https://github.com/tangqi92/Android-Tips/pulls) 的形式进行提交,当然也欢迎 `Star` 与 `Fork` :) ->由于各种问题,给出的链接可能会无法正常访问。遇到这种情况欢迎大家提交[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)来检测这个README.md下面的链接有效性,你可以选择更改为新的有效连接,或者把需要梯子的文章以Markdown的形式保存在Utils/Content目录下,并注明原文章链接和作者。 +>由于各种问题,给出的链接可能会无法正常访问。遇到这种情况欢迎大家提交[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)来检测这个README.md下面的链接有效性,你可以选择更改为新的有效连接,或者把需要梯子的文章以Markdown的形式保存在Utils/Content目录下,并注明原文章链接和作者。 >由于本项目面向的群体为初学者,所以列表的知识点以初级为主,资源大多数为中文,如遇到少数无法访问的情况,请自备梯子。 From 10d55c6820d8f37cdfc65026cc4268b9557c0e5e Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Sat, 19 Sep 2015 23:57:30 +0800 Subject: [PATCH 27/85] add Contributors --- README.md | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 92fd12b..0c326b9 100644 --- a/README.md +++ b/README.md @@ -10,9 +10,7 @@ 你可以通过 [Pull requests](https://github.com/tangqi92/Android-Tips/pulls) 的形式进行提交,当然也欢迎 `Star` 与 `Fork` :) ->由于各种问题,给出的链接可能会无法正常访问。遇到这种情况欢迎大家提交[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)来检测这个README.md下面的链接有效性,你可以选择更改为新的有效连接,或者把需要梯子的文章以Markdown的形式保存在Utils/Content目录下,并注明原文章链接和作者。 - ->由于本项目面向的群体为初学者,所以列表的知识点以初级为主,资源大多数为中文,如遇到少数无法访问的情况,请自备梯子。 +>由于各种问题,给出的链接可能会无法正常访问。遇到这种情况欢迎大家提交 [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) 来检测这个README.md下面的链接有效性,你可以选择更改为新的有效连接,或者把需要**梯子**的文章以Markdown的形式保存在Utils/Content目录下,并注明原文章链接和作者。 --- @@ -47,6 +45,7 @@ * [其他](#其他) * [设计模式](#设计模式) * [Others](#others) + * [Contributors](#contributors) --- @@ -557,3 +556,14 @@ 9. [关于APK瘦身值得分享的一些经验](http://www.jianshu.com/p/bd90dee57ad0) 10. [性能优化之数据库优化](http://www.trinea.cn/android/database-performance/) 11. [How to check visibility of software keyboard in Android?](http://stackoverflow.com/questions/2150078/how-to-check-visibility-of-software-keyboard-in-android) +12. [android 4.4.4侧滑退出显示app启动界面](https://github.com/ikew0ng/SwipeBackLayout/issues/45) + +--- + +## Contributors + +- [troyliu0105](https://github.com/troyliu0105) +- [whiskeyfei](https://github.com/whiskeyfei) +- [wavever](https://github.com/wavever) +- [nitta-honoka](https://github.com/nitta-honoka) +- [jywanghold](https://github.com/jywanghold) From b1665fa9b6a3c86e223d29a4b88fc0935f8b6051 Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Sun, 20 Sep 2015 12:16:18 +0800 Subject: [PATCH 28/85] update 2015-09-20 12:16 --- README.md | 48 +++++++++++++++++++++++------------------------- 1 file changed, 23 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index 0c326b9..e50a340 100644 --- a/README.md +++ b/README.md @@ -1,22 +1,22 @@ # Android-Tips -学习 Android 至今,大大小小的坑没少踩,庆幸的是,在强大的搜索引擎与无私奉献的人们的帮助下,我遇到的坑都顺利地被填平了。 +学习 Android 至今,大大小小的坑没少踩过,庆幸的是,在强大的搜索引擎与无私奉献的人们的帮助下,那些坑都顺利地被填平了。 -为了便于日后在遇到同样的问题时,能免于因再次搜索所带来的麻烦,我养成了收藏书签的习惯,随着书签(Tips)的日积月累,我想,是时候该有这个项目了。 +为了日后在遇到同样的问题时,能免于再次搜索带来的麻烦,我养成了收藏书签的习惯,随着书签(Tips)的日积月累,我想,是时候该有这个项目了。 -**如果你是个 Android 新人,又不善于搜索或不知道从何开始,那么我希望这份列表,可以成为你踩到坑时的不完全手册。** +**如果你是个 Android 新人,又不善于搜索或不知道从何开始,那么我相信这份列表,将会成为你的首选。** -当然,这份列表一定会有遗漏,如果不幸,这里没有你所踩到的坑,或者对于某个问题你有更好的 Tips,欢迎与大家分享,让我们一起来维护这个项目! +当然,这份列表并不完美,如果不幸,这里没有你所踩到的坑,或者对于某个问题你有更好的 Tips,欢迎与大家分享,让我们一起来维护这个项目! -你可以通过 [Pull requests](https://github.com/tangqi92/Android-Tips/pulls) 的形式进行提交,当然也欢迎 `Star` 与 `Fork` :) +你可以通过 [Pull request](https://github.com/tangqi92/Android-Tips/pulls) 的形式进行提交,当然也欢迎 `Star` 与 `Fork` :) ->由于各种问题,给出的链接可能会无法正常访问。遇到这种情况欢迎大家提交 [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) 来检测这个README.md下面的链接有效性,你可以选择更改为新的有效连接,或者把需要**梯子**的文章以Markdown的形式保存在Utils/Content目录下,并注明原文章链接和作者。 +>由于各种问题,给出的链接可能会无法正常访问。遇到这种情况欢迎大家提交 [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 目录下,并注明原文章链接和作者。 --- ## 目录 - * [A](#a) + * [A](#a) * [B](#b) * [C](#c) * [D](#d) @@ -42,8 +42,6 @@ * [X](#x) * [Y](#y) * [Z](#z) - * [其他](#其他) - * [设计模式](#设计模式) * [Others](#others) * [Contributors](#contributors) @@ -472,21 +470,7 @@ --- -## 其他 - -### 自定义控件 - -1. [Android 自定义View及其在布局文件中的使用示例](http://www.cnblogs.com/crashmaker/p/3521310.html) -2. [自定义控件进阶:declare-styleable重用attr](http://droidyue.com/blog/2014/07/16/better-in-android-include-attrs-in-declare-stylable/) -3. [android 自定义控件 使用declare-styleable进行配置属性(源码角度)](http://blog.csdn.net/vipzjyno1/article/details/23696537) -4. [Android使用AttributeSet自定义控件的方法](http://www.cnblogs.com/zwl12549/archive/2011/04/13/2015366.html) -5. [从源码中浅析Android中如何利用attrs和styles定义控件](http://michaelye1988.iteye.com/blog/1773997) -6. [Android SDK: Creating Custom Views](http://code.tutsplus.com/tutorials/android-sdk-creating-custom-views--mobile-14548) -7. [Creating custom and compound Views in Android - Tutorial](http://www.vogella.com/tutorials/AndroidCustomViews/article.html) -8. [Tutorial: Enhancing Android UI with Custom Views](https://newcircle.com/s/post/1663/tutorial_enhancing_android_ui_with_custom_views_dave_smith_video) -9. [Android 自定义View (一)](http://blog.csdn.net/lmj623565791/article/details/24252901) - ---- +## Others ### Android Studio @@ -543,7 +527,21 @@ --- -### Others +### 自定义控件 + +1. [Android 自定义View及其在布局文件中的使用示例](http://www.cnblogs.com/crashmaker/p/3521310.html) +2. [自定义控件进阶:declare-styleable重用attr](http://droidyue.com/blog/2014/07/16/better-in-android-include-attrs-in-declare-stylable/) +3. [android 自定义控件 使用declare-styleable进行配置属性(源码角度)](http://blog.csdn.net/vipzjyno1/article/details/23696537) +4. [Android使用AttributeSet自定义控件的方法](http://www.cnblogs.com/zwl12549/archive/2011/04/13/2015366.html) +5. [从源码中浅析Android中如何利用attrs和styles定义控件](http://michaelye1988.iteye.com/blog/1773997) +6. [Android SDK: Creating Custom Views](http://code.tutsplus.com/tutorials/android-sdk-creating-custom-views--mobile-14548) +7. [Creating custom and compound Views in Android - Tutorial](http://www.vogella.com/tutorials/AndroidCustomViews/article.html) +8. [Tutorial: Enhancing Android UI with Custom Views](https://newcircle.com/s/post/1663/tutorial_enhancing_android_ui_with_custom_views_dave_smith_video) +9. [Android 自定义View (一)](http://blog.csdn.net/lmj623565791/article/details/24252901) + +--- + +### No category 1. [THE DEX 64K LIMIT IS NOT A PROBLEM ANYMORE, ALMOST](http://www.mutualmobile.com/posts/dex-64k-limit-not-problem-anymore-almost) 2. [Android 4.4从图库选择图片,获取图片路径并裁剪](http://blog.csdn.net/tempersitu/article/details/20557383) From 71cc82a9975fb74f0634c9a3569e2981263c893a Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Sun, 20 Sep 2015 13:07:53 +0800 Subject: [PATCH 29/85] update 2015-09-20 13:07 --- README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/README.md b/README.md index e50a340..1b4dab3 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,7 @@ * [Z](#z) * [Others](#others) * [Contributors](#contributors) + * [Contact Me](#contact-me) --- @@ -565,3 +566,14 @@ - [wavever](https://github.com/wavever) - [nitta-honoka](https://github.com/nitta-honoka) - [jywanghold](https://github.com/jywanghold) + +--- + +## Contact Me + +Born in 1992, now a student of Southeast University, master of software engineerin. Loving technology, programming, reading and sports. + +I will graduate in June 2017, expect the internship or full-time job in Android or iOS. + +If 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") + From de0bcef22c548fa56db222c4d95f5c6973c572ca Mon Sep 17 00:00:00 2001 From: Troy Liu Date: Sun, 20 Sep 2015 23:45:50 +0800 Subject: [PATCH 30/85] replace unavailable link --- README.md | 9 +- Utils/Content/declare-styleable_reuse_attr.md | 84 +++++++++++++++++++ 2 files changed, 88 insertions(+), 5 deletions(-) create mode 100644 Utils/Content/declare-styleable_reuse_attr.md diff --git a/README.md b/README.md index 1b4dab3..ff3c196 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ ## 目录 - * [A](#a) + * [A](#a) * [B](#b) * [C](#c) * [D](#d) @@ -531,7 +531,7 @@ ### 自定义控件 1. [Android 自定义View及其在布局文件中的使用示例](http://www.cnblogs.com/crashmaker/p/3521310.html) -2. [自定义控件进阶:declare-styleable重用attr](http://droidyue.com/blog/2014/07/16/better-in-android-include-attrs-in-declare-stylable/) +2. [自定义控件进阶:declare-styleable重用attr](https://github.com/troyliu0105/Android-Tips/blob/master/Utils/Content/declare-styleable_reuse_attr.md) 3. [android 自定义控件 使用declare-styleable进行配置属性(源码角度)](http://blog.csdn.net/vipzjyno1/article/details/23696537) 4. [Android使用AttributeSet自定义控件的方法](http://www.cnblogs.com/zwl12549/archive/2011/04/13/2015366.html) 5. [从源码中浅析Android中如何利用attrs和styles定义控件](http://michaelye1988.iteye.com/blog/1773997) @@ -561,7 +561,7 @@ ## Contributors -- [troyliu0105](https://github.com/troyliu0105) +- [troyliu0105](https://github.com/troyliu0105) - [whiskeyfei](https://github.com/whiskeyfei) - [wavever](https://github.com/wavever) - [nitta-honoka](https://github.com/nitta-honoka) @@ -571,9 +571,8 @@ ## Contact Me -Born in 1992, now a student of Southeast University, master of software engineerin. Loving technology, programming, reading and sports. +Born in 1992, now a student of Southeast University, master of software engineerin. Loving technology, programming, reading and sports. I will graduate in June 2017, expect the internship or full-time job in Android or iOS. If 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") - diff --git a/Utils/Content/declare-styleable_reuse_attr.md b/Utils/Content/declare-styleable_reuse_attr.md new file mode 100644 index 0000000..065adaa --- /dev/null +++ b/Utils/Content/declare-styleable_reuse_attr.md @@ -0,0 +1,84 @@ +[原文链接](http://droidyue.com/blog/2014/07/16/better-in-android-include-attrs-in-declare-stylable/)(*需要科学上网*) + +## 自定义控件进阶:declare-styleable重用attr + +最近接触了Android自定义控件,涉及到自定义xml中得属性(attribute),其实也很简单,但是写着写着,发现代码不完美了,就是在attrs.xml这个文件中,发现属性冗余,于是就想有没有类似属性继承或者include之类的方法.本文将就declare-stylable中属性重用记录一下. + +--- + +### 不完美的代码 + +```xml + + + + + + + + + + + + + +``` + +如上面代码,在ExTextView和ExEditText这个stylable中有着重复的属性申明.虽然上面可以工作,但是总感觉写的不专业,于是寻找优化方法. + +--- + +### 还可以这样么 + +尝试着为declare-stylable指定一个parent,如下代码 + +```xml + + + + + + + + + + + + +``` + +attrs.xml没有报告语法错误.但是当我使用R.styleable.ExEditText_supportDeviceType时候,R文件却没有生成,重新清理了工程还是不生效,不知道是否为adt插件的问题.其他人也遇到了这样的问题. 这个方法目前是不行的. + +--- + +### 终极答案 + +实际上我们可以在declare-stylable之前,申明要多次使用的属性,在declare-stylable节点内部,只需调用即可.具体代码如下. + +```xml + + + + + + + + + + + + + + + +``` + +每次引用attr后,建议清理一下工程,确保R文件重新生成. + +#### 延伸阅读 + ++ [http://stackoverflow.com/questions/18827875/how-to-declare-several-stylable-attributes-with-the-same-name-for-different-tags](http://stackoverflow.com/questions/18827875/how-to-declare-several-stylable-attributes-with-the-same-name-for-different-tags) + +#### 其他 + ++ [Android系统源代码情景分析](http://www.amazon.cn/gp/product/B009OLU8EE/ref=as_li_tf_tl?ie=UTF8&camp=536&creative=3200&creativeASIN=B009OLU8EE&linkCode=as2&tag=droidyue-23) From 36485300aa99f7339b95f7938993bc3b03f7772c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Tue, 22 Sep 2015 08:47:28 +0800 Subject: [PATCH 31/85] Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 1b4dab3..29fddc9 100644 --- a/README.md +++ b/README.md @@ -252,6 +252,9 @@ 1. [在Activity中响应ListView内部按钮的点击事件](http://www.cnblogs.com/ivan-xu/p/4124967.html) +### Log +1、[Logger工具类](https://github.com/orhanobut/logger) + --- ## M From e90d7ba4bf81a0e300ea92e9180094b94225499b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Tue, 22 Sep 2015 17:05:40 +0800 Subject: [PATCH 32/85] update android studio --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 29fddc9..fa43c66 100644 --- a/README.md +++ b/README.md @@ -483,6 +483,13 @@ 3. [Android Studio 简介及导入 jar 包和第三方开源库方法](http://drakeet.me/android-studio) 4. [Android Studio使用技巧系列教程(一)](http://blog.csdn.net/growth58/article/details/46729803) 5. [Android Studio中如何使用Git和Github来管理项目](http://blog.csdn.net/wei18359100306/article/details/45645145) +6. [Android Studio系列教程一 下载与安装](http://stormzhang.com/devtools/2014/11/25/android-studio-tutorial1/) +7. [Android Studio系列教程二 基本设置与运行](http://stormzhang.com/devtools/2014/11/28/android-studio-tutorial2/) +8. [Android Studio系列教程三 快捷键](http://stormzhang.com/devtools/2014/12/09/android-studio-tutorial3/) +9. [Android Studio系列教程四 Gradle基础](http://stormzhang.com/devtools/2014/12/18/android-studio-tutorial4/) +10. [Android Studio系列教程五 Gradle命令详解与 +导入第三方包](http://stormzhang.com/devtools/2015/01/05/android-studio-tutorial5) +11. [Android Studio系列教程六Gradle多渠道打包](http://stormzhang.com/devtools/2015/01/15/android-studio-tutorial6) --- From 72789f6aa48d7df0418dfc63ae4a3870733952c7 Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Wed, 23 Sep 2015 12:15:40 +0800 Subject: [PATCH 33/85] update 2015-09-23 12:15 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ff3c196..1e53f53 100644 --- a/README.md +++ b/README.md @@ -207,6 +207,7 @@ 1. [Android入门第八篇之GridView(九宫图)](http://blog.csdn.net/hellogv/article/details/4567095) 2. [用Volley让GridView加载网络图片](http://www.cnblogs.com/tianzhijiexian/p/4277873.html) +3. [Add space to top and bottom of GridView](http://stackoverflow.com/questions/23709114/add-space-to-top-and-bottom-of-gridview) --- From 8a90beb8154d3e154f9c77487cb35ea6cc9e2d52 Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Thu, 24 Sep 2015 11:24:50 +0800 Subject: [PATCH 34/85] update 2015-09-24 11:24 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1e53f53..9e23a79 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ ### ADB -1. [Android ADB常用命令](http://segmentfault.com/a/1190000000426049) +1. [Android ADB常用命令](http://android.jobbole.com/61592/) 2. [Android开发调试工具ADB的使用](http://www.cnblogs.com/meil/archive/2012/05/24/2516055.html) 3. [Installing ADB on Windows 7](https://www.youtube.com/watch?v=5U_BfrXV90I) 4. [Adb connection Error:远程主机强迫关闭了一个现有的连接](http://www.oschina.net/question/54100_33209) From ad90f5be3632d2529523f2707c85d9a5301b9a21 Mon Sep 17 00:00:00 2001 From: zhengsonglan <1300326388@qq.com> Date: Fri, 25 Sep 2015 22:28:13 +0800 Subject: [PATCH 35/85] Update Android Studio Tips Update Android Studio Tips --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9e23a79..762579d 100644 --- a/README.md +++ b/README.md @@ -481,6 +481,7 @@ 3. [Android Studio 简介及导入 jar 包和第三方开源库方法](http://drakeet.me/android-studio) 4. [Android Studio使用技巧系列教程(一)](http://blog.csdn.net/growth58/article/details/46729803) 5. [Android Studio中如何使用Git和Github来管理项目](http://blog.csdn.net/wei18359100306/article/details/45645145) +6. [Android Studio 权威教程](http://blog.csdn.net/column/details/zsl-androidstudio.html) --- From 5be1e9ba9668984bc97afc49b3909d2e1920db22 Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Fri, 25 Sep 2015 22:31:57 +0800 Subject: [PATCH 36/85] 2015-09-25 22:31 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9e23a79..55b99d6 100644 --- a/README.md +++ b/README.md @@ -567,6 +567,7 @@ - [wavever](https://github.com/wavever) - [nitta-honoka](https://github.com/nitta-honoka) - [jywanghold](https://github.com/jywanghold) +- [yy1300326388](https://github.com/yy1300326388) --- From cbd6d2cc54098dbb265c0f33a6c065b5a11504e1 Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Fri, 25 Sep 2015 22:56:45 +0800 Subject: [PATCH 37/85] update 2015-09-25 22:56 --- README.md | 29 +++++++++-------------------- 1 file changed, 9 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 0e01f2a..ed21b76 100644 --- a/README.md +++ b/README.md @@ -77,6 +77,15 @@ 1. [快速Android开发系列网络篇之Android-Async-Http](http://www.cnblogs.com/angeldevil/p/3729808.html) 2. [android-async-http框架库使用基础](http://yanbober.github.io/2014/11/11/csdn-opensource-analysis-5/) +### Android Studio + +1. [Android Studio导入项目](http://ask.android-studio.org/?/article/21) +2. [Android Studio 简单设置](http://blog.gaoqixhb.com/p/54b9c293bf1ac9364284af78) +3. [Android Studio 简介及导入 jar 包和第三方开源库方法](http://drakeet.me/android-studio) +4. [Android Studio使用技巧系列教程(一)](http://blog.csdn.net/growth58/article/details/46729803) +5. [Android Studio中如何使用Git和Github来管理项目](http://blog.csdn.net/wei18359100306/article/details/45645145) +6. [Android Studio 权威教程](http://blog.csdn.net/column/details/zsl-androidstudio.html) + ### AQuery 1. [AQuery Image Loading](http://programmerguru.com/android-tutorial/aquery-image-loading/) @@ -474,17 +483,6 @@ ## Others -### Android Studio - -1. [Android Studio导入项目](http://ask.android-studio.org/?/article/21) -2. [Android Studio 简单设置](http://blog.gaoqixhb.com/p/54b9c293bf1ac9364284af78) -3. [Android Studio 简介及导入 jar 包和第三方开源库方法](http://drakeet.me/android-studio) -4. [Android Studio使用技巧系列教程(一)](http://blog.csdn.net/growth58/article/details/46729803) -5. [Android Studio中如何使用Git和Github来管理项目](http://blog.csdn.net/wei18359100306/article/details/45645145) -6. [Android Studio 权威教程](http://blog.csdn.net/column/details/zsl-androidstudio.html) - ---- - ### Code Style 1. [Java编程规范](http://www.stormzhang.com/java/2013/07/20/java-coding-standards/) @@ -505,15 +503,6 @@ --- -### Hexo - -1. [如何搭建一个独立博客——简明Github Pages与Hexo教程](http://www.jianshu.com/p/05289a4bc8b2) -2. [Mac下程序员博客之 Hexo + GitHub Pages + GitCafe Pages + DNSPod](http://godera.org/2015/03/16/Mac%E4%B8%8B%E7%A8%8B%E5%BA%8F%E5%91%98%E5%8D%9A%E5%AE%A2%E4%B9%8BHexo-GitHub-Pages-GitCafe-Pages-DNSPod/) -3. [动动手指,NexT主题与Hexo更搭哦(基础篇)](http://www.arao.me/2015/hexo-next-theme-optimize-base/) -4. [hexo博客搭建时遇到的一些问题](http://chitanda.me/2015/06/11/tips-for-setup-hexo/) - ---- - ### Smali 1. [Smali--Dalvik虚拟机指令语言-->【android_smali语法学习一】 From e51b2e639148640196b9a64b06ae760460a7a345 Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Fri, 25 Sep 2015 23:11:09 +0800 Subject: [PATCH 38/85] update 2015-09-25 23:11 --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index ed21b76..6b67e13 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,13 @@ # Android-Tips +This is an awesome list of tips for android. + +If you are a novice, this list will be the first choice for you to learn and to have a difficult time. + +Finally, your support is my greatest affirmation. + +--- + 学习 Android 至今,大大小小的坑没少踩过,庆幸的是,在强大的搜索引擎与无私奉献的人们的帮助下,那些坑都顺利地被填平了。 为了日后在遇到同样的问题时,能免于再次搜索带来的麻烦,我养成了收藏书签的习惯,随着书签(Tips)的日积月累,我想,是时候该有这个项目了。 From e1c934e0dc0a376702e6bdae5fe90adc4c2edbad Mon Sep 17 00:00:00 2001 From: lujun Date: Wed, 30 Sep 2015 11:12:48 +0800 Subject: [PATCH 39/85] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 6b67e13..1a0b134 100644 --- a/README.md +++ b/README.md @@ -257,6 +257,10 @@ Finally, your support is my greatest affirmation. 3. [Android开源库--Gson谷歌官方json解析库](http://www.cnblogs.com/leestar54/p/4212318.html) 4. [DataContract4A-简化Json解析与生成](https://github.com/jywanghold/DataContract4A) +### JNI + +1. [Hello JNI](https://github.com/googlesamples/android-ndk/tree/master/hello-jni) + --- ## L From 953974d7e4ee0ba4168ac2bf8b27a4b0902bae0f Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Tue, 6 Oct 2015 20:18:24 +0800 Subject: [PATCH 40/85] update 2015-10-06 20:18 --- README.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1a0b134..d3d7ac6 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,9 @@ This is an awesome list of tips for android. -If you are a novice, this list will be the first choice for you to learn and to have a difficult time. +If you are a beginner, this list will be the first choice for you when you have a difficult time. -Finally, your support is my greatest affirmation. +Welcome `Star` and `Fork`, your support is my greatest affirmation. --- @@ -531,6 +531,14 @@ Finally, your support is my greatest affirmation. --- +### 夜间模式 + +1. [Android Night Mode 夜间模式实现](http://echo.vars.me/android/android-night-mode/) +2. [【 android】夜间模式简单实现](http://www.w2bc.com/Article/43471) +3. [Android夜间模式实现](http://blog.kymjs.com/code/2015/05/26/01/) + +--- + ### 自定义控件 1. [Android 自定义View及其在布局文件中的使用示例](http://www.cnblogs.com/crashmaker/p/3521310.html) From a450a7ab93809cbc527808fd8140e8cee64e2874 Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Sun, 18 Oct 2015 12:54:01 +0800 Subject: [PATCH 41/85] update 2015-10-18 12:53 --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index d3d7ac6..fa97b66 100644 --- a/README.md +++ b/README.md @@ -93,6 +93,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 4. [Android Studio使用技巧系列教程(一)](http://blog.csdn.net/growth58/article/details/46729803) 5. [Android Studio中如何使用Git和Github来管理项目](http://blog.csdn.net/wei18359100306/article/details/45645145) 6. [Android Studio 权威教程](http://blog.csdn.net/column/details/zsl-androidstudio.html) +7. [倍数提高工作效率的Android Studio奇技](http://zlv.me/posts/2015/07/13/14_android-studio-tips/) ### AQuery @@ -148,6 +149,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 1. [android学习—— context 和 getApplicationContext()](http://blog.csdn.net/janronehoo/article/details/7348566) 2. [Android中Context详解 ---- 你所不知道的Context](http://blog.csdn.net/qinjuning/article/details/7310620) +3. [Difference between getContext() , getApplicationContext() , getBaseContext() and “this”](http://stackoverflow.com/questions/10641144/difference-between-getcontext-getapplicationcontext-getbasecontext-and) ### CoordinatorLayout From 2c87ecc1c6d8c9b888d82928197f3be7fc18db5c Mon Sep 17 00:00:00 2001 From: pingfanganwei <846650266@qq.com> Date: Tue, 27 Oct 2015 21:02:57 +0800 Subject: [PATCH 42/85] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增WebView详解,第一条足够入门了。 --- README.md | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 2e9ed4b..fa60828 100644 --- a/README.md +++ b/README.md @@ -358,15 +358,17 @@ ### WebView -1. [Java 与 JavaScript 如何进行交互](http://itangqi.me/2015/03/07/java-and-javascript-interaction-in-android/) -2. [android与javascript交互调用](http://blog.csdn.net/chenzheng_java/article/details/6260872) -3. [Android与js交互实例](http://blog.csdn.net/ithomer/article/details/8737999) -4. [Android中Java和JavaScript交互](http://droidyue.com/blog/2014/09/20/interaction-between-java-and-javascript-in-android/) -5. [顶部带进度条的Webview](http://droidyue.com/blog/2014/07/12/ding-bu-dai-jin-du-tiao-de-webview/) -6. [Android WebView播放视频问题](http://www.stormzhang.com/android/2014/03/23/android-webview-play-video/) -7. [理解WebKit和Chromium: Android 4.4 上的Chromium WebView](http://blog.csdn.net/milado_nju/article/details/17098399) -8. [在WebView中如何让JS与Java安全地互相调用](http://www.pedant.cn/2014/07/04/webview-js-java-interface-research/) -9. [Android WebView的Js对象注入漏洞解决方案](http://blog.csdn.net/leehong2005/article/details/11808557) +1. [WebView详解](http://1.vduntest.sinaapp.com/webview/WebView%E8%AF%A6%E8%A7%A3.html) +2. [Java 与 JavaScript 如何进行交互](http://itangqi.me/2015/03/07/java-and-javascript-interaction-in-android/) +3. [android与javascript交互调用](http://blog.csdn.net/chenzheng_java/article/details/6260872) +4. [Android与js交互实例](http://blog.csdn.net/ithomer/article/details/8737999) +5. [Android中Java和JavaScript交互](http://droidyue.com/blog/2014/09/20/interaction-between-java-and-javascript-in-android/) +6. [顶部带进度条的Webview](http://droidyue.com/blog/2014/07/12/ding-bu-dai-jin-du-tiao-de-webview/) +7. [Android WebView播放视频问题](http://www.stormzhang.com/android/2014/03/23/android-webview-play-video/) +8. [理解WebKit和Chromium: Android 4.4 上的Chromium WebView](http://blog.csdn.net/milado_nju/article/details/17098399) +9. [在WebView中如何让JS与Java安全地互相调用](http://www.pedant.cn/2014/07/04/webview-js-java-interface-research/) +11. [Android WebView的Js对象注入漏洞解决方案](http://blog.csdn.net/leehong2005/article/details/11808557) +12.[WebView详解](http://1.vduntest.sinaapp.com/webview/WebView%E8%AF%A6%E8%A7%A3.html) ## 其他 From 656b2aa7be9018eec717e6905e169c409e449bbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E7=99=BD=E9=BE=99?= <846650266@qq.com> Date: Tue, 27 Oct 2015 23:04:39 +0800 Subject: [PATCH 43/85] =?UTF-8?q?=E6=B7=B1=E5=85=A5=E8=A7=A3=E6=9E=90Async?= =?UTF-8?q?Task?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 深入解析AsyncTask,更中和,例子更多 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fa60828..7c4cdf4 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,7 @@ 1. [Android AsyncTask完全解析,带你从源码的角度彻底理解](http://blog.csdn.net/guolin_blog/article/details/11711405) 2. [Android中AsyncTask的简单用法](http://blog.csdn.net/cjjky/article/details/6684959) 3. [Android开发者:你真的会用AsyncTask吗?](http://code.oneapm.com/android/2015/06/02/android1/) +4. [深入解析AsyncTask,多例子版](http://www.cnblogs.com/anee/archive/2012/09/24/2699829.html) ## B From c915da7bc0d3b89e83cbe72c01d6cc4d96aef107 Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Wed, 28 Oct 2015 11:45:14 +0800 Subject: [PATCH 44/85] update 2015-10-28 11:45 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7b263ce..15baa1f 100644 --- a/README.md +++ b/README.md @@ -493,8 +493,8 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 7. [Android WebView播放视频问题](http://www.stormzhang.com/android/2014/03/23/android-webview-play-video/) 8. [理解WebKit和Chromium: Android 4.4 上的Chromium WebView](http://blog.csdn.net/milado_nju/article/details/17098399) 9. [在WebView中如何让JS与Java安全地互相调用](http://www.pedant.cn/2014/07/04/webview-js-java-interface-research/) -11. [Android WebView的Js对象注入漏洞解决方案](http://blog.csdn.net/leehong2005/article/details/11808557) -12.[WebView详解](http://1.vduntest.sinaapp.com/webview/WebView%E8%AF%A6%E8%A7%A3.html) +10. [Android WebView的Js对象注入漏洞解决方案](http://blog.csdn.net/leehong2005/article/details/11808557) + --- From 8b836e92cc9c3a41b46ee48eb3258f477b27bf01 Mon Sep 17 00:00:00 2001 From: Dimon Date: Fri, 30 Oct 2015 14:30:23 +0800 Subject: [PATCH 45/85] Update README.md --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 15baa1f..efa89ff 100644 --- a/README.md +++ b/README.md @@ -94,6 +94,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 5. [Android Studio中如何使用Git和Github来管理项目](http://blog.csdn.net/wei18359100306/article/details/45645145) 6. [Android Studio 权威教程](http://blog.csdn.net/column/details/zsl-androidstudio.html) 7. [倍数提高工作效率的Android Studio奇技](http://zlv.me/posts/2015/07/13/14_android-studio-tips/) +8. [Android Studio 快捷键(Windows)](http://blog.csdn.net/altair86/article/details/8972178) ### AQuery @@ -107,6 +108,10 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 3. [Android开发者:你真的会用AsyncTask吗?](http://code.oneapm.com/android/2015/06/02/android1/) 4. [深入解析AsyncTask,多例子版](http://www.cnblogs.com/anee/archive/2012/09/24/2699829.html) +### AndroidAnnotations + +1.[AndroidAnnotations框架入门教程三之Android Studio环境配置](http://zhenhappy.github.io/2015/10/13/Android-Annotatios-3-Android-Studio.html) + --- ## B From 2cd6c5f8d84460b71f32512c7c5171b2f3e3fa93 Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Tue, 3 Nov 2015 20:29:48 +0800 Subject: [PATCH 46/85] update 2015-11-03 20:29 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index efa89ff..b51e845 100644 --- a/README.md +++ b/README.md @@ -577,6 +577,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 10. [性能优化之数据库优化](http://www.trinea.cn/android/database-performance/) 11. [How to check visibility of software keyboard in Android?](http://stackoverflow.com/questions/2150078/how-to-check-visibility-of-software-keyboard-in-android) 12. [android 4.4.4侧滑退出显示app启动界面](https://github.com/ikew0ng/SwipeBackLayout/issues/45) +13. [Error retrieving parent for item: No resource found that matches the given name after upgrading to AppCompat v23](http://stackoverflow.com/questions/32075498/error-retrieving-parent-for-item-no-resource-found-that-matches-the-given-name) --- From fc4a1765eb77ccbd563ec371045d2491bf3e328f Mon Sep 17 00:00:00 2001 From: whiskeyfei Date: Sun, 8 Nov 2015 21:11:57 +0800 Subject: [PATCH 47/85] mrege --- README.md | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/README.md b/README.md index 05c522d..c232504 100644 --- a/README.md +++ b/README.md @@ -515,14 +515,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 3. [Android Studio 简介及导入 jar 包和第三方开源库方法](http://drakeet.me/android-studio) 4. [Android Studio使用技巧系列教程(一)](http://blog.csdn.net/growth58/article/details/46729803) 5. [Android Studio中如何使用Git和Github来管理项目](http://blog.csdn.net/wei18359100306/article/details/45645145) -6. [Android Studio系列教程一 下载与安装](http://stormzhang.com/devtools/2014/11/25/android-studio-tutorial1/) -7. [Android Studio系列教程二 基本设置与运行](http://stormzhang.com/devtools/2014/11/28/android-studio-tutorial2/) -8. [Android Studio系列教程三 快捷键](http://stormzhang.com/devtools/2014/12/09/android-studio-tutorial3/) -9. [Android Studio系列教程四 Gradle基础](http://stormzhang.com/devtools/2014/12/18/android-studio-tutorial4/) -10. [Android Studio系列教程五 Gradle命令详解与 -导入第三方包](http://stormzhang.com/devtools/2015/01/05/android-studio-tutorial5) -11. [Android Studio系列教程六Gradle多渠道打包](http://stormzhang.com/devtools/2015/01/15/android-studio-tutorial6) - +6. [Android Studio系列教程一 下载与安装](http://stormzhang.com) --- ### Code Style From acf4eafba67a39bc6d5c6562be0c9dc22bb69dc5 Mon Sep 17 00:00:00 2001 From: whiskeyfei Date: Sun, 8 Nov 2015 21:16:49 +0800 Subject: [PATCH 48/85] update --- README.md | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/README.md b/README.md index c232504..5d45b05 100644 --- a/README.md +++ b/README.md @@ -95,6 +95,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 6. [Android Studio 权威教程](http://blog.csdn.net/column/details/zsl-androidstudio.html) 7. [倍数提高工作效率的Android Studio奇技](http://zlv.me/posts/2015/07/13/14_android-studio-tips/) 8. [Android Studio 快捷键(Windows)](http://blog.csdn.net/altair86/article/details/8972178) +9. [Android Studio系列教程:安装、基本设置、Gradle基础、打包](http://stormzhang.com) ### AQuery @@ -508,14 +509,6 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. ## Others -### Android Studio - -1. [Android Studio导入项目](http://ask.android-studio.org/?/article/21) -2. [Android Studio 简单设置](http://blog.gaoqixhb.com/p/54b9c293bf1ac9364284af78) -3. [Android Studio 简介及导入 jar 包和第三方开源库方法](http://drakeet.me/android-studio) -4. [Android Studio使用技巧系列教程(一)](http://blog.csdn.net/growth58/article/details/46729803) -5. [Android Studio中如何使用Git和Github来管理项目](http://blog.csdn.net/wei18359100306/article/details/45645145) -6. [Android Studio系列教程一 下载与安装](http://stormzhang.com) --- ### Code Style From 517172204bcf9357424e122d7ab8762c2bf6e6b5 Mon Sep 17 00:00:00 2001 From: whiskeyfei Date: Sun, 8 Nov 2015 21:20:16 +0800 Subject: [PATCH 49/85] update --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 5d45b05..f5313ab 100644 --- a/README.md +++ b/README.md @@ -509,8 +509,6 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. ## Others ---- - ### Code Style 1. [Java编程规范](http://www.stormzhang.com/java/2013/07/20/java-coding-standards/) From ff0d6f9fd48db2709751698584e5b853e7f9455c Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Wed, 18 Nov 2015 21:43:10 +0800 Subject: [PATCH 50/85] update 2015-11-18 21:43 --- README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/README.md b/README.md index b51e845..2dcbec4 100644 --- a/README.md +++ b/README.md @@ -221,6 +221,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 5. [灵活强大的构建系统Gradle](http://tech.meituan.com/gradle-practice.html) 6. [Gradle Android Could not find method testPackage()](http://stackoverflow.com/questions/16971740/gradle-android-could-not-find-method-testpackage) 7. [Android Studio 1.0 Gradle Error with getConfiguration()](http://stackoverflow.com/questions/27410183/android-studio-1-0-gradle-error-with-getconfiguration) +8. [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/) ### greenDao @@ -236,6 +237,13 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. --- +## H + +### Hotfix + +1. [Android热更新实现原理](http://blog.csdn.net/lzyzsd/article/details/49843581#0-tsina-1-98317-397232819ff9a47a7b7e80a40613cfe1) +2. [Nuwa](https://github.com/jasonross/Nuwa) + ## I ### ImageView @@ -369,6 +377,12 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 6. [Create RecyclerView with multiple view type](http://doublewong.com/2014/create-recyclerview-with-multiple-view-type/) 7. [Simple RecyclerView Divider](https://github.com/troyliu0105/Android-Tips/blob/master/Utils/Content/Simple_RecyclerView_Divider.md) +### RxJava + +1. [RxJava: Reactive Extensions for the JVM](https://github.com/ReactiveX/RxJava) +2. [给 Android 开发者的 RxJava 详解](http://gank.io/post/560e15be2dca930e00da1083) + + ### RandomAccessFile 1. [Java RandomAccessFile用法](http://blog.csdn.net/akon_vm/article/details/7429245) From 26086fb3095fb49851a5b95c55bdda5c045c0a47 Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Wed, 18 Nov 2015 22:37:05 +0800 Subject: [PATCH 51/85] update 2015-11-18 22:36 --- README.md | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 26b588c..9d20b53 100644 --- a/README.md +++ b/README.md @@ -60,11 +60,11 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. ### ADB -1. [Android ADB常用命令](http://android.jobbole.com/61592/) -2. [Android开发调试工具ADB的使用](http://www.cnblogs.com/meil/archive/2012/05/24/2516055.html) -3. [Installing ADB on Windows 7](https://www.youtube.com/watch?v=5U_BfrXV90I) -4. [Adb connection Error:远程主机强迫关闭了一个现有的连接](http://www.oschina.net/question/54100_33209) -5. [Android通过Wifi来调试你的应用](http://www.stormzhang.com/android/2014/08/27/adb-over-wifi/) +1. [Installing ADB on Windows 7](https://www.youtube.com/watch?v=5U_BfrXV90I) +2. [Android ADB常用命令](http://android.jobbole.com/61592/) +3. [Android开发调试工具ADB的使用](http://www.cnblogs.com/meil/archive/2012/05/24/2516055.html) +4. [Android通过Wifi来调试你的应用](http://www.stormzhang.com/android/2014/08/27/adb-over-wifi/) +5. [Adb connection Error:远程主机强迫关闭了一个现有的连接](http://www.oschina.net/question/54100_33209) ### Adapter @@ -82,8 +82,9 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. ### Android-Async-Http -1. [快速Android开发系列网络篇之Android-Async-Http](http://www.cnblogs.com/angeldevil/p/3729808.html) -2. [android-async-http框架库使用基础](http://yanbober.github.io/2014/11/11/csdn-opensource-analysis-5/) +1. [Asynchronous Http Client for Android](https://github.com/loopj/android-async-http) +2. [快速Android开发系列网络篇之Android-Async-Http](http://www.cnblogs.com/angeldevil/p/3729808.html) +3. [android-async-http框架库使用基础](http://yanbober.github.io/2014/11/11/csdn-opensource-analysis-5/) ### Android Studio @@ -96,6 +97,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 7. [倍数提高工作效率的Android Studio奇技](http://zlv.me/posts/2015/07/13/14_android-studio-tips/) 8. [Android Studio 快捷键(Windows)](http://blog.csdn.net/altair86/article/details/8972178) 9. [Android Studio系列教程:安装、基本设置、Gradle基础、打包](http://stormzhang.com) +10. [Android Studio有什么奇技淫巧](http://www.zhihu.com/question/27482725) ### AQuery @@ -280,6 +282,16 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. --- +## K + +### Kotlin + +1. [Kotlin Programming Language](https://github.com/JetBrains/kotlin) +2. [Kotlin中文站点](http://kotlinlang.cn/) +3. [使用Kotlin进行Android开发](http://ragnraok.github.io/using-kotlin-to-write-android-app.html) + +--- + ## L ### ListFragment @@ -498,8 +510,9 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. ### Volley -1. [Android Volley完全解析(一),初识Volley的基本用法](http://blog.csdn.net/guolin_blog/article/details/17482095) -2. [Android库Volley的使用介绍](https://bxbxbai.github.io/2014/09/14/android-working-with-volley/) +1. [Android Volley](https://github.com/mcxiaoke/android-volley) +2. [Android Volley完全解析(一),初识Volley的基本用法](http://blog.csdn.net/guolin_blog/article/details/17482095) +3. [Android库Volley的使用介绍](https://bxbxbai.github.io/2014/09/14/android-working-with-volley/) --- From ce0ad59357eb9b0e0997a19a773de1b21b1a293a Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Wed, 18 Nov 2015 22:52:47 +0800 Subject: [PATCH 52/85] update 2015-11-18 22:52 --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index 9d20b53..f923648 100644 --- a/README.md +++ b/README.md @@ -322,6 +322,12 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 3. [谢谷歌大神传我动画设计30年功力](http://www.zcool.com.cn/article/ZMTU5MzAw.html#jtss-tsina) 4. [Codelab for Android Design Support Library used in I/O Rewind Bangkok session](http://inthecheesefactory.com/blog/android-design-support-library-codelab/en) +### MVP + +1. [浅谈 MVP in Android](http://blog.csdn.net/lmj623565791/article/details/46596109) +2. [Android中的MVP](http://rocko.xyz/2015/02/06/Android%E4%B8%AD%E7%9A%84MVP/) +3. [开源项目Philm的MVP架构分析](http://www.lightskystreet.com/2015/02/10/philm_mvp/) + --- ## N @@ -378,6 +384,11 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. ## R +### React Native + +1. []() + + ### Reference 1. [Java的引用StrongReference、 SoftReference、 WeakReference 、PhantomReference](http://blog.csdn.net/mxbhxx/article/details/9111711) From 4bd908343ee8eca88eb8b1c6100ea8649e9a9463 Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Thu, 19 Nov 2015 18:41:26 +0800 Subject: [PATCH 53/85] update 2015-11-19 18:41 --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f923648..09e26f2 100644 --- a/README.md +++ b/README.md @@ -245,7 +245,8 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. ### Hotfix 1. [Android热更新实现原理](http://blog.csdn.net/lzyzsd/article/details/49843581#0-tsina-1-98317-397232819ff9a47a7b7e80a40613cfe1) -2. [Nuwa](https://github.com/jasonross/Nuwa) +2. [Android App 线上热修复方案](http://lirenlong.github.io/hotfix/) +3. [Nuwa](https://github.com/jasonross/Nuwa) ## I @@ -386,7 +387,8 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. ### React Native -1. []() +1. [React Native for Android 入门老虎](http://www.race604.com/react-native-for-android-start/) +2. [React Native For Android初体验](http://www.jianshu.com/p/847a54e0c385) ### Reference From ac87de9f8ff508a7f5d13ce1f66beaba2d27607b Mon Sep 17 00:00:00 2001 From: CaoPengfei Date: Mon, 23 Nov 2015 22:41:20 +0800 Subject: [PATCH 54/85] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 09e26f2..099f2d0 100644 --- a/README.md +++ b/README.md @@ -247,6 +247,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 1. [Android热更新实现原理](http://blog.csdn.net/lzyzsd/article/details/49843581#0-tsina-1-98317-397232819ff9a47a7b7e80a40613cfe1) 2. [Android App 线上热修复方案](http://lirenlong.github.io/hotfix/) 3. [Nuwa](https://github.com/jasonross/Nuwa) +4. [Handler和他的小伙伴们](http://www.jianshu.com/p/e04698eaba88) 轻松理解Handler、message、looper ## I From 1d72ba3c9cc17fd00dba2bacfa050dd5680adeb5 Mon Sep 17 00:00:00 2001 From: CaoPengfei Date: Tue, 24 Nov 2015 13:12:27 +0800 Subject: [PATCH 55/85] fix handler catalogue --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 099f2d0..e7c6e79 100644 --- a/README.md +++ b/README.md @@ -247,7 +247,10 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 1. [Android热更新实现原理](http://blog.csdn.net/lzyzsd/article/details/49843581#0-tsina-1-98317-397232819ff9a47a7b7e80a40613cfe1) 2. [Android App 线上热修复方案](http://lirenlong.github.io/hotfix/) 3. [Nuwa](https://github.com/jasonross/Nuwa) -4. [Handler和他的小伙伴们](http://www.jianshu.com/p/e04698eaba88) 轻松理解Handler、message、looper + +### Handler + +1. [Handler和他的小伙伴们](http://www.jianshu.com/p/e04698eaba88) 轻松理解Handler、message、looper ## I From 6f8b26c83fe41a391d56d8cf0440cf3acfe3930b Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Sat, 5 Dec 2015 17:22:22 +0800 Subject: [PATCH 56/85] update 2013-12-05 17:22 --- README.md | 86 +++++++++++++++++++++++++++++++------------------------ 1 file changed, 48 insertions(+), 38 deletions(-) diff --git a/README.md b/README.md index 09e26f2..89fcfa5 100644 --- a/README.md +++ b/README.md @@ -18,41 +18,41 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 你可以通过 [Pull request](https://github.com/tangqi92/Android-Tips/pulls) 的形式进行提交,当然也欢迎 `Star` 与 `Fork` :) ->由于各种问题,给出的链接可能会无法正常访问。遇到这种情况欢迎大家提交 [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 目录下,并注明原文章链接和作者。 +> 由于各种问题,给出的链接可能会无法正常访问。遇到这种情况欢迎大家提交 [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 目录下,并注明原文章链接和作者。 --- ## 目录 - * [A](#a) - * [B](#b) - * [C](#c) - * [D](#d) - * [E](#e) - * [F](#f) - * [G](#g) - * [H](#h) - * [I](#i) - * [J](#j) - * [K](#k) - * [L](#l) - * [M](#m) - * [N](#n) - * [O](#o) - * [P](#p) - * [Q](#q) - * [R](#r) - * [S](#s) - * [T](#t) - * [U](#u) - * [V](#v) - * [W](#w) - * [X](#x) - * [Y](#y) - * [Z](#z) - * [Others](#others) - * [Contributors](#contributors) - * [Contact Me](#contact-me) +* [A](#a) +* [B](#b) +* [C](#c) +* [D](#d) +* [E](#e) +* [F](#f) +* [G](#g) +* [H](#h) +* [I](#i) +* [J](#j) +* [K](#k) +* [L](#l) +* [M](#m) +* [N](#n) +* [O](#o) +* [P](#p) +* [Q](#q) +* [R](#r) +* [S](#s) +* [T](#t) +* [U](#u) +* [V](#v) +* [W](#w) +* [X](#x) +* [Y](#y) +* [Z](#z) +* [Others](#others) +* [Contributors](#contributors) +* [Contact Me](#contact-me) --- @@ -198,9 +198,9 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 3. [Android系列之Fragment(二)----Fragment的生命周期和返回栈](http://www.cnblogs.com/smyhvae/p/3983234.html) 4. [处女男学Android(九)---Fragment进阶篇之Fragment生命周期和回退栈](http://blog.csdn.net/wlwlwlwl015/article/details/40584567) 5. [Fragment笔记整理](http://www.lightskystreet.com/2015/02/02/fragment-note/) -5. [Android实战技巧:Fragment的那些坑](http://toughcoder.net/blog/2015/04/30/android-fragment-the-bad-parts/) -6. [android Fragments详解四:管理fragment](http://www.cnblogs.com/mybkn/articles/2455138.html) -7. [Android Fragment 嵌套使用(Nested Fragments)](http://blog.csdn.net/top_code/article/details/37343075) +6. [Android实战技巧:Fragment的那些坑](http://toughcoder.net/blog/2015/04/30/android-fragment-the-bad-parts/) +7. [android Fragments详解四:管理fragment](http://www.cnblogs.com/mybkn/articles/2455138.html) +8. [Android Fragment 嵌套使用(Nested Fragments)](http://blog.csdn.net/top_code/article/details/37343075) ### FlowLayout - 自定义流布局 @@ -225,6 +225,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 6. [Gradle Android Could not find method testPackage()](http://stackoverflow.com/questions/16971740/gradle-android-could-not-find-method-testpackage) 7. [Android Studio 1.0 Gradle Error with getConfiguration()](http://stackoverflow.com/questions/27410183/android-studio-1-0-gradle-error-with-getconfiguration) 8. [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/) +9. [深入理解Android之Gradle](http://blog.csdn.net/innost/article/details/48228651) ### greenDao @@ -270,6 +271,11 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. ## J +### Java 8 + +1. [Modern Java - A Guide to Java 8](https://github.com/winterbe/java8-tutorial) +2. [Java8系列 - Java8简明指南](https://biezhi.me/article/java8-tutorial.html) + ### Json 1. [Android系列---JSON数据解析](http://www.cnblogs.com/xiaoluo501395377/p/3446605.html) @@ -305,6 +311,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 1. [在Activity中响应ListView内部按钮的点击事件](http://www.cnblogs.com/ivan-xu/p/4124967.html) ### Log + 1、[Logger工具类](https://github.com/orhanobut/logger) --- @@ -328,6 +335,8 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 1. [浅谈 MVP in Android](http://blog.csdn.net/lmj623565791/article/details/46596109) 2. [Android中的MVP](http://rocko.xyz/2015/02/06/Android%E4%B8%AD%E7%9A%84MVP/) 3. [开源项目Philm的MVP架构分析](http://www.lightskystreet.com/2015/02/10/philm_mvp/) +4. [一种在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) +5. ​ --- @@ -390,7 +399,6 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 1. [React Native for Android 入门老虎](http://www.race604.com/react-native-for-android-start/) 2. [React Native For Android初体验](http://www.jianshu.com/p/847a54e0c385) - ### Reference 1. [Java的引用StrongReference、 SoftReference、 WeakReference 、PhantomReference](http://blog.csdn.net/mxbhxx/article/details/9111711) @@ -411,7 +419,6 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 1. [RxJava: Reactive Extensions for the JVM](https://github.com/ReactiveX/RxJava) 2. [给 Android 开发者的 RxJava 详解](http://gank.io/post/560e15be2dca930e00da1083) - ### RandomAccessFile 1. [Java RandomAccessFile用法](http://blog.csdn.net/akon_vm/article/details/7429245) @@ -544,7 +551,6 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 9. [在WebView中如何让JS与Java安全地互相调用](http://www.pedant.cn/2014/07/04/webview-js-java-interface-research/) 10. [Android WebView的Js对象注入漏洞解决方案](http://blog.csdn.net/leehong2005/article/details/11808557) - --- ## Others @@ -566,14 +572,18 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 5. [使用git和github进行协同开发流程](http://livoras.com/post/28) 6. [如何高效利用GitHub](http://www.yangzhiping.com/tech/github.html#q1) 7. [廖雪峰的GIT入门教程](http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000) +8. [GitHub&Git入门基础](http://www.nowcoder.com/courses/2) --- ### Smali 1. [Smali--Dalvik虚拟机指令语言-->【android_smali语法学习一】 -](http://blog.csdn.net/wdaming1986/article/details/8299996) + + ](http://blog.csdn.net/wdaming1986/article/details/8299996) + 2. [apk的包名修改](http://www.cnblogs.com/tianxiaozz/archive/2012/12/26/change_apk_package_name.html) + 3. [为Sublime Text安装smali代码语法高亮插件](http://liuzhichao.com/p/1476.html) --- @@ -642,4 +652,4 @@ Born in 1992, now a student of Southeast University, master of software engineer I will graduate in June 2017, expect the internship or full-time job in Android or iOS. -If 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") +If 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") \ No newline at end of file From 9b2501ded654eb0a6e2890da58255b7cf56cc285 Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Fri, 11 Dec 2015 14:53:17 +0800 Subject: [PATCH 57/85] update 2015-12-11 14:53 --- README.md | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 8a47f7b..3d54ed7 100644 --- a/README.md +++ b/README.md @@ -582,12 +582,8 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. ### Smali -1. [Smali--Dalvik虚拟机指令语言-->【android_smali语法学习一】 - - ](http://blog.csdn.net/wdaming1986/article/details/8299996) - +1. [android_smali语法学习](http://blog.csdn.net/wdaming1986/article/details/8299996) 2. [apk的包名修改](http://www.cnblogs.com/tianxiaozz/archive/2012/12/26/change_apk_package_name.html) - 3. [为Sublime Text安装smali代码语法高亮插件](http://liuzhichao.com/p/1476.html) --- @@ -624,18 +620,30 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. ### No category 1. [THE DEX 64K LIMIT IS NOT A PROBLEM ANYMORE, ALMOST](http://www.mutualmobile.com/posts/dex-64k-limit-not-problem-anymore-almost) + 2. [Android 4.4从图库选择图片,获取图片路径并裁剪](http://blog.csdn.net/tempersitu/article/details/20557383) + 3. [浅析android应用增量升级](http://blog.csdn.net/hmg25/article/details/8100896) + 4. [Android四大基本组件介绍与生命周期](http://www.cnblogs.com/bravestarrhu/archive/2012/05/02/2479461.html) + 5. [Android代码优化——使用Android lint工具](http://blog.csdn.net/xyz_lmn/article/details/14222939) + 6. [Android 插件化 动态升级](http://www.trinea.cn/android/android-plugin/) + 7. [Java String StringBuilder StringBuffer](http://www.stormzhang.com/java/2014/08/08/java-string-stringbuilder-stringbuffer/) + 8. [tools:context=".MainActivity的作用](http://blog.csdn.net/caiwenfeng_for_23/article/details/8373569) + 9. [关于APK瘦身值得分享的一些经验](http://www.jianshu.com/p/bd90dee57ad0) + 10. [性能优化之数据库优化](http://www.trinea.cn/android/database-performance/) + 11. [How to check visibility of software keyboard in Android?](http://stackoverflow.com/questions/2150078/how-to-check-visibility-of-software-keyboard-in-android) + 12. [android 4.4.4侧滑退出显示app启动界面](https://github.com/ikew0ng/SwipeBackLayout/issues/45) -13. [Error retrieving parent for item: No resource found that matches the given name after upgrading to AppCompat v23](http://stackoverflow.com/questions/32075498/error-retrieving-parent-for-item-no-resource-found-that-matches-the-given-name) + + ​ --- From 38c119b4ba98d8fc5e05a70aa86d6a6925c4edd7 Mon Sep 17 00:00:00 2001 From: CaoPengfei Date: Mon, 14 Dec 2015 19:22:47 +0800 Subject: [PATCH 58/85] add mvp --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3d54ed7..7551611 100644 --- a/README.md +++ b/README.md @@ -340,7 +340,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 2. [Android中的MVP](http://rocko.xyz/2015/02/06/Android%E4%B8%AD%E7%9A%84MVP/) 3. [开源项目Philm的MVP架构分析](http://www.lightskystreet.com/2015/02/10/philm_mvp/) 4. [一种在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) -5. ​ +5. ​[说说Android的MVP模式](http://toughcoder.net/blog/2015/11/29/understanding-android-mvp-pattern/) --- From 3588283fc3b204b1148acfc4b40723681bb7f5fd Mon Sep 17 00:00:00 2001 From: CaoPengfei Date: Mon, 14 Dec 2015 19:38:42 +0800 Subject: [PATCH 59/85] add eventbus --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 7551611..aebf22f 100644 --- a/README.md +++ b/README.md @@ -186,6 +186,8 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 1. [EventBus使用详解(一)——初步使用EventBus](http://blog.csdn.net/harvic880925/article/details/40660137) 2. [快速Android开发系列通信篇之EventBus](http://www.cnblogs.com/angeldevil/p/3715934.html) +3. [Android EventBus实战 没听过你就out了 +](http://blog.csdn.net/lmj623565791/article/details/40794879) --- From 4427f3b7b6b8d0f7d8e909fb3c8ce30f79a3506e Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Wed, 16 Dec 2015 14:43:52 +0800 Subject: [PATCH 60/85] update 2015-12-16 14:43 --- README.md | 60 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 32 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index 7551611..f5baa2e 100644 --- a/README.md +++ b/README.md @@ -111,9 +111,10 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 3. [Android开发者:你真的会用AsyncTask吗?](http://code.oneapm.com/android/2015/06/02/android1/) 4. [深入解析AsyncTask,多例子版](http://www.cnblogs.com/anee/archive/2012/09/24/2699829.html) -### AndroidAnnotations +### Annotations -1.[AndroidAnnotations框架入门教程三之Android Studio环境配置](http://zhenhappy.github.io/2015/10/13/Android-Annotatios-3-Android-Studio.html) +1. [AndroidAnnotations框架入门教程一之介绍](http://zhenhappy.github.io/2015/10/11/Android-Annotations-1-Introduce.html) +2. [How to stop an animation (cancel() does not work)](http://stackoverflow.com/questions/4112599/how-to-stop-an-animation-cancel-does-not-work) --- @@ -226,6 +227,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 7. [Android Studio 1.0 Gradle Error with getConfiguration()](http://stackoverflow.com/questions/27410183/android-studio-1-0-gradle-error-with-getconfiguration) 8. [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/) 9. [深入理解Android之Gradle](http://blog.csdn.net/innost/article/details/48228651) +10. [gradle build fails on lint task](http://stackoverflow.com/questions/20699147/gradle-build-fails-on-lint-task) ### greenDao @@ -251,7 +253,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. ### Handler -1. [Handler和他的小伙伴们](http://www.jianshu.com/p/e04698eaba88) 轻松理解Handler、message、looper +1. [Handler和他的小伙伴们](http://www.jianshu.com/p/e04698eaba88) ## I @@ -478,6 +480,10 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. ### Textview 1. [Remove underline from links in TextView](http://stackoverflow.com/questions/4096851/remove-underline-from-links-in-textview-android) +2. [What is the default text size on Android?](http://stackoverflow.com/questions/5611411/what-is-the-default-text-size-on-android) +3. [Which unit of measurement does the Paint.setTextSize(float) use?](http://stackoverflow.com/questions/11720093/which-unit-of-measurement-does-the-paint-settextsizefloat-use) +4. [How to set unit for Paint.setTextSize()](http://stackoverflow.com/questions/3061930/how-to-set-unit-for-paint-settextsize) +5. [Android Center text on canvas](http://stackoverflow.com/questions/11120392/android-center-text-on-canvas) ### TouchEvent @@ -580,6 +586,13 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. --- +### JCenter + +1. [Android Studio发布项目到Jcenter](http://blog.saymagic.cn/2015/02/16/release-library-to-jcenter.html) +2. [将Library上传到Jcenter](http://www.jianshu.com/p/0ba8960f80a9) +3. [使用Gradle发布aar项目到JCenter仓库](http://www.cnblogs.com/qianxudetianxia/p/4322331.html) + + ### Smali 1. [android_smali语法学习](http://blog.csdn.net/wdaming1986/article/details/8299996) @@ -614,36 +627,27 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 7. [Creating custom and compound Views in Android - Tutorial](http://www.vogella.com/tutorials/AndroidCustomViews/article.html) 8. [Tutorial: Enhancing Android UI with Custom Views](https://newcircle.com/s/post/1663/tutorial_enhancing_android_ui_with_custom_views_dave_smith_video) 9. [Android 自定义View (一)](http://blog.csdn.net/lmj623565791/article/details/24252901) +10. [What does postInvalidate() do?](http://stackoverflow.com/questions/5521596/what-does-postinvalidate-do) +11. [When it's necessary to execute invalidate() on a View?](http://stackoverflow.com/questions/10647558/when-its-necessary-to-execute-invalidate-on-a-view) +12. [Android笔记:invalidate()和postInvalidate() 的区别及使用](http://blog.csdn.net/mars2639/article/details/6650876) --- ### No category -1. [THE DEX 64K LIMIT IS NOT A PROBLEM ANYMORE, ALMOST](http://www.mutualmobile.com/posts/dex-64k-limit-not-problem-anymore-almost) - -2. [Android 4.4从图库选择图片,获取图片路径并裁剪](http://blog.csdn.net/tempersitu/article/details/20557383) - -3. [浅析android应用增量升级](http://blog.csdn.net/hmg25/article/details/8100896) - -4. [Android四大基本组件介绍与生命周期](http://www.cnblogs.com/bravestarrhu/archive/2012/05/02/2479461.html) - -5. [Android代码优化——使用Android lint工具](http://blog.csdn.net/xyz_lmn/article/details/14222939) - -6. [Android 插件化 动态升级](http://www.trinea.cn/android/android-plugin/) - -7. [Java String StringBuilder StringBuffer](http://www.stormzhang.com/java/2014/08/08/java-string-stringbuilder-stringbuffer/) - -8. [tools:context=".MainActivity的作用](http://blog.csdn.net/caiwenfeng_for_23/article/details/8373569) - -9. [关于APK瘦身值得分享的一些经验](http://www.jianshu.com/p/bd90dee57ad0) - -10. [性能优化之数据库优化](http://www.trinea.cn/android/database-performance/) - -11. [How to check visibility of software keyboard in Android?](http://stackoverflow.com/questions/2150078/how-to-check-visibility-of-software-keyboard-in-android) - -12. [android 4.4.4侧滑退出显示app启动界面](https://github.com/ikew0ng/SwipeBackLayout/issues/45) - - ​ +1. [THE DEX 64K LIMIT IS NOT A PROBLEM ANYMORE, ALMOST](http://www.mutualmobile.com/posts/dex-64k-limit-not-problem-anymore-almost) +2. [Android 4.4从图库选择图片,获取图片路径并裁剪](http://blog.csdn.net/tempersitu/article/details/20557383) +3. [浅析android应用增量升级](http://blog.csdn.net/hmg25/article/details/8100896) +4. [Android四大基本组件介绍与生命周期](http://www.cnblogs.com/bravestarrhu/archive/2012/05/02/2479461.html) +5. [Android代码优化——使用Android lint工具](http://blog.csdn.net/xyz_lmn/article/details/14222939) +6. [Android 插件化 动态升级](http://www.trinea.cn/android/android-plugin/) +7. [Java String StringBuilder StringBuffer](http://www.stormzhang.com/java/2014/08/08/java-string-stringbuilder-stringbuffer/) +8. [tools:context=".MainActivity的作用](http://blog.csdn.net/caiwenfeng_for_23/article/details/8373569) +9. [关于APK瘦身值得分享的一些经验](http://www.jianshu.com/p/bd90dee57ad0) +10. [性能优化之数据库优化](http://www.trinea.cn/android/database-performance/) +11. [How to check visibility of software keyboard in Android?](http://stackoverflow.com/questions/2150078/how-to-check-visibility-of-software-keyboard-in-android) +12. [android 4.4.4侧滑退出显示app启动界面](https://github.com/ikew0ng/SwipeBackLayout/issues/45) ​ +13. [How to get a Color from hexadecimal Color String](http://stackoverflow.com/questions/5248583/how-to-get-a-color-from-hexadecimal-color-string) --- From bffddddf6a837ede9dc6c7a119a58032fabe9ff8 Mon Sep 17 00:00:00 2001 From: jp1017 Date: Thu, 17 Dec 2015 15:50:44 +0800 Subject: [PATCH 61/85] add okhttp etc. 1. add okhttp 2. add Klog --- README.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f5baa2e..7f85c1b 100644 --- a/README.md +++ b/README.md @@ -318,7 +318,8 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. ### Log -1、[Logger工具类](https://github.com/orhanobut/logger) +1. [Logger工具类](https://github.com/orhanobut/logger) +2. [KLog](https://github.com/ZhaoKaiQiang/KLog) --- @@ -366,6 +367,12 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 1. [Android 快速开发系列 ORMLite 框架最佳实践](http://blog.csdn.net/lmj623565791/article/details/39122981) 2. [Android ORM框架之 ORMLite](https://www.zybuluo.com/flyouting/note/6996) +### OkHttp + +1. [开源项目OkHttpPlus——支持GET、POST、UI线程回调、JSON格式解析、链式调用、文件上传下载](http://blog.csdn.net/zhaokaiqiang1992/article/details/50016815) +2. [Android OkHttp完全解析 是时候来了解OkHttp了](http://blog.csdn.net/lmj623565791/article/details/47911083) + + --- ## P @@ -527,6 +534,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 2. [Android中View绘制流程以及invalidate()等相关方法分析](http://blog.csdn.net/qinjuning/article/details/7110211) 3. [Android中measure过程、WRAP_CONTENT详解以及xml布局文件解析流程浅析(上)](http://blog.csdn.net/qinjuning/article/details/8051811) 4. [Android开发:LayoutParams的用法](http://www.cnblogs.com/shaweng/archive/2012/07/10/2585134.html) +5. [Saving Android View state correctly](http://trickyandroid.com/saving-android-view-state-correctly/) ### ViewFlipper @@ -668,4 +676,4 @@ Born in 1992, now a student of Southeast University, master of software engineer I will graduate in June 2017, expect the internship or full-time job in Android or iOS. -If 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") \ No newline at end of file +If 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") From f49b4b994f82bdc00244b753f1fa0085384d0e96 Mon Sep 17 00:00:00 2001 From: CaoPengfei Date: Sun, 27 Dec 2015 19:53:07 +0800 Subject: [PATCH 62/85] Update README.md updaete Android Application Architecture --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9ce8891..ecd715e 100644 --- a/README.md +++ b/README.md @@ -658,6 +658,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 11. [How to check visibility of software keyboard in Android?](http://stackoverflow.com/questions/2150078/how-to-check-visibility-of-software-keyboard-in-android) 12. [android 4.4.4侧滑退出显示app启动界面](https://github.com/ikew0ng/SwipeBackLayout/issues/45) ​ 13. [How to get a Color from hexadecimal Color String](http://stackoverflow.com/questions/5248583/how-to-get-a-color-from-hexadecimal-color-string) +14. [【译】Android应用架构](http://www.jianshu.com/p/8ca27934c6e6) --- From 681904919864ff4e9f975d5762da82411ed6e5dc Mon Sep 17 00:00:00 2001 From: CaoPengfei Date: Sat, 9 Jan 2016 15:37:24 +0800 Subject: [PATCH 63/85] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ecd715e..9486918 100644 --- a/README.md +++ b/README.md @@ -433,6 +433,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 1. [RxJava: Reactive Extensions for the JVM](https://github.com/ReactiveX/RxJava) 2. [给 Android 开发者的 RxJava 详解](http://gank.io/post/560e15be2dca930e00da1083) +3. [NotRxJava懒人专用指南](http://www.devtf.cn/?p=323) ### RandomAccessFile From 6bae6561614a667850f5e1892e65921d6bd42d01 Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Sun, 17 Jan 2016 19:01:30 +0800 Subject: [PATCH 64/85] update 2016-01-17 --- README.md | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 9486918..03f3672 100644 --- a/README.md +++ b/README.md @@ -127,6 +127,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 3. [Android学习笔记进阶16之BitmapShader](http://blog.csdn.net/sjf0115/article/details/7267532) 4. [Android 优化Bitmap避免OutOfMemoryError](http://chjmars.iteye.com/blog/1157137) 5. [Android 异步加载图片,使用LruCache和SD卡或手机缓存,效果非常的流畅](http://blog.csdn.net/xiaanming/article/details/9825113) +6. [Android 开发绕不过的坑:你的 Bitmap 究竟占多大内存?](http://bugly.qq.com/bbs/forum.php?mod=viewthread&tid=498&fromuid=6) ### Broadcast @@ -186,9 +187,12 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. ### EventBus 1. [EventBus使用详解(一)——初步使用EventBus](http://blog.csdn.net/harvic880925/article/details/40660137) + 2. [快速Android开发系列通信篇之EventBus](http://www.cnblogs.com/angeldevil/p/3715934.html) + 3. [Android EventBus实战 没听过你就out了 -](http://blog.csdn.net/lmj623565791/article/details/40794879) + + ](http://blog.csdn.net/lmj623565791/article/details/40794879) --- @@ -374,7 +378,6 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 1. [开源项目OkHttpPlus——支持GET、POST、UI线程回调、JSON格式解析、链式调用、文件上传下载](http://blog.csdn.net/zhaokaiqiang1992/article/details/50016815) 2. [Android OkHttp完全解析 是时候来了解OkHttp了](http://blog.csdn.net/lmj623565791/article/details/47911083) - --- ## P @@ -603,7 +606,6 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 2. [将Library上传到Jcenter](http://www.jianshu.com/p/0ba8960f80a9) 3. [使用Gradle发布aar项目到JCenter仓库](http://www.cnblogs.com/qianxudetianxia/p/4322331.html) - ### Smali 1. [android_smali语法学习](http://blog.csdn.net/wdaming1986/article/details/8299996) @@ -616,14 +618,15 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 1. [Java开发中的23种设计模式详解](http://zz563143188.iteye.com/blog/1847029) 2. [MVC,MVP 和 MVVM 的图示](http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html) +3. [如果让我重新设计一款Android App](http://blog.csdn.net/ahence/article/details/47154419) +4. [一个人如何开发一款 App?](https://www.zhihu.com/question/29020285/answer/66095377?utm_campaign=webshare&utm_source=weibo&utm_medium=zhihu&_t=1445344015624) --- ### 夜间模式 1. [Android Night Mode 夜间模式实现](http://echo.vars.me/android/android-night-mode/) -2. [【 android】夜间模式简单实现](http://www.w2bc.com/Article/43471) -3. [Android夜间模式实现](http://blog.kymjs.com/code/2015/05/26/01/) +2. [Android夜间模式实现](http://blog.kymjs.com/code/2015/05/26/01/) --- @@ -660,6 +663,8 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 12. [android 4.4.4侧滑退出显示app启动界面](https://github.com/ikew0ng/SwipeBackLayout/issues/45) ​ 13. [How to get a Color from hexadecimal Color String](http://stackoverflow.com/questions/5248583/how-to-get-a-color-from-hexadecimal-color-string) 14. [【译】Android应用架构](http://www.jianshu.com/p/8ca27934c6e6) +15. [Android静默安装实现方案,仿360手机助手秒装和智能安装功能](http://blog.csdn.net/guolin_blog/article/details/47803149) +16. [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) --- @@ -680,4 +685,4 @@ Born in 1992, now a student of Southeast University, master of software engineer I will graduate in June 2017, expect the internship or full-time job in Android or iOS. -If 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") +If 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") \ No newline at end of file From 29fce5385c74809e2b3d1767a2ad08e73c3520c0 Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Mon, 18 Jan 2016 22:21:38 +0800 Subject: [PATCH 65/85] update 2016-01-18 22:21 --- README.md | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 03f3672..170bfcc 100644 --- a/README.md +++ b/README.md @@ -96,7 +96,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 6. [Android Studio 权威教程](http://blog.csdn.net/column/details/zsl-androidstudio.html) 7. [倍数提高工作效率的Android Studio奇技](http://zlv.me/posts/2015/07/13/14_android-studio-tips/) 8. [Android Studio 快捷键(Windows)](http://blog.csdn.net/altair86/article/details/8972178) -9. [Android Studio系列教程:安装、基本设置、Gradle基础、打包](http://stormzhang.com) +9. [Android Studio详细教程汇总](http://www.stormzhang.com/devtools/2015/06/17/android-studio-all/) 10. [Android Studio有什么奇技淫巧](http://www.zhihu.com/question/27482725) ### AQuery @@ -187,12 +187,8 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. ### EventBus 1. [EventBus使用详解(一)——初步使用EventBus](http://blog.csdn.net/harvic880925/article/details/40660137) - 2. [快速Android开发系列通信篇之EventBus](http://www.cnblogs.com/angeldevil/p/3715934.html) - -3. [Android EventBus实战 没听过你就out了 - - ](http://blog.csdn.net/lmj623565791/article/details/40794879) +3. [Android EventBus实战 没听过你就out了](http://blog.csdn.net/lmj623565791/article/details/40794879) --- From 8552ff45c83bcf37ebe70e2485c7ece8db7d9404 Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Mon, 1 Feb 2016 12:12:37 +0800 Subject: [PATCH 66/85] update 2016-02-01 12:12 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 170bfcc..78d9136 100644 --- a/README.md +++ b/README.md @@ -661,6 +661,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 14. [【译】Android应用架构](http://www.jianshu.com/p/8ca27934c6e6) 15. [Android静默安装实现方案,仿360手机助手秒装和智能安装功能](http://blog.csdn.net/guolin_blog/article/details/47803149) 16. [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) +17. [IllegalArgumentException: width and height must be > 0 while loading Bitmap from View](http://stackoverflow.com/questions/17605662/illegalargumentexception-width-and-height-must-be-0-while-loading-bitmap-from) --- From 11b1dd07ee1d42451d942b4b7766ffdf7303dd4d Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Sat, 6 Feb 2016 23:40:26 +0800 Subject: [PATCH 67/85] update 2016-02-06 23:40 --- README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 78d9136..b2b876b 100644 --- a/README.md +++ b/README.md @@ -602,11 +602,15 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 2. [将Library上传到Jcenter](http://www.jianshu.com/p/0ba8960f80a9) 3. [使用Gradle发布aar项目到JCenter仓库](http://www.cnblogs.com/qianxudetianxia/p/4322331.html) -### Smali +### 反编译 1. [android_smali语法学习](http://blog.csdn.net/wdaming1986/article/details/8299996) 2. [apk的包名修改](http://www.cnblogs.com/tianxiaozz/archive/2012/12/26/change_apk_package_name.html) 3. [为Sublime Text安装smali代码语法高亮插件](http://liuzhichao.com/p/1476.html) +4. [Android APK反编译详解(附图)](http://blog.csdn.net/ithomer/article/details/6727581) +5. [Android开发学习总结(六)—— APK反编译](http://www.cnblogs.com/xdp-gacl/p/4677145.html) +6. [我是如何使用Android反编译软件的?](http://www.jianshu.com/p/8c24136e0c1f) +7. [Android程序的反编译对抗研究](http://www.freebuf.com/tools/76884.html) --- @@ -616,6 +620,8 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 2. [MVC,MVP 和 MVVM 的图示](http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html) 3. [如果让我重新设计一款Android App](http://blog.csdn.net/ahence/article/details/47154419) 4. [一个人如何开发一款 App?](https://www.zhihu.com/question/29020285/answer/66095377?utm_campaign=webshare&utm_source=weibo&utm_medium=zhihu&_t=1445344015624) +5. [Android应用架构 (Android Dev Summit 2015)](http://blog.zhaiyifan.cn/2016/01/29/android-app-architecture-2015/?from=timeline&isappinstalled=0) +6. [Android源码设计模式分析项目](https://github.com/simple-android-framework-exchange/android_design_patterns_analysis) --- @@ -623,6 +629,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 1. [Android Night Mode 夜间模式实现](http://echo.vars.me/android/android-night-mode/) 2. [Android夜间模式实现](http://blog.kymjs.com/code/2015/05/26/01/) +3. [Android 中 知乎日报和知乎设置夜间模式是怎么样做到不重启Activity的?](https://www.zhihu.com/question/31145990) --- From 25fbcf721b8629f225feb202ba4ea7359c9695d7 Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Sun, 7 Feb 2016 00:36:39 +0800 Subject: [PATCH 68/85] update 2016-02-07 00:36 --- README.md | 37 +++++++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index b2b876b..7b8dc4a 100644 --- a/README.md +++ b/README.md @@ -180,6 +180,10 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 5. [Android网络编程 --断点续传下载文件](http://blog.csdn.net/wwj_748/article/details/20146869) 6. [android 多线程断点续传下载 一](http://blog.csdn.net/shimiso/article/details/6763664) +### Dagger + + + --- ## E @@ -428,6 +432,10 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 6. [Create RecyclerView with multiple view type](http://doublewong.com/2014/create-recyclerview-with-multiple-view-type/) 7. [Simple RecyclerView Divider](https://github.com/troyliu0105/Android-Tips/blob/master/Utils/Content/Simple_RecyclerView_Divider.md) +### Retrofit + + + ### RxJava 1. [RxJava: Reactive Extensions for the JVM](https://github.com/ReactiveX/RxJava) @@ -526,9 +534,11 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. ### ViewPager -1. [ViewPager + Fragment实现滑动标签页](http://blog.csdn.net/lizhenmingdirk/article/details/13631813) -2. [【移动开发】Android中Fragment+ViewPager的配合使用](http://smallwoniu.blog.51cto.com/3911954/1322746) -3. [Android 手把手教您自定义ViewGroup(一)本文出自:【张鸿洋的博客】](http://blog.csdn.net/lmj623565791/article/details/38339817) +1. [Android ViewPager使用详解](http://blog.csdn.net/wangjinyu501/article/details/8169924) +2. [ViewPager + Fragment实现滑动标签页](http://blog.csdn.net/lizhenmingdirk/article/details/13631813) +3. [【移动开发】Android中Fragment+ViewPager的配合使用](http://smallwoniu.blog.51cto.com/3911954/1322746) +4. [Android 手把手教您自定义ViewGroup(一)本文出自:【张鸿洋的博客】](http://blog.csdn.net/lmj623565791/article/details/38339817) +5. [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/) ### View @@ -547,12 +557,16 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 1. [Android--使用VideoView播放视频](http://www.cnblogs.com/plokmju/p/android_videoview.html) 2. [Playing a video in VideoView in Android](http://stackoverflow.com/questions/3263736/playing-a-video-in-videoview-in-android) +3. [Position Video Inside a VideoView](http://stackoverflow.com/questions/4619563/position-video-inside-a-videoview/4855315#4855315) ### Volley 1. [Android Volley](https://github.com/mcxiaoke/android-volley) 2. [Android Volley完全解析(一),初识Volley的基本用法](http://blog.csdn.net/guolin_blog/article/details/17482095) 3. [Android库Volley的使用介绍](https://bxbxbai.github.io/2014/09/14/android-working-with-volley/) +4. [网络请求库Volley详解](http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0526/2934.html) +5. [Volley 源码解析](http://www.codekk.com/blogs/detail/54cfab086c4761e5001b2542) +6. [使用okHttp、Volley、Gson快速组装HttpClinet](http://oakzmm.com/2015/07/22/okHttp-Volley-Gson/) --- @@ -561,15 +575,14 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. ### WebView 1. [WebView详解](http://1.vduntest.sinaapp.com/webview/WebView%E8%AF%A6%E8%A7%A3.html) -2. [Java 与 JavaScript 如何进行交互](http://itangqi.me/2015/03/07/java-and-javascript-interaction-in-android/) -3. [android与javascript交互调用](http://blog.csdn.net/chenzheng_java/article/details/6260872) -4. [Android与js交互实例](http://blog.csdn.net/ithomer/article/details/8737999) -5. [Android中Java和JavaScript交互](http://droidyue.com/blog/2014/09/20/interaction-between-java-and-javascript-in-android/) -6. [顶部带进度条的Webview](http://droidyue.com/blog/2014/07/12/ding-bu-dai-jin-du-tiao-de-webview/) -7. [Android WebView播放视频问题](http://www.stormzhang.com/android/2014/03/23/android-webview-play-video/) -8. [理解WebKit和Chromium: Android 4.4 上的Chromium WebView](http://blog.csdn.net/milado_nju/article/details/17098399) -9. [在WebView中如何让JS与Java安全地互相调用](http://www.pedant.cn/2014/07/04/webview-js-java-interface-research/) -10. [Android WebView的Js对象注入漏洞解决方案](http://blog.csdn.net/leehong2005/article/details/11808557) +2. [Java 与 JavaScript 如何进行交互](http://itangqi.me/2015/03/07/java-and-javascript-interaction/) +3. [Android与js交互实例](http://blog.csdn.net/ithomer/article/details/8737999) +4. [Android中Java和JavaScript交互](http://droidyue.com/blog/2014/09/20/interaction-between-java-and-javascript-in-android/) +5. [顶部带进度条的Webview](http://droidyue.com/blog/2014/07/12/ding-bu-dai-jin-du-tiao-de-webview/) +6. [Android WebView播放视频问题](http://www.stormzhang.com/android/2014/03/23/android-webview-play-video/) +7. [理解WebKit和Chromium: Android 4.4 上的Chromium WebView](http://blog.csdn.net/milado_nju/article/details/17098399) +8. [在WebView中如何让JS与Java安全地互相调用](http://www.pedant.cn/2014/07/04/webview-js-java-interface-research/) +9. [Android WebView的Js对象注入漏洞解决方案](http://blog.csdn.net/leehong2005/article/details/11808557) --- From 0cca2c9ad5aa2a773aa7b9bc6685057e8b51f37c Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Sun, 7 Feb 2016 11:35:58 +0800 Subject: [PATCH 69/85] update 2016-02-07 11:35 --- README.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7b8dc4a..0b1fc74 100644 --- a/README.md +++ b/README.md @@ -464,31 +464,38 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 1. [Android Service完全解析,关于服务你所需知道的一切(上)](http://blog.csdn.net/guolin_blog/article/details/11952435) 2. [ExecutorService 的理解与使用](http://blog.csdn.net/bairrfhoinn/article/details/16848785) 3. [Android基本功:IntentService的使用](http://blog.csdn.net/p106786860/article/details/17885115) +4. [Android基础笔记(十一)- Service基础和注意事项以及Activity与Service的通信](http://blog.csdn.net/biezhihua/article/details/44281029) ### SharedPreference 1. [Android SharedPreferences使用以及原理详解](http://blog.csdn.net/wxyyxc1992/article/details/17222841) 2. [Google为何这样设计OnSharedPreferenceChangeListener](http://droidyue.com/blog/2014/11/29/why-onsharedpreferencechangelistener-was-not-called/) +3. [SharedPreferences在多进程中的使用及注意事项](http://zmywly8866.github.io/2015/09/09/sharedpreferences-in-multiprocess.html) ### SparseArray 1. [Android应用性能优化之使用SparseArray替代HashMap](http://liuzhichao.com/p/832.html) 2. [Android SparseArray](http://lmbj.net/blog/android-sparsearray/) 3. [Android性能优化之使用SparseArray代替HashMap](http://stormzhang.com/android/2013/08/01/android-use-sparsearray-for-performance-optimization/) +4. [HashMap的实现与优化](http://www.jianshu.com/p/e54047b2b563) ### SQLite 1. [Android中SQLite应用详解](http://blog.csdn.net/liuhe688/article/details/6715983) 2. [ANDROID开发之SQLite详解](http://www.cnblogs.com/Excellent/archive/2011/11/19/2254888.html) 3. [使用嵌入式关系型SQLite数据库存储数据](http://justsee.iteye.com/blog/932591) +4. [Android将数据库保存到SD卡的实现](http://zmywly8866.github.io/2015/03/09/android-save-database-in-sdcard.html) ### Support Library -1. [Android Support兼容包详解](https://getpocket.com/a/read/881902653) +1. [Android Support兼容包详解](http://stormzhang.com/android/2015/03/29/android-support-library/) +2. [Android各个Support Library介绍](http://zmywly8866.github.io/2015/10/09/android-support-library.html) +3. [Android Support Library 23.1的变化](http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/1025/3622.html) ### SwipeRefreshLayout 1. [Android SwipeRefreshLayout](http://www.stormzhang.com/android/2014/03/29/android-swiperefreshlayout/) +2. [下拉刷新之 swipeRefreshLayout](http://blog.csdn.net/xinjianwuhen1991/article/details/49914343) --- @@ -506,6 +513,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 1. [两分钟彻底让你明白Android中onInterceptTouchEvent与onTouchEvent(图文)!](http://blog.csdn.net/android_tutor/article/details/7193090) 2. [MotionEvent事件在onInterceptTouchEvent()、onTouchEvent()中的传递顺序](http://www.cnblogs.com/rocky_yi/archive/2011/01/21/1941522.html#) +3. [Android Deeper(00) - Touch事件分发响应机制](http://hukai.me/android-deeper-touch-event-dispatch-process/) ### Thread @@ -527,6 +535,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 1. [Android单元测试](http://www.cnblogs.com/tianzhijiexian/p/4296055.html) 2. [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/) +3. [在Android Studio中进行单元测试和UI测试](http://www.jianshu.com/p/03118c11c199) --- From 8003d3fd8afc6b38bad5aa765a6dc08f0283428e Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Wed, 17 Feb 2016 21:20:50 +0800 Subject: [PATCH 70/85] update 2016-02-17 21:20 --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 0b1fc74..039d83b 100644 --- a/README.md +++ b/README.md @@ -234,6 +234,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 8. [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/) 9. [深入理解Android之Gradle](http://blog.csdn.net/innost/article/details/48228651) 10. [gradle build fails on lint task](http://stackoverflow.com/questions/20699147/gradle-build-fails-on-lint-task) +11. [“Gradle Version 2.10 is required.” Error](http://stackoverflow.com/questions/34814368/gradle-version-2-10-is-required-error) ### greenDao @@ -615,6 +616,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 6. [如何高效利用GitHub](http://www.yangzhiping.com/tech/github.html#q1) 7. [廖雪峰的GIT入门教程](http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000) 8. [GitHub&Git入门基础](http://www.nowcoder.com/courses/2) +9. [git-flow 备忘清单](http://danielkummer.github.io/git-flow-cheatsheet/index.zh_CN.html) --- @@ -691,6 +693,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 15. [Android静默安装实现方案,仿360手机助手秒装和智能安装功能](http://blog.csdn.net/guolin_blog/article/details/47803149) 16. [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) 17. [IllegalArgumentException: width and height must be > 0 while loading Bitmap from View](http://stackoverflow.com/questions/17605662/illegalargumentexception-width-and-height-must-be-0-while-loading-bitmap-from) +18. [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) --- From c8871764a442c0f9c90b016f6b2f2428b86ee442 Mon Sep 17 00:00:00 2001 From: ichenkaihua Date: Sun, 27 Mar 2016 21:30:09 +0800 Subject: [PATCH 71/85] =?UTF-8?q?=E6=B7=BB=E5=8A=A0gradle=E8=84=9A?= =?UTF-8?q?=E6=9C=AC=E9=9B=86=E6=88=90greendao=E6=95=99=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 039d83b..20ddb6c 100644 --- a/README.md +++ b/README.md @@ -241,6 +241,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 1. [ORM 框架之 greenDAO 使用心得](http://itangqi.me/2015/07/26/orm-greendao-summary/) 2. [SQLite数据库框架ORMLite与GreenDao的简单比较](http://blog.csdn.net/xushuaic/article/details/24434881) 3. [在AndoridStudio中引入GreenDAO](http://blog.csdn.net/h3c4lenovo/article/details/43566169) +4. [gradle脚本集成greendao-generator生成android端greendao](http://www.chenkaihua.com/2016/01/05/gradle-integration-greendao_generator-generate-greendao) ### GridView From d0c4622bfd2348e11fcf0d62d2802424d10a0ca5 Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Thu, 21 Apr 2016 13:41:42 +0800 Subject: [PATCH 72/85] update 2016-04-21 13:41 --- README.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 039d83b..244c82a 100644 --- a/README.md +++ b/README.md @@ -182,6 +182,8 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. ### Dagger +1. [Dagger on Android-Dagger2详解](http://blog.fidroid.com/post/android/dagger-on-android-dagger2xiang-jie) +2. [使用Dagger 2进行依赖注入](http://codethink.me/2015/08/06/dependency-injection-with-dagger-2/) --- @@ -257,6 +259,8 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 1. [Android热更新实现原理](http://blog.csdn.net/lzyzsd/article/details/49843581#0-tsina-1-98317-397232819ff9a47a7b7e80a40613cfe1) 2. [Android App 线上热修复方案](http://lirenlong.github.io/hotfix/) 3. [Nuwa](https://github.com/jasonross/Nuwa) +4. [Android 热补丁动态修复框架小结](http://blog.csdn.net/lmj623565791/article/details/49883661) +5. [安卓App热补丁动态修复技术介绍](https://mp.weixin.qq.com/s?__biz=MzI1MTA1MzM2Nw==&mid=400118620&idx=1&sn=b4fdd5055731290eef12ad0d17f39d4a&scene=1&srcid=1106Imu9ZgwybID13e7y2nEi#wechat_redirect) ### Handler @@ -289,7 +293,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 1. [Modern Java - A Guide to Java 8](https://github.com/winterbe/java8-tutorial) 2. [Java8系列 - Java8简明指南](https://biezhi.me/article/java8-tutorial.html) -### Json +### JSON 1. [Android系列---JSON数据解析](http://www.cnblogs.com/xiaoluo501395377/p/3446605.html) 2. [android json解析及简单例子](http://blog.csdn.net/lilu_leo/article/details/7000077) @@ -417,6 +421,8 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 1. [React Native for Android 入门老虎](http://www.race604.com/react-native-for-android-start/) 2. [React Native For Android初体验](http://www.jianshu.com/p/847a54e0c385) +3. [React Native for Android 实践 -- 实现知乎日报客户端](http://www.race604.com/react-native-android-practice/) +4. [React Native Android 踩坑之旅](http://www.alloyteam.com/2015/10/react-native-android-steps-on-tour/) ### Reference @@ -442,6 +448,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 1. [RxJava: Reactive Extensions for the JVM](https://github.com/ReactiveX/RxJava) 2. [给 Android 开发者的 RxJava 详解](http://gank.io/post/560e15be2dca930e00da1083) 3. [NotRxJava懒人专用指南](http://www.devtf.cn/?p=323) +4. [小试RxJava](http://kescoode.com/try-rxjava/) ### RandomAccessFile @@ -714,4 +721,5 @@ Born in 1992, now a student of Southeast University, master of software engineer I will graduate in June 2017, expect the internship or full-time job in Android or iOS. -If 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") \ No newline at end of file +If 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") + From ae8722623fcc3b0663c3bdf141b41dcbf2e716e7 Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Thu, 5 May 2016 12:25:55 +0800 Subject: [PATCH 73/85] update 2016-04-05 12:25 --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 244c82a..a12a985 100644 --- a/README.md +++ b/README.md @@ -69,8 +69,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. ### Adapter 1. [Android简便通用的SimpleBaseAdapter](http://www.stormzhang.com/androidtips/2014/08/31/android-common-simplebaseadapter/) -2. [Android数据适配器(Adapter)优化:使用高效的ViewHolder](http://stackvoid.com/using-adapter-in-efficiency-way/) -3. [Android 快速开发系列 打造万能的ListView GridView 适配器](http://blog.csdn.net/lmj623565791/article/details/38902805/) +2. [Android 快速开发系列 打造万能的ListView GridView 适配器](http://blog.csdn.net/lmj623565791/article/details/38902805/) ### AIDL From caf9c6c62ea5f3b3eafa3b9090106ff8072fc638 Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Sat, 21 May 2016 17:19:30 +0800 Subject: [PATCH 74/85] update 2016-05-21 17:19 --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index a12a985..83e4bda 100644 --- a/README.md +++ b/README.md @@ -138,6 +138,10 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. ## C +### Canvas + +1. [Android利用canvas画各种图形(点、直线、弧、圆、椭圆、文字、矩形、多边形、曲线、圆角矩形)](http://blog.csdn.net/rhljiayou/article/details/7212620) + ### Callback 1. [How to Define Callbacks in Android?](http://stackoverflow.com/questions/3398363/how-to-define-callbacks-in-android) From cd9d63cf81cd67017b97561ef3a7696ebff4a5bf Mon Sep 17 00:00:00 2001 From: windog Date: Fri, 17 Jun 2016 17:04:59 +0800 Subject: [PATCH 75/85] add Activity --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 83e4bda..2d2e674 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,11 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. ### A +### Activity + +1. [Android Activity为什么要细化出onCreate、onStart、onResume、onPause、onStop、onDesdroy这么多方法让应用去重载?](http://blog.csdn.net/zhao_3546/article/details/12843477) + + ### ADB 1. [Installing ADB on Windows 7](https://www.youtube.com/watch?v=5U_BfrXV90I) From 28273019a435889e92ac747961c8645f6ef92e70 Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Sun, 4 Sep 2016 16:32:08 +0800 Subject: [PATCH 76/85] update 2016-09-04 16:32 --- README.md | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/README.md b/README.md index 83e4bda..491ec0b 100644 --- a/README.md +++ b/README.md @@ -79,6 +79,10 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 4. [Android中的跨进程通信的实现(一)——远程调用过程和aidl](http://blog.csdn.net/notice520/article/details/8135600) 5. [Android Studio下如何配置AIDL文件](http://chenqichao.me/2014/05/13/003-Android-Studio-AIDL/) +### AlarmManager + +1. [Android AlarmManager实现不间断轮询服务](http://blog.csdn.net/ryantang03/article/details/9317499) + ### Android-Async-Http 1. [Asynchronous Http Client for Android](https://github.com/loopj/android-async-http) @@ -115,6 +119,11 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 1. [AndroidAnnotations框架入门教程一之介绍](http://zhenhappy.github.io/2015/10/11/Android-Annotations-1-Introduce.html) 2. [How to stop an animation (cancel() does not work)](http://stackoverflow.com/questions/4112599/how-to-stop-an-animation-cancel-does-not-work) +### Android 6.0 + +1. [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/) +2. [Android 6.0 - 动态权限管理的解决方案](http://www.jianshu.com/p/dbe4d37731e6) + --- ## B @@ -153,6 +162,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 1. [Android5.0新控件CardView的介绍和使用](http://www.cnblogs.com/tianzhijiexian/p/4067308.html) 2. [Android CardView Example](http://www.truiton.com/2015/03/android-cardview-example/) 3. [Android CardView Widget – Add Cards to a List using RecyclerView](http://techlovejump.com/android-cardview-widget-example-add-to-list-using-recyclerview/) +4. [CardView在API 21以下的圆角效果处理](http://www.jianshu.com/p/07097b562acb) ### Configuration Change @@ -183,6 +193,11 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 5. [Android网络编程 --断点续传下载文件](http://blog.csdn.net/wwj_748/article/details/20146869) 6. [android 多线程断点续传下载 一](http://blog.csdn.net/shimiso/article/details/6763664) +### DownloadManager + +1. [Android DownloadManager 的使用](http://www.jianshu.com/p/5b1ad56b9cef) + + ### Dagger 1. [Dagger on Android-Dagger2详解](http://blog.fidroid.com/post/android/dagger-on-android-dagger2xiang-jie) @@ -213,6 +228,14 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 6. [Android实战技巧:Fragment的那些坑](http://toughcoder.net/blog/2015/04/30/android-fragment-the-bad-parts/) 7. [android Fragments详解四:管理fragment](http://www.cnblogs.com/mybkn/articles/2455138.html) 8. [Android Fragment 嵌套使用(Nested Fragments)](http://blog.csdn.net/top_code/article/details/37343075) +9. [Fragment MyFragment not attached to Activity](http://stackoverflow.com/questions/10919240/fragment-myfragment-not-attached-to-activity) +10. [Fragment全解析系列(一):那些年踩过的坑](http://www.jianshu.com/p/d9143a92ad94) + +### Fresco + +1. [Fresco学习笔记](http://blog.happyhls.me/2015/08/03/fresco%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/) +2. [why use fresco datasource to get bitmap is empty](http://stackoverflow.com/questions/30477827/why-use-fresco-datasource-to-get-bitmap-is-empty) + ### FlowLayout - 自定义流布局 @@ -321,6 +344,10 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. ## L +### largeHeap + +1. [探究android:largeHeap](http://droidyue.com/blog/2015/08/01/dive-into-android-large-heap/index.html) + ### ListFragment 1. [Android App组件之ListFragment -- 说明和示例](http://www.cnblogs.com/skywang12345/p/3160260.html) @@ -406,6 +433,10 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 1. [Extracting Colors to a Palette with Android Lollipop](https://www.bignerdranch.com/blog/extracting-colors-to-a-palette-with-android-lollipop/) 2. [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) +### PopupWindow + +1. [http://wuxiaolong.me/2015/09/02/SharePopupWindow/](http://wuxiaolong.me/2015/09/02/SharePopupWindow/) + ### Preference 1. [PreferenceActivity(首选项设置页)](http://blog.csdn.net/plussoft/article/details/9993759) @@ -444,6 +475,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. ### Retrofit +1. [我对Retrofit的认识](http://blog.fangjie.info/2016/07/14/%E6%88%91%E5%AF%B9Retrofit%E7%9A%84%E8%AE%A4%E8%AF%86/) ### RxJava @@ -482,6 +514,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 1. [Android SharedPreferences使用以及原理详解](http://blog.csdn.net/wxyyxc1992/article/details/17222841) 2. [Google为何这样设计OnSharedPreferenceChangeListener](http://droidyue.com/blog/2014/11/29/why-onsharedpreferencechangelistener-was-not-called/) 3. [SharedPreferences在多进程中的使用及注意事项](http://zmywly8866.github.io/2015/09/09/sharedpreferences-in-multiprocess.html) +4. [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) ### SparseArray @@ -548,6 +581,13 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 2. [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/) 3. [在Android Studio中进行单元测试和UI测试](http://www.jianshu.com/p/03118c11c199) +### URL Routing - 路由协议 + +1. [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/) +2. [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/) +3. [需要给activity跳转增加路由么?](https://github.com/android-cn/android-discuss/issues/383) +4. [通过 URL 打开 Activity](http://caodongping.me/2016/04/11/%E9%80%9A%E8%BF%87URL%E6%89%93%E5%BC%80Activity/#more) + --- ## V @@ -603,6 +643,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 7. [理解WebKit和Chromium: Android 4.4 上的Chromium WebView](http://blog.csdn.net/milado_nju/article/details/17098399) 8. [在WebView中如何让JS与Java安全地互相调用](http://www.pedant.cn/2014/07/04/webview-js-java-interface-research/) 9. [Android WebView的Js对象注入漏洞解决方案](http://blog.csdn.net/leehong2005/article/details/11808557) +10. [Android WebView播放视频问题](http://www.jianshu.com/p/d6d379e3f41d) --- @@ -636,6 +677,10 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 2. [将Library上传到Jcenter](http://www.jianshu.com/p/0ba8960f80a9) 3. [使用Gradle发布aar项目到JCenter仓库](http://www.cnblogs.com/qianxudetianxia/p/4322331.html) +### JitPack + +1. [优雅的发布Android开源库(论JitPack的优越性)](https://github.com/GcsSloop/AndroidNote/blob/master/Course/ReleaseLibraryByJitPack.md) + ### 反编译 1. [android_smali语法学习](http://blog.csdn.net/wdaming1986/article/details/8299996) @@ -704,6 +749,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 16. [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) 17. [IllegalArgumentException: width and height must be > 0 while loading Bitmap from View](http://stackoverflow.com/questions/17605662/illegalargumentexception-width-and-height-must-be-0-while-loading-bitmap-from) 18. [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) +19. [Unknown URL content://downloads/my_downloads](http://blog.csdn.net/mackkill/article/details/52003858) --- From 8806d59c9635bffa0c74359ca4b2bb100130330c Mon Sep 17 00:00:00 2001 From: Qi Tang Date: Sat, 1 Oct 2016 13:46:20 +0800 Subject: [PATCH 77/85] 2016-10-01 13:46 --- README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/README.md b/README.md index 491ec0b..44c0234 100644 --- a/README.md +++ b/README.md @@ -123,6 +123,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 1. [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/) 2. [Android 6.0 - 动态权限管理的解决方案](http://www.jianshu.com/p/dbe4d37731e6) +3. [聊一聊Android 6.0的运行时权限](http://droidyue.com/blog/2016/01/17/understanding-marshmallow-runtime-permission/) --- @@ -230,6 +231,8 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 8. [Android Fragment 嵌套使用(Nested Fragments)](http://blog.csdn.net/top_code/article/details/37343075) 9. [Fragment MyFragment not attached to Activity](http://stackoverflow.com/questions/10919240/fragment-myfragment-not-attached-to-activity) 10. [Fragment全解析系列(一):那些年踩过的坑](http://www.jianshu.com/p/d9143a92ad94) +11. [onActivityResult is not being called in Fragment](http://stackoverflow.com/questions/6147884/onactivityresult-is-not-being-called-in-fragment) +12. []() ### Fresco @@ -485,6 +488,10 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 3. [NotRxJava懒人专用指南](http://www.devtf.cn/?p=323) 4. [小试RxJava](http://kescoode.com/try-rxjava/) +### RxAndroid + +1. [IllegalStateException onError](https://github.com/ReactiveX/RxAndroid/issues/79) + ### RandomAccessFile 1. [Java RandomAccessFile用法](http://blog.csdn.net/akon_vm/article/details/7429245) @@ -599,6 +606,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 3. [【移动开发】Android中Fragment+ViewPager的配合使用](http://smallwoniu.blog.51cto.com/3911954/1322746) 4. [Android 手把手教您自定义ViewGroup(一)本文出自:【张鸿洋的博客】](http://blog.csdn.net/lmj623565791/article/details/38339817) 5. [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/) +6. [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) ### View @@ -750,6 +758,10 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 17. [IllegalArgumentException: width and height must be > 0 while loading Bitmap from View](http://stackoverflow.com/questions/17605662/illegalargumentexception-width-and-height-must-be-0-while-loading-bitmap-from) 18. [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) 19. [Unknown URL content://downloads/my_downloads](http://blog.csdn.net/mackkill/article/details/52003858) +20. [Android开发之实现多次点击事件](http://blog.csdn.net/fengshizty/article/details/41675923) +21. [Android完美解决输入框EditText隐藏密码打勾显示密码问题](http://blog.csdn.net/a2bgeek/article/details/9705305) +22. [Android获取手机型号,系统版本,App版本号等信息](http://blog.csdn.net/lfdfhl/article/details/9070183) +23. [你需要知道的Android拍照适配方案](http://www.jianshu.com/p/f269bcda335f) --- From 3295540ba31c28284f4e40cf643d44f4e9b55b4d Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Fri, 7 Oct 2016 11:30:18 +0800 Subject: [PATCH 78/85] update 2016-10-07 11:30 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 44c0234..c53378a 100644 --- a/README.md +++ b/README.md @@ -232,12 +232,12 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 9. [Fragment MyFragment not attached to Activity](http://stackoverflow.com/questions/10919240/fragment-myfragment-not-attached-to-activity) 10. [Fragment全解析系列(一):那些年踩过的坑](http://www.jianshu.com/p/d9143a92ad94) 11. [onActivityResult is not being called in Fragment](http://stackoverflow.com/questions/6147884/onactivityresult-is-not-being-called-in-fragment) -12. []() ### Fresco 1. [Fresco学习笔记](http://blog.happyhls.me/2015/08/03/fresco%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/) 2. [why use fresco datasource to get bitmap is empty](http://stackoverflow.com/questions/30477827/why-use-fresco-datasource-to-get-bitmap-is-empty) +3. [Fresco-Facebook的图片加载框架的使用](http://www.voidcn.com/blog/chwnpp2/article/p-5761715.html) ### FlowLayout - 自定义流布局 From 2238709ad6e08e7177b72fcb54f2b280a333702b Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Fri, 7 Oct 2016 11:32:00 +0800 Subject: [PATCH 79/85] update 2016-10-07 11:31 --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index c53378a..80a8660 100644 --- a/README.md +++ b/README.md @@ -237,7 +237,6 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 1. [Fresco学习笔记](http://blog.happyhls.me/2015/08/03/fresco%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/) 2. [why use fresco datasource to get bitmap is empty](http://stackoverflow.com/questions/30477827/why-use-fresco-datasource-to-get-bitmap-is-empty) -3. [Fresco-Facebook的图片加载框架的使用](http://www.voidcn.com/blog/chwnpp2/article/p-5761715.html) ### FlowLayout - 自定义流布局 From 62acec5e49b392d3e2c59db73c6dfb1f7b45241a Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Sat, 26 Nov 2016 17:11:48 +0800 Subject: [PATCH 80/85] Updated 2016-11-26 17:11 --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 80a8660..22c7277 100644 --- a/README.md +++ b/README.md @@ -124,6 +124,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 1. [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/) 2. [Android 6.0 - 动态权限管理的解决方案](http://www.jianshu.com/p/dbe4d37731e6) 3. [聊一聊Android 6.0的运行时权限](http://droidyue.com/blog/2016/01/17/understanding-marshmallow-runtime-permission/) +4. [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) --- @@ -237,6 +238,10 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 1. [Fresco学习笔记](http://blog.happyhls.me/2015/08/03/fresco%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/) 2. [why use fresco datasource to get bitmap is empty](http://stackoverflow.com/questions/30477827/why-use-fresco-datasource-to-get-bitmap-is-empty) +3. [Always cannot show the images when loading lots of bitmaps on screen](https://github.com/facebook/fresco/issues/256) +4. [SimpleDraweeView did not recycled in RecyclerView](https://github.com/facebook/fresco/issues/414) +5. [Fresco-Facebook的图片加载框架的使用](http://www.voidcn.com/blog/chwnpp2/article/p-5761715.html) +6. [Resizing and Rotating](http://frescolib.org/docs/resizing-rotating.html#_) ### FlowLayout - 自定义流布局 From 9a2cf29cdeb55dd42257144a5ce70f547965bfc5 Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Sat, 17 Dec 2016 21:16:20 +0800 Subject: [PATCH 81/85] Updated 2016-12-17 21:16 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 22c7277..b79bcc6 100644 --- a/README.md +++ b/README.md @@ -766,6 +766,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 21. [Android完美解决输入框EditText隐藏密码打勾显示密码问题](http://blog.csdn.net/a2bgeek/article/details/9705305) 22. [Android获取手机型号,系统版本,App版本号等信息](http://blog.csdn.net/lfdfhl/article/details/9070183) 23. [你需要知道的Android拍照适配方案](http://www.jianshu.com/p/f269bcda335f) +24. [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) --- From c030611ea055873eb9639fc77ccbfef432f4e3a8 Mon Sep 17 00:00:00 2001 From: Henryzhu Date: Tue, 14 Feb 2017 15:50:51 +0800 Subject: [PATCH 82/85] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b79bcc6..6715d78 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. 1. [Installing ADB on Windows 7](https://www.youtube.com/watch?v=5U_BfrXV90I) 2. [Android ADB常用命令](http://android.jobbole.com/61592/) 3. [Android开发调试工具ADB的使用](http://www.cnblogs.com/meil/archive/2012/05/24/2516055.html) -4. [Android通过Wifi来调试你的应用](http://www.stormzhang.com/android/2014/08/27/adb-over-wifi/) +4. [Android通过Wifi来调试你的应用](http://stormzhang.com/android/2014/08/27/adb-over-wifi/) 5. [Adb connection Error:远程主机强迫关闭了一个现有的连接](http://www.oschina.net/question/54100_33209) ### Adapter From e9b30777b0dc65715a0f518594828fa2839fed22 Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Tue, 4 Apr 2017 15:33:09 +0800 Subject: [PATCH 83/85] Updated: 2017-04-04 15:33 --- README.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index b79bcc6..6a9a9d2 100644 --- a/README.md +++ b/README.md @@ -343,9 +343,15 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. ### Kotlin -1. [Kotlin Programming Language](https://github.com/JetBrains/kotlin) -2. [Kotlin中文站点](http://kotlinlang.cn/) -3. [使用Kotlin进行Android开发](http://ragnraok.github.io/using-kotlin-to-write-android-app.html) +1. [Using Kotlin for Android Development](http://itangqi.me/2017/03/28/using-kotlin-for-android-development/) +2. [Kotlin: Java 6 废土中的一线希望](https://realm.io/cn/news/droidcon-michael-pardo-kotlin/) +3. [Kotlin 语言高级安卓开发入门](https://realm.io/cn/news/oredev-jake-wharton-kotlin-advancing-android-dev/) +4. [Kotlin的黑魔法](http://blog.inico.me/2016/10/26/Kotlin-Magic-Java-Swift#.WONK-nR972R) +5. [Learn Kotlin with Keddit](https://medium.com/@juanchosaravia/learn-kotlin-while-developing-an-android-app-introduction-567e21ff9664) +6. [Coding Android Apps in Kotlin](https://code.tutsplus.com/series/coding-android-apps-in-kotlin--cms-1119) +7. [Kotlin 一门强大的语言](https://kymjs.com/column/kotlin.html) +8. [kotlin 学习](https://www.feel88.cn/2016/09/21/kotlin%E5%AD%A6%E4%B9%A0/) +9. [Kotlin从入门到『放弃』系列 视频教程](https://github.com/enbandari/Kotlin-Tutorials) --- From 9ef27ec99d7abc95c17536c9cb8b6b42b4b0d7e3 Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Sun, 12 Nov 2017 19:01:42 +0800 Subject: [PATCH 84/85] Removed the useless link. --- README.md | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index b928cfd..0badf0a 100644 --- a/README.md +++ b/README.md @@ -652,16 +652,15 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. ### WebView -1. [WebView详解](http://1.vduntest.sinaapp.com/webview/WebView%E8%AF%A6%E8%A7%A3.html) -2. [Java 与 JavaScript 如何进行交互](http://itangqi.me/2015/03/07/java-and-javascript-interaction/) -3. [Android与js交互实例](http://blog.csdn.net/ithomer/article/details/8737999) -4. [Android中Java和JavaScript交互](http://droidyue.com/blog/2014/09/20/interaction-between-java-and-javascript-in-android/) -5. [顶部带进度条的Webview](http://droidyue.com/blog/2014/07/12/ding-bu-dai-jin-du-tiao-de-webview/) -6. [Android WebView播放视频问题](http://www.stormzhang.com/android/2014/03/23/android-webview-play-video/) -7. [理解WebKit和Chromium: Android 4.4 上的Chromium WebView](http://blog.csdn.net/milado_nju/article/details/17098399) -8. [在WebView中如何让JS与Java安全地互相调用](http://www.pedant.cn/2014/07/04/webview-js-java-interface-research/) -9. [Android WebView的Js对象注入漏洞解决方案](http://blog.csdn.net/leehong2005/article/details/11808557) -10. [Android WebView播放视频问题](http://www.jianshu.com/p/d6d379e3f41d) +1. [Java 与 JavaScript 如何进行交互](http://itangqi.me/2015/03/07/java-and-javascript-interaction/) +2. [Android与js交互实例](http://blog.csdn.net/ithomer/article/details/8737999) +3. [Android中Java和JavaScript交互](http://droidyue.com/blog/2014/09/20/interaction-between-java-and-javascript-in-android/) +4. [顶部带进度条的Webview](http://droidyue.com/blog/2014/07/12/ding-bu-dai-jin-du-tiao-de-webview/) +5. [Android WebView播放视频问题](http://www.stormzhang.com/android/2014/03/23/android-webview-play-video/) +6. [理解WebKit和Chromium: Android 4.4 上的Chromium WebView](http://blog.csdn.net/milado_nju/article/details/17098399) +7. [在WebView中如何让JS与Java安全地互相调用](http://www.pedant.cn/2014/07/04/webview-js-java-interface-research/) +8. [Android WebView的Js对象注入漏洞解决方案](http://blog.csdn.net/leehong2005/article/details/11808557) +9. [Android WebView播放视频问题](http://www.jianshu.com/p/d6d379e3f41d) --- From eca3bcd4eb340f42969b12639cda0a9002d78ae1 Mon Sep 17 00:00:00 2001 From: tangqi92 Date: Mon, 13 Nov 2017 00:28:25 +0800 Subject: [PATCH 85/85] Updated the README. --- README.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 0badf0a..01b2406 100644 --- a/README.md +++ b/README.md @@ -273,7 +273,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. ### greenDao -1. [ORM 框架之 greenDAO 使用心得](http://itangqi.me/2015/07/26/orm-greendao-summary/) +1. [ORM 框架之 greenDAO 使用心得](http://imtangqi.com/2015/07/26/orm-greendao-summary/) 2. [SQLite数据库框架ORMLite与GreenDao的简单比较](http://blog.csdn.net/xushuaic/article/details/24434881) 3. [在AndoridStudio中引入GreenDAO](http://blog.csdn.net/h3c4lenovo/article/details/43566169) @@ -343,7 +343,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. ### Kotlin -1. [Using Kotlin for Android Development](http://itangqi.me/2017/03/28/using-kotlin-for-android-development/) +1. [Using Kotlin for Android Development](http://imtangqi.com/2017/03/28/using-kotlin-for-android-development/) 2. [Kotlin: Java 6 废土中的一线希望](https://realm.io/cn/news/droidcon-michael-pardo-kotlin/) 3. [Kotlin 语言高级安卓开发入门](https://realm.io/cn/news/oredev-jake-wharton-kotlin-advancing-android-dev/) 4. [Kotlin的黑魔法](http://blog.inico.me/2016/10/26/Kotlin-Magic-Java-Swift#.WONK-nR972R) @@ -652,7 +652,7 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. ### WebView -1. [Java 与 JavaScript 如何进行交互](http://itangqi.me/2015/03/07/java-and-javascript-interaction/) +1. [Java 与 JavaScript 如何进行交互](http://imtangqi.com/2015/03/07/java-and-javascript-interaction/) 2. [Android与js交互实例](http://blog.csdn.net/ithomer/article/details/8737999) 3. [Android中Java和JavaScript交互](http://droidyue.com/blog/2014/09/20/interaction-between-java-and-javascript-in-android/) 4. [顶部带进度条的Webview](http://droidyue.com/blog/2014/07/12/ding-bu-dai-jin-du-tiao-de-webview/) @@ -779,18 +779,19 @@ Welcome `Star` and `Fork`, your support is my greatest affirmation. - [troyliu0105](https://github.com/troyliu0105) - [whiskeyfei](https://github.com/whiskeyfei) +- [pingfanganwei](https://github.com/pingfanganwei) +- [whilu](https://github.com/whilu) +- [yy1300326388](https://github.com/yy1300326388) +- [ichenkaihua](https://github.com/ichenkaihua) - [wavever](https://github.com/wavever) +- [windog](https://github.com/windog) +- [Henryzhugithub](https://github.com/Henryzhugithub) +- [Dimon94](https://github.com/Dimon94) - [nitta-honoka](https://github.com/nitta-honoka) -- [jywanghold](https://github.com/jywanghold) -- [yy1300326388](https://github.com/yy1300326388) --- ## Contact Me -Born in 1992, now a student of Southeast University, master of software engineerin. Loving technology, programming, reading and sports. - -I will graduate in June 2017, expect the internship or full-time job in Android or iOS. - If 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")