├── document ├── 301相册审定.doc ├── 普易软件上线流程.docx ├── 普易软件上线流程图.pdf ├── 我与普资的故事_初稿.txt ├── 301班聚会纪念册文字编辑bc.docx └── OPEN.bat ├── android_YijiNetworkDemo.zip ├── photo ├── 301_20170915203731.jpg ├── 301_20170915203752.jpg ├── 301_20170915203805.jpg ├── 301_20170915203821.jpg └── 301_20170915203834.jpg ├── UI ├── Dialog.md ├── ExpandableTextView.md ├── SwitchCompat.md ├── PopupWindow.md ├── 下拉框.md ├── RecyclerView.md └── EditText.md ├── SeekBar └── README.md ├── java ├── README.md ├── Lambda.md └── Java 接口.md ├── android ├── Android源码.md ├── AndroidVector.md ├── JNI与NDK.md ├── JUnit教程.md ├── Dagger2.md ├── Lottie.md ├── Android官方文档.md ├── Android架构.md ├── Glide.md ├── Android跨进程通信IPC.md ├── Android专栏.md ├── Fragment.md ├── Android接口定义语言AIDL.md ├── Android指纹识别.md ├── Markdown.md ├── Android多线程.md ├── OkHttp3.md ├── MaterialDesign.md ├── WebView.md ├── Android开发框架.md ├── Android四大组件.md ├── AndroidToolBar.md ├── Android设计规范.md ├── 国内顶尖团队的开源地址.md ├── Android二维码.md ├── Android混淆.md ├── Android图表.md ├── 底部菜单&头部导航栏.md ├── Android消息处理机制.md ├── Android开放源码.md ├── Android库及开发工具类.md ├── 下拉刷新上拉加载.md ├── AndroidStudio3.md ├── ButterKnife.md ├── EventBus.md ├── Gradle.md ├── Retrofit.md ├── Android优化.md ├── SQLite.md ├── Android动画.md ├── Android键盘.md ├── Android签名.md ├── MVP专题.md ├── Windows下安装SQLite记录.md └── Spinner.md ├── Video ├── Android视频基础.md ├── README.md ├── Photo.md ├── Android视频录制.md ├── Android读取本地视频.md └── Android视频播放.md ├── AndroidRoom.md ├── UML类图.md ├── 安全与逆向 └── README.md ├── weixin └── WeChatDevelopment.md ├── Flutter.md ├── map └── README.md ├── 直播平台.md ├── translation └── README.md ├── Kotlin └── Kotlin.md ├── h5 ├── README.md └── h5打开APP.txt ├── pay └── README.md ├── SharePush.md ├── Git教程.md ├── Andriodx └── README.md ├── Audio └── README.md └── README.md /document/301相册审定.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hncgc/Android/HEAD/document/301相册审定.doc -------------------------------------------------------------------------------- /document/普易软件上线流程.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hncgc/Android/HEAD/document/普易软件上线流程.docx -------------------------------------------------------------------------------- /document/普易软件上线流程图.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hncgc/Android/HEAD/document/普易软件上线流程图.pdf -------------------------------------------------------------------------------- /document/我与普资的故事_初稿.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hncgc/Android/HEAD/document/我与普资的故事_初稿.txt -------------------------------------------------------------------------------- /android_YijiNetworkDemo.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hncgc/Android/HEAD/android_YijiNetworkDemo.zip -------------------------------------------------------------------------------- /document/301班聚会纪念册文字编辑bc.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hncgc/Android/HEAD/document/301班聚会纪念册文字编辑bc.docx -------------------------------------------------------------------------------- /photo/301_20170915203731.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hncgc/Android/HEAD/photo/301_20170915203731.jpg -------------------------------------------------------------------------------- /photo/301_20170915203752.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hncgc/Android/HEAD/photo/301_20170915203752.jpg -------------------------------------------------------------------------------- /photo/301_20170915203805.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hncgc/Android/HEAD/photo/301_20170915203805.jpg -------------------------------------------------------------------------------- /photo/301_20170915203821.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hncgc/Android/HEAD/photo/301_20170915203821.jpg -------------------------------------------------------------------------------- /photo/301_20170915203834.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hncgc/Android/HEAD/photo/301_20170915203834.jpg -------------------------------------------------------------------------------- /UI/Dialog.md: -------------------------------------------------------------------------------- 1 | Dialog 2 | === 3 | 4 | [Android常见的三种弹框 Dialog](https://blog.csdn.net/qq_35698774/article/details/79779238) 5 | -------------------------------------------------------------------------------- /document/OPEN.bat: -------------------------------------------------------------------------------- 1 | netsh wlan set hostednetwork mode=allow 2 | netsh wlan set hostednetwork ssid=OPEN2 key=12345678 3 | netsh wlan start hostednetwork -------------------------------------------------------------------------------- /SeekBar/README.md: -------------------------------------------------------------------------------- 1 | SeekBar 2 | === 3 | 4 | [SeekBar](https://www.jianshu.com/p/6e8aa1495990) 5 | 6 | [GitHub BubbleSeekBar](https://github.com/woxingxiao/BubbleSeekBar) 7 | 自定义SeekBar,进度变化由可视化气泡样式呈现 8 | 9 | [自定义 SeekBar,进度变化由可视化气泡样式呈现](http://p.codekk.com/detail/android/woxingxiao/bubbleseekbar) 10 | -------------------------------------------------------------------------------- /java/README.md: -------------------------------------------------------------------------------- 1 | Java 2 | === 3 | 4 | [Java教程](https://github.com/hncgc/Android/blob/master/java/Java%E6%95%99%E7%A8%8B.md) 5 | 6 | [Java 接口](https://github.com/hncgc/Android/blob/master/java/Java%20%E6%8E%A5%E5%8F%A3.md) 7 | 8 | [Lambda](https://github.com/hncgc/Android/blob/master/java/Lambda.md) 9 | 10 | -------------------------------------------------------------------------------- /android/Android源码.md: -------------------------------------------------------------------------------- 1 | Android 源码 2 | === 3 | 4 | [Android 源代码](https://www.androidos.net.cn/) 5 | 6 | [Android 文章](https://www.androidos.net.cn/articles) 7 | 8 | [Android 工具](https://www.androidos.net.cn/tools) 9 | 10 | [GithubApp](https://github.com/mingjunli/GithubApp) 11 | 12 | > A Github Client App with MVP architecture use Dagger2, RxJava, Retrofit, Okhttp http://blog.lmj.wiki/GithubApp 13 | 14 | CoderPub 中文说明 http://blog.lmj.wiki/GithubApp/ 15 | -------------------------------------------------------------------------------- /UI/ExpandableTextView.md: -------------------------------------------------------------------------------- 1 | ExpandableTextView 2 | === 3 | 4 | [Android ExpandableTextView-自定义可以动态展开/收缩显示长文本的TextView](https://blog.csdn.net/yeah0126/article/details/52060210) 5 | 6 | [用开源项目ExpandableTextView打造可以下拉扩展的TextView](https://www.cnblogs.com/tianzhijiexian/p/4214577.html) 7 | 8 | [ExpandableTextView——一个可折叠的Textview](https://blog.csdn.net/qq_37237245/article/details/73559055) 9 | 10 | [关于ExpandableTextView几点优化](https://www.jianshu.com/p/f5e5e579796f) 11 | 12 | 13 | -------------------------------------------------------------------------------- /Video/Android视频基础.md: -------------------------------------------------------------------------------- 1 | Android视频基础 2 | === 3 | 4 | [Android教程](https://www.yiibai.com/android/) 5 | 6 | [Android视频开发基础(一)](https://blog.csdn.net/goodlixueyong/article/details/62058805) 7 | 8 | [Android视频开发基础(二)](https://blog.csdn.net/goodlixueyong/article/details/62447452) 9 | 10 | [Android视频开发基础(三)](https://blog.csdn.net/goodlixueyong/article/details/84711569) 11 | 12 | [Android视频开发基础(四)](https://blog.csdn.net/goodlixueyong/article/details/62447486) 13 | 14 | http-flv协议 15 | 直播协议: rtmp、 http-flv、 hls 16 | 17 | -------------------------------------------------------------------------------- /android/AndroidVector.md: -------------------------------------------------------------------------------- 1 | Android vector 2 | --- 3 | Android vector Path Data画图详解 4 | http://www.w2bc.com/article/132096 5 | 6 | Android vector标签 PathData 画图超详解 7 | http://blog.csdn.net/easyer2012/article/details/52618228 8 | 9 | 10 | Android学好Shape不再依赖美工 11 | http://www.aiuxian.com/article/p-628585.html 12 | 13 | 贝塞尔曲线 14 | --- 15 | BezierMaker 16 | 这个开源库演示了1-7阶贝塞尔曲线的形成过程,让我们直观的看到1-7阶贝塞尔曲线的形成动画,相当牛逼 17 | 项目地址:https://github.com/venshine/BezierMaker 18 | 19 | MetaballLoading 20 | 一个有贝塞尔曲线动画的加载提示框 21 | 项目地址:https://github.com/dodola/MetaballLoading 22 | -------------------------------------------------------------------------------- /android/JNI与NDK.md: -------------------------------------------------------------------------------- 1 | NDK 2 | --- 3 | 4 | [NDK 入门指南](https://developer.android.google.cn/ndk/guides/index.html) 5 | 6 | [Android NDK | Android Developers](https://developer.android.google.cn/ndk/index.html) 7 | 8 | [Android:JNI 与 NDK到底是什么?(含实例教学)](http://blog.csdn.net/carson_ho/article/details/73250163) 9 | 10 | [一定能成功的Android NDK环境配置教程](http://blog.csdn.net/carson_ho/article/details/73250111) 11 | 12 | [NDK开发 从入门到放弃(一:基本流程入门了解)](http://blog.csdn.net/xiaoyu_93/article/details/52870395) 13 | 14 | [Android JNI/NDK开发(一)NDK真的很难吗?](http://blog.csdn.net/u014702653/article/details/51861013) 15 | 16 | 17 | -------------------------------------------------------------------------------- /java/Lambda.md: -------------------------------------------------------------------------------- 1 | Lambda 2 | --- 3 | Java 8 Lambda表达式探险 4 | http://www.cnblogs.com/feichexia/archive/2012/11/15/Java8_LambdaExpression.html 5 | 6 | 在Android上使用Lambda表达式 - retrolambda插件 7 | http://blog.csdn.net/codezjx/article/details/51327164 8 | 9 | apply plugin: 'me.tatarka.retrolambda' 10 | 在Android上使用Lambda表达式 - retrolambda插件 11 | http://blog.csdn.net/codezjx/article/details/51327164 12 | 13 | 在Android上使用官方Lambda支持 - Android N & Jack工具(兼容旧平台) 14 | http://blog.csdn.net/codezjx/article/details/51327421 15 | 16 | 【Android】Lambda表达式 17 | http://blog.csdn.net/qq_33387077/article/details/51669957 18 | Demo: https://github.com/zxp19920626/ZxpDemo 19 | 20 | -------------------------------------------------------------------------------- /AndroidRoom.md: -------------------------------------------------------------------------------- 1 | Android Room 2 | === 3 | 4 | [Android Room 官方指南](https://blog.csdn.net/u011897062/article/details/82107709) 5 | 6 | ~~~ 7 | //room persistence 8 | implementation 'android.arch.persistence.room:runtime:1.1.1' 9 | annotationProcessor "android.arch.persistence.room:compiler:1.1.1" 10 | ~~~ 11 | 12 | [谷歌官方Android应用架构库——Room 持久化库](https://blog.csdn.net/hubinqiang/article/details/73012353) 13 | 14 | [Android Room Orm框架学习](https://www.jianshu.com/p/29e5e8c75450) 15 | 16 | [Android arch - Room 的使用](https://blog.csdn.net/qq_31872881/article/details/81388908) 17 | 18 | [Android Room使用](https://www.jianshu.com/p/7354d5048597) 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /UML类图.md: -------------------------------------------------------------------------------- 1 | # UML类图 2 | > (Unified Modeling Language统一建模语言) 3 | 4 | [UML类图入门,看完基本懂了怎么画图了](https://blog.csdn.net/badobad/article/details/50914624) 5 | 6 | [UML类图画法及其之间的几种关系](https://blog.csdn.net/wanmeirongyan100/article/details/51601570) 7 | 8 | [UML类图入门,看完基本懂了怎么画图了](https://blog.csdn.net/badobad/article/details/50914624) 9 | 10 | [Android Studio中绘制UML类图介绍](https://blog.csdn.net/shuitawuhen/article/details/52690528) 11 | 12 | [Androidstudio 最快的生成UML图](https://blog.csdn.net/changsimeng/article/details/54572636) 13 | 14 | [Android Studio下自动生成UML图](https://blog.csdn.net/nanyi545/article/details/51368037) 15 | 16 | [AndroidStudio中使用plantUML](https://blog.csdn.net/u013831257/article/details/50118461) 17 | -------------------------------------------------------------------------------- /安全与逆向/README.md: -------------------------------------------------------------------------------- 1 | 安全与逆向 2 | === 3 | 4 | [Android应用保护](https://www.kiwisec.com/product/app-encrypt.html) 5 | 6 | [Android逆向之旅---解析编译之后的AndroidManifest文件格式](https://blog.csdn.net/jiangwei0910410003/article/details/50568487) 7 | 8 | [AXMLPrinter2 官方版](https://www.xiazaiba.com/html/29724.html) 9 | AndroidManifest.xml反编译工具 10 | ~~~ 11 | axmlprinter2.jar 使用方法: 12 | 1、必须安装java运行环境jre 13 | 2、把需要反编译解密的xml文件复制到AXMLPrinter2.jar所在目录,如AndroidManifest.xml。 14 | 3、在AXMLPrinter2.jar所在目录按住shift+右键,选择“在此处打开命令窗口”菜单,输入如下命令: 15 | java -jar AXMLPrinter2.jar AndroidManifest.xml > AndroidManifest.txt 16 | 4、生成的AndroidManifest.txt就是明文xml格式文件了。 17 | ~~~ 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /UI/SwitchCompat.md: -------------------------------------------------------------------------------- 1 | ## SwitchCompat 2 | 3 | 4 | SwitchCompat 5 | --- 6 | 7 | [SwitchCompat与Switch简单使用](https://blog.csdn.net/student9128/article/details/58669389) 8 | 9 | [Android SwitchCompat 自定义颜色及使用](https://www.cnblogs.com/zhujiabin/p/5675460.html) 10 | 11 | [给 SwitchCompat 设置颜色的方法](https://blog.csdn.net/zhaizu/article/details/74496379) 12 | 13 | [Android SwitchCompat开关按钮自定义颜色和样式](https://blog.csdn.net/andguohaolei/article/details/72954010) 14 | 15 | 16 | Switch 17 | --- 18 | 19 | [android开关按钮Switch样式修改](https://www.jianshu.com/p/f5d03dcb6e10) 20 | 21 | [Android 自定义Switch开关按钮的样式](https://www.jianshu.com/p/4e436300f328) 22 | 23 | [GitBUS: SwitchViewDemo](https://github.com/alidili/Demos/tree/master/SwitchViewDemo) 24 | -------------------------------------------------------------------------------- /android/JUnit教程.md: -------------------------------------------------------------------------------- 1 | JUnit教程 2 | --------- 3 | http://www.yiibai.com/junit/ 4 | JUnit是一个Java编程语言编写的单元测试框架 5 | 集成测试应该使用TestNG来代替 6 | https://github.com/junit-team/junit4 7 | 8 | JUnit介绍,JUnit是什么? 9 | http://www.yiibai.com/junit/what-is-junit.html#article-start 10 | 11 | android-apt 12 | http://www.jianshu.com/p/2494825183c5 13 | 14 | https://www.cnblogs.com/libertycode/p/6284800.html 15 | 16 | Gradle Android Apt Plugin 下载 17 | http://mvnrepository.com/artifact/com.neenbedankt.gradle.plugins/android-apt 18 | 19 | Android APT及基于APT的简单应用 20 | http://www.jianshu.com/p/94979c056b20 21 | APT可以把注解,在编译时生成代码。 22 | 例子详见https://github.com/songwenju/APTProject 23 | 24 | Android注解-编译时生成代码 (APT) 25 | http://blog.csdn.net/a1018875550/article/details/52166916 26 | https://github.com/a1018875550/ViewInject/tree/master 27 | -------------------------------------------------------------------------------- /android/Dagger2.md: -------------------------------------------------------------------------------- 1 | Dagger2 2 | --- 3 | Dagger表示 有向非循环图(Directed Acyclic Graph, DAGger) 4 | 5 | [依赖注入库 Dagger2 的使用方法](http://www.tuicool.com/articles/uAN7ZbZ) 6 | 7 | [Android中的MVP模式,带实例](http://www.jianshu.com/p/9d40b298eca9) 8 | 本博客原地址:http://www.jianshu.com/p/9d40b298eca9 9 | 项目github地址:https://github.com/CameloeAnthony/AndroidMVPDemo 10 | 11 | [Dagger2从入门到放弃再到恍然大悟](http://www.jianshu.com/p/39d1df6c877d) 12 | https://github.com/hncgc/pccbAndroidApp/wiki 13 | 14 | [Android项目源码基于MVP+Dagger2+Retrofit2.0+Rxjava的高仿单读的APP](http://www.javaapk.com/read/news/58011.html) 15 | https://github.com/babylikebird/owspace 16 | 17 | [Dagger2 这次入门就不用放弃了](https://blog.csdn.net/u012943767/article/details/51897247) 18 | Demo源码:https://github.com/Jamlh/Sample/tree/master/app/src/main/java/com/sample/dagger 19 | 20 | 21 | -------------------------------------------------------------------------------- /weixin/WeChatDevelopment.md: -------------------------------------------------------------------------------- 1 | 微信开发 2 | == 3 | 4 | [微信 web 开发者工具](https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html?t=1477579747265) 5 | 6 | [微信小程序开发教程](https://mp.weixin.qq.com/debug/wxadoc/dev/) 7 | 8 | [腾讯云介绍(相关开发文档)](https://mp.weixin.qq.com/debug/wxadoc/introduction/qcloud.html?t=201838) 9 | 10 | [微信小程序开发环境和生产环境](https://github.com/tencentyun/wafer2-startup/wiki/%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E5%92%8C%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83) 11 | 12 | 微信小程序实例 13 | --- 14 | 15 | [微信中的知乎--微信小程序 demo](https://github.com/RebeccaHanjw/weapp-wechat-zhihu) 16 | 17 | [微信小程序开发资源汇总 wechat weapp](https://github.com/RebeccaHanjw/awesome-wechat-weapp) 18 | 19 | [腾讯云的APIs, SDKs, 开源项目以及文档](https://github.com/tencentyun) 20 | 21 | [腾讯云官方文档 --腾讯云对外发布文档规范](https://github.com/tencentyun/qcloud-documents) 22 | 23 | -------------------------------------------------------------------------------- /UI/PopupWindow.md: -------------------------------------------------------------------------------- 1 | PopupWindow 2 | === 3 | 4 | [PopupWindow的showAtLocation()方法](https://www.jianshu.com/p/bdc3641fbdc2) 5 | 6 | [Android PopupWindow怎么合理控制弹出位置(showAtLocation)](https://www.cnblogs.com/popfisher/p/5608436.html) 7 | 8 | [popupwindow.showAsDropDown offSetX 水平偏移没效果解决办法](https://blog.csdn.net/suwenlai/article/details/79074816) 9 | 10 | [Android弹窗二则: PopupWindow和AlertDialog](https://www.jianshu.com/p/bddf841137f0) 11 | 12 | [Android弹窗页面的三种实现方式](https://blog.csdn.net/yh18668197127/article/details/85112382) 13 | 14 | [Android dialog和popupwiondow的区别和用法](https://blog.csdn.net/yh18668197127/article/details/84985307) 15 | 16 | [Android进阶之路 - popupWindow的详细使用](https://blog.csdn.net/qq_20451879/article/details/72320325) 17 | 18 | [PopupWindow 设置点击外部区域不消失](https://blog.csdn.net/yh18668197127/article/details/84986793) 19 | 20 | 21 | -------------------------------------------------------------------------------- /Flutter.md: -------------------------------------------------------------------------------- 1 | Flutter 2 | === 3 | 4 | [Flutter中文网](https://flutterchina.club/) 5 | 6 | [Flutter文档](https://flutterchina.club/docs/) 7 | 8 | [对Flutter的一些看法](https://www.cnblogs.com/liujixin/p/9403476.html) 9 | 10 | [我花了 8 小时,"掌握"了一下 Flutter | Flutter 中文站上线](https://www.jianshu.com/p/9aaabc60d8af) 11 | 12 | [国内少有的Flutter干货分享:Flutter的原理及美团的实践!](http://blog.itpub.net/31077337/viewspace-2199818/) 13 | 14 | [5 个你也许会喜欢 Google Flutter 的理由](https://www.oschina.net/translate/5-reasons-why-you-may-love-flutter) 15 | 16 | [Flutter完整开发实战详解(一、Dart语言和Flutter基础)](https://www.jianshu.com/p/533b5b8d2f71) 17 | 18 | [Flutter完整开发实战详解(二、 快速开发实战篇)](https://www.jianshu.com/p/5768a999790d) 19 | 20 | [Flutter完整开发实战详解(三、 打包与填坑篇)](https://www.jianshu.com/p/29ba30d1ee57) 21 | 22 | [Flutter完整开发实战详解(四、 Redux、主题、国际化)](https://www.jianshu.com/p/34a6224e0cf1) 23 | 24 | -------------------------------------------------------------------------------- /Video/README.md: -------------------------------------------------------------------------------- 1 | 2 | Android视频 3 | === 4 | 5 | [Android视频基础](https://github.com/hncgc/Android/blob/master/Video/Android%E8%A7%86%E9%A2%91%E5%9F%BA%E7%A1%80.md) 6 | 7 | [Android视频播放](https://github.com/hncgc/Android/blob/master/Video/Android%E8%A7%86%E9%A2%91%E6%92%AD%E6%94%BE.md) 8 | 9 | [Android视频录制](https://github.com/hncgc/Android/blob/master/Video/Android%E8%A7%86%E9%A2%91%E5%BD%95%E5%88%B6.md) 10 | 11 | [Android读取本地视频](https://github.com/hncgc/Android/blob/master/Video/Android%E8%AF%BB%E5%8F%96%E6%9C%AC%E5%9C%B0%E8%A7%86%E9%A2%91.md) 12 | 13 | [Android视频压缩](https://github.com/hncgc/Android/blob/master/Video/Android%E8%A7%86%E9%A2%91%E5%8E%8B%E7%BC%A9.md) 14 | 15 | [直播平台](https://github.com/hncgc/Android/blob/master/%E7%9B%B4%E6%92%AD%E5%B9%B3%E5%8F%B0.md) 16 | 17 | [Photo](https://github.com/hncgc/Android/blob/master/Video/Photo.md) 18 | -------------------------------------------------------------------------------- /android/Lottie.md: -------------------------------------------------------------------------------- 1 | Lottie 2 | === 3 | 4 | [Lottie- 让Android动画实现更简单](https://www.jianshu.com/p/cae606f45c0b) 5 | > Lottie是Airbnb开源的一个支持 Android、iOS 以及 ReactNative,利用json文件的方式快速实现动画效果的库。 6 | Lottie项目地址:https://github.com/airbnb/lottie-android 7 | •Demo体验apk下载地址: http://fir.im/5j4e 8 | •Demo程序的github地址 : https://github.com/panacena/LottieTest/ 9 | 10 | 11 | [Lottie的使用及原理浅析](http://blog.csdn.net/xsf50717/article/details/55121478) 12 | 参考: 13 | •https://github.com/xsfelvis/lottie-android 14 | •http://www.jianshu.com/p/81be1bf9600c 15 | 16 | [Lottie初探(一)](http://blog.csdn.net/wangchaohx/article/details/54909331) 17 | 18 | [Lottie初探(二)](http://blog.csdn.net/wangchaohx/article/details/54926809) 19 | 20 | [Lottie初探(三)](http://blog.csdn.net/wangchaohx/article/details/55045397) 21 | 22 | [Android Lottie动画框架简单例子](http://blog.csdn.net/msn465780/article/details/69228403) 23 | 项目地址: http://download.csdn.net/detail/msn465780/9803823 24 | 25 | [Lottie实现app首次进入动画](http://blog.csdn.net/baidu_30602135/article/details/54927422) 26 | 27 | 28 | -------------------------------------------------------------------------------- /android/Android官方文档.md: -------------------------------------------------------------------------------- 1 | Android 官方文档 2 | --- 3 | 4 | [ndroid 开发者](https://developer.android.google.cn/) 5 | 6 | [Android 开发者指南](https://developer.android.google.cn/guide) 7 | 8 | 9 | [Android官方培训课程中文版](http://hukai.me/android-training-course-in-chinese/) 10 | 11 | [Android官方文档](http://developer.android.com/intl/zh-cn/develop/index.html) 12 | 13 | [Android官方培训课程中文版(v0.9.5)](http://hukai.me/android-training-course-in-chinese/index.html) 14 | 15 | [Android Api中文版](http://www.embeddedlinux.org.cn/androidapi/) 16 | 17 | [Gradle User Guide 中文版](https://dongchuan.gitbooks.io/gradle-user-guide-/content/index.html) 18 | 19 | [Gradle User Guide](https://docs.gradle.org/current/userguide/userguide.html) 20 | 21 | [Material Design 中文版](http://design.1sters.com/) 22 | 23 | [groovy 2.4.5 API](http://www.groovy-lang.org/api.html) 24 | 25 | [Android Plugin DSL Reference](http://google.github.io/android-gradle-dsl/current/) 26 | 27 | [Java API](https://docs.oracle.com/javase/7/docs/api/) 28 | 29 | [Developers 中文](https://developer.android.google.cn/) 30 | -------------------------------------------------------------------------------- /android/Android架构.md: -------------------------------------------------------------------------------- 1 | Android 架构 2 | --- 3 | 4 | [安居客Android项目架构演进](https://juejin.im/post/58b073c5b123db0052c03fb1) 5 | 知乎专栏:zhuanlan.zhihu.com/baron 6 | GitHub:github.com/BaronZ88 7 | 8 | [Android 平台开源天气](https://github.com/BaronZ88/MinimalistWeather) 9 | App,采用 MVP、RxJava、Retrofit2、OKHttp3、Dagger2、RetroLambda 等开源库来实现 10 | 11 | [Android应用架构变更背后的经验、失误与推论](http://www.csdn.net/article/2015-12-16/2826499-android-app-architecture?locationNum=7&fps=1) 12 | 13 | Trinea http://www.trinea.cn/ 14 | [滴滴国际化项目 Android 端演进](http://www.trinea.cn/android/didi-internationalization-android-evolution/) 15 | 16 | 天码云 17 | [Android App的设计架构:MVC,MVP,MVVM与架构经验谈](https://www.tianmaying.com/tutorial/AndroidMVC) 18 | 19 | diycode 20 | [Android 业务组件化开发实践](https://www.diycode.cc/topics/362) 21 | 22 | [Android-Session-Slides](https://github.com/MDCC2016/Android-Session-Slides/blob/master/02-From.Containerization.To.Modularity.pdf) 23 | 24 | [Android MVVM 应用框架](https://juejin.im/entry/58c63e64ac502e00620b98b5) 25 | 26 | 27 | 28 | [Android开发架构思考及经验总结](http://blog.csdn.net/jf_1994/article/details/53870534) 29 | 30 | 另外除了 Google 列出的架构,还有 Facebook 推出的 Flux 架构也值得考虑。 31 | -------------------------------------------------------------------------------- /android/Glide.md: -------------------------------------------------------------------------------- 1 | Glide 2 | ------ 3 | Glide之GlideModule 4 | http://blog.csdn.net/shangmingchao/article/details/51026742 5 | 6 | Android图片加载库:最全面解析Glide用法 7 | http://www.jianshu.com/p/c3a5518b58b2 8 | 9 | http://www.jianshu.com/u/37baa8a86582 10 | 11 | Glide 知识梳理(1) - 基本用法 12 | http://www.jianshu.com/p/a01f1c41f42f 13 | 14 | Glide 知识梳理(2) - 自定义Target 15 | http://www.jianshu.com/p/10b32f4dbbcb 16 | 17 | Glide 知识梳理(3) - 自定义transform 18 | http://www.jianshu.com/p/2c2094d916ed 19 | 20 | Glide 知识梳理(4) - 自定义animate 21 | http://www.jianshu.com/p/fc1198c6e938 22 | 23 | Glide 知识梳理(5) - 自定义GlideModule 24 | http://www.jianshu.com/p/156b8b742155 25 | 26 | http://hot.guanaitong.com/index.html 27 | 28 | [Glide v4 介绍](http://www.apkbus.com/blog-873055-75797.html) 29 | Glide 支持拉取,解码和展示视频快照,图片,和GIF动画 30 | 31 | [Glide v4 使用教程与详细文档](http://www.apkbus.com/blog-873055-75813.html) 32 | 33 | 34 | ------------------ 35 | 36 | [Android 开源框架Universal-Image-Loader完全解析(一)--- 基本介绍及使用](https://blog.csdn.net/xiaanming/article/details/26810303) 37 | ~~~ 38 | //图片加载 39 | implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5' 40 | ~~~ 41 | [Android图片加载框架Glide用法](https://www.cnblogs.com/guilin-hu/p/5706916.html) 42 | ~~~ 43 | implementation 'com.github.bumptech.glide:glide:3.8.0' 44 | ~~~ 45 | -------------------------------------------------------------------------------- /map/README.md: -------------------------------------------------------------------------------- 1 | 百度地图 2 | === 3 | 4 | 百度地图SDK文档 5 | --- 6 | 7 | [Android 地图SDK](http://lbsyun.baidu.com/index.php?title=androidsdk) 8 | 9 | [POI检索简介](http://lbsyun.baidu.com/index.php?title=androidsdk/guide/search/poi) 10 | 11 | [地点检索输入提示检索(Sug检索)简介](http://lbsyun.baidu.com/index.php?title=androidsdk/guide/search/suggestion) 12 | 13 | [地理编码(地址转坐标)GeoCoder](http://lbsyun.baidu.com/index.php?title=androidsdk/guide/search/geo) 14 | 15 | [百度地图 API](http://wiki.lbsyun.baidu.com/cms/androidsdk/doc/1025v4.1.1/index.html) 16 | 17 | ---------------------- 18 | 19 | [android 百度地图api 地理编码&反地理编码](https://blog.csdn.net/u013815546/article/details/45193133) 20 | 21 | [android 基于百度地图api开发定位以及获取详细地址](https://www.cnblogs.com/xiaochao1234/p/3848755.html) 22 | 23 | [[Android]百度地图POI检索](https://www.jianshu.com/p/83c9ee5a2472) 24 | 25 | [利用百度地图Android SDK 进行模糊地理位置的查询](https://blog.csdn.net/van_2013/article/details/41786981) 26 | 27 | [百度地图(二) - 模仿百度地图搜索框](https://blog.csdn.net/qq_36964677/article/details/77756799) 28 | 29 | [百度地图API详解和运用](https://blog.csdn.net/binyao02123202/article/details/7955803) 30 | 31 | [android 百度地图选择地址并再通过坐标获取地址](https://www.aliyun.com/jiaocheng/1371026.html) 32 | 33 | 34 | 35 | 36 | ----------------------- 37 | 38 | [百度地图API提供Geocoder类进行地址解析 js](https://www.cnblogs.com/clj2017/p/8245541.html) 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /android/Android跨进程通信IPC.md: -------------------------------------------------------------------------------- 1 | IPC 2 | --- 3 | 4 | Android跨进程通信IPC 5 | --- 6 | [•1、Android跨进程通信IPC之1——Linux基础](https://www.jianshu.com/p/36b488863bc0) 7 | [•2、Android跨进程通信IPC之2——Bionic](https://www.jianshu.com/p/25a908c7eefa) 8 | [•3、Android跨进程通信IPC之3——关于"JNI"的那些事](https://www.jianshu.com/p/cd038167d896) 9 | [•4、Android跨进程通信IPC之4——AndroidIPC基础1](https://www.jianshu.com/p/f5e103674953) 10 | [•4、Android跨进程通信IPC之4——AndroidIPC基础2](https://www.jianshu.com/p/28406f85e266) 11 | [•5、Android跨进程通信IPC之5——Binder的三大接口](https://www.jianshu.com/p/3c71473e7305) 12 | [•6、Android跨进程通信IPC之6——Binder框架](https://www.jianshu.com/p/b4a8be5c6300) 13 | [•7、Android跨进程通信IPC之7——Binder相关结构体简介](https://www.jianshu.com/p/5740a8447324) 14 | [•8、Android跨进程通信IPC之8——Binder驱动](https://www.jianshu.com/p/2efc0971c3e0) 15 | [•9、Android跨进程通信IPC之9——Binder之Framework层C++篇1](https://www.jianshu.com/p/b72c67e09653) 16 | [•9、Android跨进程通信IPC之9——Binder之Framework层C++篇2](https://www.jianshu.com/p/c8580977f132) 17 | [•10、Android跨进程通信IPC之10——Binder之Framework层Java篇](https://www.jianshu.com/p/e360b00d0d29) 18 | [•11、Android跨进程通信IPC之11——AIDL](https://www.jianshu.com/p/375e3873b1f4) 19 | [•12、Android跨进程通信IPC之12——Binder补充](https://www.jianshu.com/p/e360b00d0d29) 20 | [•13、Android跨进程通信IPC之13——Binder总结](https://www.jianshu.com/p/485233919c15) 21 | [•14、Android跨进程通信IPC之14——其他IPC方式](https://www.jianshu.com/p/485233919c15) 22 | [•15、Android跨进程通信IPC之15——感谢](https://www.jianshu.com/p/1136e8fed186) 23 | -------------------------------------------------------------------------------- /android/Android专栏.md: -------------------------------------------------------------------------------- 1 | 安卓专栏 2 | -------- 3 | [Carson_Ho的安卓开发笔记](https://www.jianshu.com/u/383970bef0a0) 4 | Github:https://github.com/Carson-Ho 5 | 6 | [安卓专栏](http://www.okbase.net/home/android/file/) 7 | 8 | Android动画进阶—使用开源动画库nineoldandroids 9 | http://blog.csdn.net/singwhatiwanna/article/details/17639987 10 | Android 使用NineOldAndroids实现绚丽的ListView左右滑动删除Item效果 11 | http://blog.csdn.net/hardworkpays/article/details/39666101 12 | https://github.com/JakeWharton/NineOldAndroids 13 | // 动画 14 | implementation 'com.nineoldandroids:library:2.4.0' 15 | 16 | 17 | Android之TextSwitcher详解 18 | http://blog.csdn.net/yuzhiboyi/article/details/7700195 19 | 20 | 21 | 22 | Android Studio打包apk,aar,jar包方法 23 | http://www.apkbus.com/blog-865196-76576.html 24 | 25 | 20多个可以提高你安卓开发技能的开源app 26 | http://www.apkbus.com/blog-856294-76580.html 27 | 28 | Android MVP开发模式 google 官方Mvp架构详解 29 | http://blog.csdn.net/jungle_pig/article/details/65626469 30 | https://github.com/googlesamples/android-architecture 31 | todo-mvp: 32 | https://github.com/googlesamples/android-architecture/tree/todo-mvp/ 33 | 34 | git clone https://github.com/googlesamples/android-architecture.git 35 | 36 | SwipeRefreshLayout 37 | 【FastDev4Android框架开发】RecyclerView完全解析之下拉刷新与上拉加载SwipeRefreshLayout(三十一) 38 | http://blog.csdn.net/developer_jiangqq/article/details/49992269 39 | FastDev4Android框架项目地址:https://github.com/jiangqqlmj/FastDev4Android 40 | http://www.lcode.org/ 41 | 42 | SwipeRefreshLayout详解和自定义上拉加载更多 43 | http://www.jianshu.com/p/d23b42b6360b 44 | -------------------------------------------------------------------------------- /直播平台.md: -------------------------------------------------------------------------------- 1 | ## 直播平台 2 | 3 | 新手自己搭建、开发网络直播平台历程——了解实现一个简单直播平台的结构 4 | http://blog.csdn.net/u013244543/article/details/78363044 5 | 6 | 听朋友说做直播平台先了解直播系统源码。 7 | http://blog.csdn.net/qq2734887823/article/details/78789984 8 | 9 | 直播APP源码(干货):搭建直播平台的具体方案 10 | http://blog.csdn.net/yubaoyu/article/details/71516111 11 | 12 | 直播APP源码,云豹直播APP开发 13 | https://download.csdn.net/download/yunbaozhibosong/9884748 14 | 15 | 如何开发视频直播网站? 16 | https://www.zhihu.com/question/20592624 17 | 18 | 编风网(http://befo.io) 19 | 20 | 问津技术(http://weking.io) 21 | 22 | 深度|全面分析视频SDK的开放策略 23 | https://zhuanlan.zhihu.com/p/30099055 24 | 25 | 26 | 即构科技Zego实时语音视频技术专栏 27 | https://zhuanlan.zhihu.com/c_117670848 28 | 29 | 聊一聊直播利器,连麦互动背后的混流方案(一) 30 | https://zhuanlan.zhihu.com/p/33166900 31 | 32 | 聊一聊直播利器,连麦互动背后的混流方案:到底该怎么混?(二) 33 | https://zhuanlan.zhihu.com/p/33177228 34 | 35 | 哪些公司可以开发网上直播平台,需要多少资金可以成功运作 36 | https://zhidao.baidu.com/question/371711224450197924.html 37 | 38 | Android端推流工具 39 | 40 | Android端播放器 41 | 这方面也需要熟悉专业的视音频编解码技术和流媒体传输协议,以及ffmpeg开源软件,刚入门的开发团队也可以参考其它第三方集成好的播放器模块,比如ijkplayer或者OPlyaer。 42 | 43 | ffmpeg 44 | https://baike.baidu.com/item/ffmpeg/2665727?fr=aladdin 45 | 46 | FFmpeg的使用 47 | https://www.jianshu.com/p/7ed3be01228b 48 | 49 | ffmpeg的官网地址是:https://www.ffmpeg.org/ 50 | ffmpeg的Github项目地址是:https://github.com/FFmpeg/FFmpeg 51 | 52 | FFmpeg 基本用法 53 | http://blog.csdn.net/danielpei1222/article/details/61916435 54 | 55 | 在线人脸识别认证,这方面阿里的芝麻信用平台提供了免费的开放接口 56 | 57 | 七牛开发者中心 58 | https://developer.qiniu.com/ 59 | 60 | 七牛云 61 | https://www.qiniu.com/ 62 | 一站式视频点播和直播解决方案 63 | -------------------------------------------------------------------------------- /android/Fragment.md: -------------------------------------------------------------------------------- 1 | Fragment 2 | === 3 | 4 | 5 | [Fragment常用的方法介绍,非常全](https://blog.csdn.net/lanxingfeifei/article/details/50560217) 6 | 7 | [Android~Fragment 中的常用方法 isAdded()、isVisible()、isHidden()、isRemoving()、isResumed()、 isInLayout() 等详解](https://blog.csdn.net/IT666DHW/article/details/80837671) 8 | 9 | [Android类参考---Fragment(一)](https://blog.csdn.net/xiaoluoli88/article/details/16963235) 10 | 11 | [Android类参考---Fragment(二)](https://blog.csdn.net/xiaoluoli88/article/details/16963241) 12 | 13 | [[Android类参考---Fragment(三)](https://blog.csdn.net/xiaoluoli88/article/details/16963245) 14 | 15 | [Android类参考---Fragment(四)](https://blog.csdn.net/think_soft/article/details/7625454) 16 | 17 | [Android类参考---Fragment(五)](https://blog.csdn.net/xiaoluoli88/article/details/16963261) 18 | 19 | [Android类参考---Fragment(六)](https://blog.csdn.net/xiaoluoli88/article/details/16963269) 20 | 21 | [Android类参考---Fragment(七)](https://blog.csdn.net/xiaoluoli88/article/details/16963277) 22 | 23 | [Android类参考---Fragment(八)](https://blog.csdn.net/xiaoluoli88/article/details/16963287) 24 | 25 | 26 | [fragment方法的解释isAdded()和isDetached()和isHidden()](https://blog.csdn.net/qq_35427437/article/details/79904906) 27 | 28 | [Fragment getView() getActivity() isAdded() 在fragment操作时的表现](https://blog.csdn.net/hwh22/article/details/78354170) 29 | 30 | [Android之fragment的两种使用方式(add和replace方式切换)](https://blog.csdn.net/gsw333/article/details/51858524) 31 | 32 | [Android Fragment解析以及Fragment中碰到的各种坑](https://blog.csdn.net/A38017032/article/details/69661810) 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /android/Android接口定义语言AIDL.md: -------------------------------------------------------------------------------- 1 | 2 | AIDL(Android 接口定义语言) 3 | --- 4 | 5 | > 用于两个APP间通讯 6 | 7 | [Android中AIDL的使用详解](https://www.jianshu.com/p/d1fac6ccee98) 8 | 9 | [Android中AIDL的工作原理](https://www.jianshu.com/p/e0c583ea9289) 10 | 11 | [Android 中AIDL的使用与理解](http://blog.csdn.net/u011974987/article/details/51243539) 12 | 13 | [Android:学习AIDL,这一篇文章就够了(上)](http://blog.csdn.net/luoyanglizi/article/details/51980630) 14 | 15 | ``` 16 | package com.pccb.app.net; 17 | 18 | // Declare any non-default types here with import statements 19 | 20 | interface IMyAidlInterface { 21 | /** 22 | * Demonstrates some basic types that you can use as parameters 23 | * and return values in AIDL. 24 | */ 25 | void basicTypes(int anInt, long aLong, boolean aBoolean, float aFloat, 26 | double aDouble, String aString); 27 | } 28 | ``` 29 | 30 | [你真的理解AIDL中的in,out,inout么?](http://blog.csdn.net/luoyanglizi/article/details/51958091) 31 | 32 | [Android中的Service:默默的奉献者 (1) ](http://blog.csdn.net/luoyanglizi/article/details/51594016) 33 | 34 | [Android中的Service:Binder,Messenger,AIDL(2)](http://blog.csdn.net/luoyanglizi/article/details/51594016) 35 | 36 | [Android AIDL -通过一个比较完整的Demo快速运用](http://blog.csdn.net/Singleton1900/article/details/8434643) 37 | 38 | [Android跨进程通信IPC之11——AIDL](https://www.jianshu.com/p/375e3873b1f4) 39 | --- 40 | 41 | runOnUiThread() 42 | --- 43 | [android Activity runOnUiThread() 方法使用](https://www.cnblogs.com/zhaoyanjun/archive/2016/05/11/5483221.html) 44 | 45 | [runOnUiThread更新主线程](https://www.cnblogs.com/wanqieddy/p/4153203.html) 46 | -------------------------------------------------------------------------------- /Video/Photo.md: -------------------------------------------------------------------------------- 1 | 2 | Photo 3 | == 4 | 5 | [拍照、相册及裁剪的终极实现(一)——拍照及裁剪功能实现](http://blog.csdn.net/harvic880925/article/details/43163175) 6 | 7 | [拍照、相册及裁剪的终极实现(二)——相册选择及裁剪功能实现](http://blog.csdn.net/harvic880925/article/details/43314451) 8 | 9 | [Android 拍照或从相册取图片并裁剪](http://www.cnblogs.com/w-y-f/p/4028379.html) 10 | https://github.com/ryanhoo/PhotoCropper 11 | 12 | 13 | PhotoUpload 14 | --- 15 | http://www.cnblogs.com/zhuyuliang/ 16 | 17 | Android - Camera 18 | http://www.tutorialspoint.com/android/android_camera.htm 19 | 20 | Android文件图片上传的详细讲解(一)HTTP multipart/form-data 上传报文格式实现手机端上传 21 | http://topmanopensource.iteye.com/blog/1605238 22 | 23 | [Android7.0拍照失败FileUriExposedException,你的拍照代码升级了吗](https://blog.csdn.net/yunboxiang/article/details/54017121) 24 | 25 | [Android7.0及以上拍照获取照片无法使用file://,使用content://URI](https://blog.csdn.net/trq2012/article/details/80568094) 26 | 27 | [Android7.0完美适配——FileProvider拍照裁剪全解析](https://blog.csdn.net/u010873775/article/details/72811581) 28 | 29 | [Android 拍照及相册选取图片功能,已适配Android6.0、7.0、8.0](https://blog.csdn.net/wufeng55/article/details/80918749) 30 | 31 | [适用于 Android 8.0 及以下全部版本的拍照示例](https://blog.csdn.net/fengzhiqi1993/article/details/81216849) 32 | 33 | [Android获取APP的应用程序名称、包名、图标,版本号基本信息](https://blog.csdn.net/jia635/article/details/78722073) 34 | 35 | 36 | [关于安卓图库更新的问题终极解决方法(实测)](https://blog.csdn.net/qq_34157407/article/details/51407992) 37 | 38 | [Android8.0之后调用系统相机的配置](https://blog.csdn.net/guibao513/article/details/79015470) 39 | 40 | [Android调用相册、相机(兼容6.0、7.0、8.0)所需添加的权限](https://blog.csdn.net/qq_41893253/article/details/83349478) 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /android/Android指纹识别.md: -------------------------------------------------------------------------------- 1 | 2 | ## Android 指纹识别 3 | 4 | 5 | android.support.v4.hardware.fingerprint.FingerprintManagerCompat 6 | 7 | [Android中的指纹识别](http://blog.csdn.net/wl9739/article/details/52444671) 8 | 9 | [Android下的指纹识别及登陆](http://blog.csdn.net/Jacky_Can/article/details/73849789) 10 | 11 | [Android 指纹验证api](http://blog.csdn.net/a2855090/article/details/50724809) 12 | 13 | [Android 6.0+指纹识别心得](http://blog.csdn.net/lhj1076880929/article/details/52297812) 14 | 15 | [dialog.setCancelable与setCanceledOnTouchOutside的区别](http://blog.csdn.net/u012255016/article/details/49888881) 16 | 17 | [Android开发学习之路-指纹识别api](https://www.cnblogs.com/Fndroid/p/5204986.html) 18 | 19 | [FingerprintManager](http://blog.csdn.net/lintcgirl/article/details/51354250) 20 | 21 | [Android指纹识别深入浅出分析到实战(6.0以下系统适配方案)](https://www.cnblogs.com/popfisher/p/6063835.html) 22 | 23 | [Android指纹识别](https://www.jianshu.com/p/f12514bbdd4f) 24 | 界面控制工具:http://www.cnblogs.com/popfisher/p/5996799.html 25 | http://www.xiaoluobei.com/ 26 | 项目地址: Github地址:https://github.com/PopFisher/FingerprintRecognition 27 | 28 | [Android系统设置— android.provider.Settings](https://www.cnblogs.com/bluestorm/p/3665596.html) 29 | Intent intent = new Intent(android.provider.Settings.ACTION_SETTINGS); 30 | startActivity(intent); // 打开系统设置界面 31 | 32 | Intent mIntent = new Intent(android.provider.Settings.ACTION_BLUETOOTH_SETTINGS); 33 | startActivity(mIntent); // 打开蓝牙设置界面 (实际上也在wifi设置中) 34 | 35 | 参考: 36 | Settings | Android Developers 37 | http://developer.android.com/reference/android/provider/Settings.htm 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /android/Markdown.md: -------------------------------------------------------------------------------- 1 | 2 | Markdown 3 | --- 4 | [Markdown](https://www.zybuluo.com/mdeditor) 5 | ### [Markdown Windows/Mac/Linux 全平台客户端](https://www.zybuluo.com/cmd/) 6 | 7 | [Cmd Markdown 简明语法手册](https://www.zybuluo.com/mdeditor?url=https://www.zybuluo.com/static/editor/md-help.markdown) 8 | 9 | [Cmd Markdown 高阶语法手册](https://www.zybuluo.com/mdeditor?url=https://www.zybuluo.com/static/editor/md-help.markdown#cmd-markdown-高阶语法手册) 10 | 11 | Markdown Navigator 12 | --- 13 | 14 | [IntelliJ IDEA Multi-MarkDown插件安装破J全过程](http://www.jianshu.com/p/a0550f81cbd1) 15 | 16 | 简单理解就是用来写文章排版的,一般 github 上面的项目默认都有一个 readme.md 文件(以".md"结尾来描述项目的说明文档)。本文就是使用简书的 markdown 语法写的。 17 | 18 | MarkdownView-Android 19 | --- 20 | MarkdownView-Android是一个可以加载markdown或者普通文件并显示成html格式。 21 | 项目地址:https://github.com/mukeshsolanki/MarkdownView-Android 22 | 23 | https://vladsch.com/product/markdown-navigator/referrals 24 | ``` 25 | Markdown Navigator 2.2.0 26 | Now Even Faster Spread the word & get up to 100% off enhanced edition.       Details 27 | Basic & Enhanced / Enhanced Edition only 28 | Amazing typing response 29 | Better GFM Preview emulation 30 | Split Editor now in Basic Edition 31 | HTML text preview now in Basic Edition 32 | Bug Fixes, Full Version Notes 33 | Click in Preview scrolls to source 34 | Soft wrap at right margin 35 | Strip trailing spaces Hard Break aware 36 | Markdown to HTML Export 37 | Per Project Rendering options 38 | Per Scope Rendering options 39 | Customizable link address mapping 40 | Print HTML Preview for JavaFX browser 41 | Buy a license, view Promotions. View all enhanced features. 42 | Disable this notification. 43 | ``` 44 | 45 | [IntelliJ IDEA Multi-MarkDown插件安装破J全过程](http://www.jianshu.com/p/a0550f81cbd1) 46 | -------------------------------------------------------------------------------- /android/Android多线程.md: -------------------------------------------------------------------------------- 1 | Android 多线程 2 | --- 3 | [Android 多线程](https://www.jianshu.com/nb/6977014) 4 | 5 | [Android 多线程:AsyncTask的原理 及其源码分析](https://www.jianshu.com/p/37502bbbb25a) 6 | 7 | [Android 多线程:AsyncTask最详细使用教程](https://www.jianshu.com/p/ee1342fcf5e7) 8 | 9 | [Android多线程:继承Thread类 使用解析(含实例教程)](https://www.jianshu.com/p/834f336855c4) 10 | 11 | [Android多线程:实现Runnable接口 使用解析(含实例教程)](https://www.jianshu.com/p/95b186fbf192) 12 | 13 | [Android 多线程 解析:IntentService(含源码解析)](https://www.jianshu.com/p/8a3c44a9173a) 14 | 15 | [Android 内存泄露:详解 Handler 内存泄露的原因](https://www.jianshu.com/p/ed9e15eff47a) 16 | 17 | [Android开发:Handler异步通信机制全面解析(包含Looper、Message Queue)](https://www.jianshu.com/p/9fe944ee02f7) 18 | 19 | ---- 20 | 21 | [Android中的几种多线程实现](https://www.cnblogs.com/chendu123/p/6081301.html) 22 | 23 | [Android多线程的四种方式](https://www.jianshu.com/p/2b634a7c49ec) 24 | 25 | [Android 中三种启用线程的方法](https://www.cnblogs.com/propheterLiu/p/6082666.html) 26 | 27 | [JAVA\Android 多线程实现方式及并发与同步](https://blog.csdn.net/csdn_aiyang/article/details/65442540) 28 | 29 | [Android进阶之路——线程机制](https://www.jianshu.com/p/7307492f7e89) 30 | 31 | [浅谈Android中多线程切换的几种方法](http://www.jb51.net/article/131896.htm) 32 | 33 | 同步锁synchronized 34 | --- 35 | 36 | [Android学习synchronized(一)](http://blog.sina.com.cn/s/blog_5f99444c01017wjp.html) 37 | 38 | [java同步机制:synchronized](http://blog.csdn.net/cjjky/article/details/7353390) 39 | 40 | [android synchronized 关键字用法](http://blog.csdn.net/w46434137/article/details/10221279) 41 | 42 | [Android多线程-----同步锁](http://blog.csdn.net/a992036795/article/details/51372272) 43 | 44 | [Android中三种锁的用法]() 45 | 46 | [Android进阶——多线程系列之wait、notify、sleep、join、yield、synchronized关键字、ReentrantLock锁](http://blog.csdn.net/qq_30379689/article/details/53863082) 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /android/OkHttp3.md: -------------------------------------------------------------------------------- 1 | 2 | OkHttp3 3 | --- 4 | [Android中Retrofit+OkHttp进行HTTP网络编程的使用指南](http://www.jb51.net/article/88542.htm) 5 | 6 | [Android app开发中Retrofit框架的初步上手使用](http://www.jb51.net/article/79729.htm) 7 | 8 | [Retrofit自定义GsonConverter处理所有请求错误情况](http://www.jianshu.com/p/5b8b1062866b) 9 | 10 | 11 | #### Android网络编程 12 | 13 | [Android网络编程(一)HTTP协议原理](http://liuwangshu.cn/application/network/1-http.html) 14 | [Android网络编程(二)HttpClient与HttpURLConnection](http://liuwangshu.cn/application/network/2-httpclienthttp-urlconnection.html) https://github.com/henrymorgen/java-httpurl 15 | [Android网络编程(三)Volley用法全解析](http://liuwangshu.cn/application/network/3-volley.html) 16 | https://github.com/henrymorgen/android-volley) 17 | [Android网络编程(四)从源码解析volley](http://liuwangshu.cn/application/network/4-volley-sourcecode.html) 18 | [Android网络编程(五)OkHttp2.x用法全解析](http://liuwangshu.cn/application/network/5-okhttp2x.html) 19 | https://github.com/henrymorgen/MoonOkHttp 20 | [Android网络编程(六)OkHttp3用法全解析](http://liuwangshu.cn/application/network/6-okhttp3.html) 21 | http://blog.csdn.net/itachi85/article/details/51190687 22 | https://github.com/henrymorgen/android-okhttp3 23 | 封装封装 https://github.com/pengjianbo/OkHttpFinal 24 | 封装Demo:https://github.com/henrymorgen/android-okhttp3 25 | 下载管理 https://github.com/pengjianbo/FileDownloaderFinal 26 | [Android网络编程(七)源码解析OkHttp前篇[请求网络]](http://liuwangshu.cn/application/network/7-okhttp3-sourcecode.html) 27 | [Android网络编程(八)源码解析OkHttp后篇[复用连接池]](http://liuwangshu.cn/application/network/8-okhttp3-sourcecode2.html) 28 | [Android网络编程(九)Retrofit2前篇[基本使用]](http://liuwangshu.cn/application/network/9-retrofit2.html) 29 | [Android网络编程(十)Retrofit2后篇[注解]](http://liuwangshu.cn/application/network/10-retrofit2-annotations.html) 30 | [Android网络编程(十一)源码解析Retrofit](http://liuwangshu.cn/application/network/11-retrofit2-sourcecode.html) 31 | -------------------------------------------------------------------------------- /android/MaterialDesign.md: -------------------------------------------------------------------------------- 1 | Material Design 2 | --- 3 | [Material Design 中文版](http://wiki.jikexueyuan.com/project/material-design/) 4 | 5 | [Material Design 中文版](http://design.1sters.com/) 6 | 7 | [模仿网易云音乐UI来完成一个基于Material Design +Rxjava + Retrofit + dagger2 + MVP构架的项目](https://github.com/laotan7237/EasyReader) 8 | Android design support library 9 | Materail Design 10 | compile 'com.android.support:design:23.2.1' 11 | 12 | [Material Design 入门(一)——TextInputLayout和TextInputEditText](http://blog.csdn.net/u012230055/article/details/52354111) 13 | 14 | [Material Design 入门(二)——CardView](http://blog.csdn.net/u012230055/article/details/52354869) 15 | 16 | [Materail Design 入门(三)——FloatingActionButton和Snackba](http://blog.csdn.net/u012230055/article/details/52355293) 17 | 18 | [Materail Design 入门(四)——Toolbar的使用方法(1)](http://blog.csdn.net/u012230055/article/details/53396749) 19 | 20 | [Materail Design 入门(四)——Toolbar的使用方法(2)](http://blog.csdn.net/u012230055/article/details/53404627) 21 | 22 | [Android Design Support Library使用详解](http://blog.csdn.net/eclipsexys/article/details/46349721) 23 | https://github.com/xuyisheng/DesignSupportLibraryDemo 24 | 25 | [Android Design TextInputLayout 解析,带你深入TextInputLayout](http://blog.csdn.net/u011051627/article/details/48177095) 26 | 27 | [如何使用Android Design中的TextInputLayout](http://www.jianshu.com/p/35080eb5a28f) 28 | 29 | TabLayout 30 | --- 31 | [android design library提供的TabLayout的用法](http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0731/3247.html) 32 | 33 | [Android开发之设置TabLayout下方下划线的宽度](http://blog.csdn.net/sheajin/article/details/59104205) 34 | 35 | [Design库-TabLayout属性详解](http://www.jianshu.com/p/2b2bb6be83a8) 36 | 在清单文件中设置如下代码即可: 37 | android:theme="@style/Theme.AppCompat" 38 | 39 | [TabLayout用法详解及自定义样式](http://www.jb51.net/article/101912.htm) 40 | 41 | [TabLayout高端用法(一)](http://www.jianshu.com/p/be1e8a1da639?nomobile=yes) 42 | 43 | -------------------------------------------------------------------------------- /android/WebView.md: -------------------------------------------------------------------------------- 1 | WebView 2 | --- 3 | [oschina-app源码解析-webview重组html](http://blog.csdn.net/xiangxue336/article/details/20062347) 4 | 5 | [Android实现点击WebView界面中图片滑动浏览与保存图片功能](http://www.jb51.net/article/112028.htm) 6 | 7 | [从WebView中点击一张图片,转换成一个可缩放,可旋转的图片。](http://www.jianshu.com/p/e24ee6d67f01) 8 | https://segmentfault.com/t/android 9 | http://code.taobao.org/p/YuanWen/src/trunk/ 10 | 11 | [android webview里设置cookie](http://blog.csdn.net/encienqi/article/details/7912733) 12 | 13 | [[Android] WebView删除缓存](http://blog.csdn.net/s278777851/article/details/6534316) 14 | 1.删除保存于手机上的缓存. 15 | // clear the cache before time numDays 16 | private int clearCacheFolder(File dir, long numDays) { 17 | int deletedFiles = 0; 18 | if (dir!= null && dir.isDirectory()) { 19 | try { 20 | for (File child:dir.listFiles()) { 21 | if (child.isDirectory()) { 22 | deletedFiles += clearCacheFolder(child, numDays); 23 | } 24 | if (child.lastModified() < numDays) { 25 | if (child.delete()) { 26 | deletedFiles++; 27 | } 28 | } 29 | } 30 | } catch(Exception e) { 31 | e.printStackTrace(); 32 | } 33 | } 34 | return deletedFiles; 35 | } 36 | 37 | com.xxxx.app.ui.webview.OpenWebActivity.class 38 | 39 | @Override 40 | protected void onDestroy() { 41 | super.onDestroy(); 42 | ////删除此时之前的缓存 43 | clearCacheFolder(OpenWebActivity.this.getCacheDir(), System.currentTimeMillis()); 44 | } 45 | 46 | 2. 打开关闭使用缓存: 47 | 48 | 优先使用缓存,WebView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); 49 | 50 | 不使用缓存,WebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); 51 | 52 | 53 | [Android Webview清除缓存和Cookie](http://blog.csdn.net/ronaldong99/article/details/40392847) 54 | 55 | -------------------------------------------------------------------------------- /android/Android开发框架.md: -------------------------------------------------------------------------------- 1 | 开发框架 2 | --- 3 | [Android 流行框架查速表](http://www.ctolib.com/cheatsheets-Android-ch.html) 4 | 5 | [最新Android 框架排行榜](http://www.apkbus.com/blog-871347-76944.html) 6 | 7 | [最新Android 框架排行榜](http://blog.csdn.net/qq_34262695/article/details/78501191) 8 | https://www.cnblogs.com/jincheng-yangchaofan/articles/7018780.html 9 | 10 | [震撼发布2017年Android百大框架排行榜](http://blog.csdn.net/qq_33265437/article/details/73740864) 11 | 12 | [2017 Android开发 GitHub 常用开源框架汇总](http://www.apkbus.com/blog-914653-68513.html) 13 | 14 | [简洁、直观、强悍的前端开发框架,让web开发更迅速、简单](http://www.bootcss.com/) 15 | 16 | [ZLayer Android企业级应用开发框架(直播代码版)](http://www.eoeandroid.com/thread-923392-1-1.html?_dsign=214604da) 17 | https://github.com/z-android/ZLayer 18 | 19 | [Android开源框架收集大全,包含描述和效果图](http://www.eoeandroid.com/thread-922412-1-1.html?_dsign=b3e2d5df) 20 | http://xybcoder.github.io/ANDROID/ 21 | 22 | [Android 程序框架设计](http://itindex.net/detail/44207-android-程序-框架) 23 | 24 | [Android App 代码架构](http://frank-zhu.github.io/2014-11-22-android-app-code-architecture.html) 25 | 26 | Android框架+常用控件汇总-侧滑、上下拉加载、tab、各种ui 27 | --- 28 | [Android框架+常用控件汇总-侧滑、上下拉加载、tab、各种ui ](http://www.apkbus.com/thread-585366-1-1.html ) 29 | 30 | [国人写的Android开发框架 AndBase ](http://blog.csdn.net/oguohui12/article/details/48895407) 31 | 32 | [baoyongzhang/android-PullRefreshLayout](https://github.com/baoyongzhang/android-PullRefreshLayout) 33 | 34 | Android开发用过的十大框架 35 | https://www.cnblogs.com/ldq2016/p/6255770.html 36 | 37 | 你一定会用到的RxJava常用操作符 38 | http://www.apkbus.com/blog-873055-76488.html 39 | 40 | [83→100]Android好用的日历控件——MaterialCalendarView 41 | http://www.jianshu.com/p/8396a4d39c01 42 | https://github.com/prolificinteractive/material-calendarview 43 | 44 | Material Calendar View 开源项目学习(一)- 总览 45 | http://www.jianshu.com/p/365f00b04256 46 | Material Calendar View 开源项目学习(二)- 日历的视图 47 | http://www.jianshu.com/p/a1ce6330df1b 48 | Material Calendar View 开源项目学习(三)- 日期的相关算法 49 | http://www.jianshu.com/p/ec6234c22722 50 | -------------------------------------------------------------------------------- /android/Android四大组件.md: -------------------------------------------------------------------------------- 1 | Android 四大组件 2 | --- 3 | [Android 四大组件](https://www.jianshu.com/u/383970bef0a0) 4 | 5 | Activity 6 | --- 7 | [Android基础:最易懂的Activity启动模式详解 ](https://www.jianshu.com/p/399e83d02e33) 8 | 9 | [基础总结篇之二:Activity的四种launchMode](https://blog.csdn.net/liuhe688/article/details/6754323/) 10 | 11 | [彻底明白Activity启动模式-SingleTop、SingleTask、SingleInstance具体使用场景](https://blog.csdn.net/u011682673/article/details/53313795) 12 | 13 | 14 | 15 | [Android:Fragment最全面介绍 & 使用方法解析](https://www.jianshu.com/p/2bf21cefb763) 16 | 17 | [Android:手把手教你 实现Activity 与 Fragment 相互通信(含Demo)](https://www.jianshu.com/p/825eb1f98c19) 18 | 19 | [Android开发:5分钟解析Activity&Fragment生命周期](https://www.jianshu.com/p/b1ff03a7bb1f) 20 | 21 | 22 | [Fragment](https://github.com/hncgc/Android/blob/master/android/Fragment.md) 23 | --- 24 | 25 | BroadcastReceiver 26 | --- 27 | [Android四大组件:BroadcastReceiver史上最全面解析](https://www.jianshu.com/p/ca3d87a4cdf3) 28 | 29 | ContentProvider 30 | --- 31 | [ndroid:关于ContentProvider的知识都在这里了!](https://www.jianshu.com/p/ea8bc4aaf057) 32 | 33 | Service 34 | --- 35 | 36 | [Android 四大组件:一份全面 & 简洁的 Service 知识讲解攻略](https://www.jianshu.com/p/d963c55c3ab9) 37 | 38 | [Android:Service生命周期 完全解析](https://www.jianshu.com/p/8d0cde35eb10) 39 | 40 | [Android:(本地、可通信的、前台、远程)Service使用全面介绍](https://www.jianshu.com/p/e04c4239b07e) 41 | https://github.com/Carson-Ho/Demo_Service/tree/5e2a70cf2d75c56bbfa1abc0ead16c5ad8cae83f 42 | https://github.com/Carson-Ho/Demo_Service 43 | https://github.com/Carson-Ho/Demo_Service/tree/719e3b9ffd5017c334cdfdaf45b6a72776a2066a 44 | 45 | [Android:远程服务Service(含AIDL & IPC讲解)](https://www.jianshu.com/p/34326751b2c6) 46 | [客户端:Github_RemoteService_Client](https://github.com/Carson-Ho/Service_Client) 47 | [服务端:Github_RemoteService_Server](https://github.com/Carson-Ho/Service_Server) 48 | 49 | [Android 多线程 解析:IntentService(含源码解析)](https://www.jianshu.com/p/8a3c44a9173a) 50 | 51 | [Java Message Service (JMS)介绍](http://blog.csdn.net/lucifer821031/article/details/2064541) 52 | 53 | -------------------------------------------------------------------------------- /android/AndroidToolBar.md: -------------------------------------------------------------------------------- 1 | Android ToolBar 2 | --- 3 | [Android中Toolbar的使用](http://blog.csdn.net/wsdssss/article/details/51276715) 4 | android.support.v7.widget.Toolbar 5 | 6 | [android之Toolbar使用详解](http://blog.csdn.net/listeners_gao/article/details/52736008) 7 | 8 | [Android5.0之Toolbar详解](http://blog.csdn.net/leonduhua/article/details/54604208) 9 | 基本属性设置 10 | //子标题颜色 20 | 21 | [Android ToolBar 使用完全解析](http://www.jianshu.com/p/ae0013a4f71a) 22 | 创建了android.support.v7.widget.Toolbar,同时我们在内部放了一个TextView,这是与ActionBar最大的不同,因为ToolBar实际上是一个ViewGroup,支持在其内部放入子View。 23 | 24 | 修改标题和子标题的字体大小、颜色等,可以调用 setTitleTextColor 、 setTitleTextAppearance 、 setSubtitleTextColor 、 setSubtitleTextAppearance 25 | 26 | 29 | 35 | 36 | 37 | [Android Toolbar样式定制详解] (http://blog.csdn.net/cnpath/article/details/47980871) 38 | https://github.com/oyjt/android-toolbar 39 | 40 | [android:ToolBar详解(手把手教程)] (http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1118/2006.html) https://github.com/mosil/Android-Mosil-Sample-Toolbar 41 | 42 | [Android 初识AppBarLayout 和 CoordinatorLayout](http://www.jianshu.com/p/ab04627cce58 https://github.com/Mike-bel/MDStudySamples) 43 | 44 | -------------------------------------------------------------------------------- /android/Android设计规范.md: -------------------------------------------------------------------------------- 1 | Android 设计规范 2 | --- 3 | 4 | [一款APP设计的从0到1之:Android设计规范篇【Bus Weekly】83 期](http://www.apkbus.com/thread-591729-1-1.html) 5 | 6 | [Android开发之版本统一规范](http://blankj.com/874.html) 7 | 8 | [ndroid (Java) 编码惯例及最佳实践](http://www.apkbus.com/blog-705730-61363.html) 9 | 10 | [android-guidelines 代码风格](https://github.com/ribot/android-guidelines/blob/master/project_and_code_guidelines.md) 11 | 12 | [Android开发经验总结:开发规范](http://www.apkbus.com/blog-705730-60906.html) 13 | 14 | [Android项目基础规范](http://frank-zhu.github.io/android/2016/04/26/android-code-rule/) 15 | 16 | [Android开发规范](https://github.com/Blankj/AndroidStandardDevelop) 17 | 18 | [像大牛一样写代码: 31个Android 开发者工具](http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2017/0526/7973.html) 19 | 20 | [Package by features, not layers](https://hackernoon.com/package-by-features-not-layers-2d076df1964d) 21 | 22 | [Android Studio 下对资源进行分包](https://blankj.com/2016/09/21/android-studio-classify-src-package/) 23 | 24 | [阿里巴巴Java开发手册(纪念版)v1.3.1.pdf](https://github.com/alibaba/p3c/blob/master/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4Java%E5%BC%80%E5%8F%91%E6%89%8B%E5%86%8C%EF%BC%88%E7%BA%AA%E5%BF%B5%E7%89%88%EF%BC%89.pdf) 25 | 26 | [Android 开发之版本统一规范](https://blankj.com/2016/09/21/android-keep-version-unity/) 27 | 28 | [Android包命名规范](http://www.ayqy.net/blog/android%E5%8C%85%E5%91%BD%E5%90%8D%E8%A7%84%E8%8C%83/) 29 | 30 | [Android 开发最佳实践](https://github.com/futurice/android-best-practices/blob/master/translations/Chinese/README.cn.md) 31 | 32 | [Android 编码规范](https://www.jianshu.com/p/0a984f999592) 33 | 34 | [project_and_code_guidelines](https://github.com/ribot/android-guidelines/blob/master/project_and_code_guidelines.md) 35 | 36 | [Google Java编程风格指南](http://www.hawstein.com/posts/google-java-style.html) 37 | 38 | Categories 39 | http://www.hawstein.com/categories.html 40 | 41 | [google官方android编码风格规范](http://www.360sdn.com/2013/android_0517/144.html) 42 | 43 | [安卓项目指南Project guidelines](https://github.com/ribot/android-guidelines/blob/master/project_and_code_guidelines.md) 44 | -------------------------------------------------------------------------------- /android/国内顶尖团队的开源地址.md: -------------------------------------------------------------------------------- 1 | 国内顶尖团队的开源地址 2 | --- 3 | 4 | http://www.apkbus.com/thread-463708-1-1.html 5 | 1.阿里巴巴 6 | 阿里巴巴主团队 7 | Alibaba https://github.com/alibaba/ 8 | https://github.com/alibaba/atlas/tree/master/atlas-demo 9 | 阿里巴巴前端团队 10 | https://github.com/thx 11 | 12 | 2.腾讯 13 | 14 | QQ团队 15 | https://github.com/AlloyTeam 16 | 17 | 微信团队 18 | https://github.com/tencent-wechat 19 | 主团队 20 | https://github.com/tencent 21 | 前端 22 | https://github.com/WechatFE 23 | 后台 24 | https://github.com/TencentOpen 25 | 腾讯移动端UI 26 | https://github.com/frozenui 27 | 28 | 3.百度 29 | 主团队 30 | https://github.com/baidu 31 | 主团队2 32 | https://github.com/ecomfe 33 | web前端1 34 | https://github.com/fex-team 35 | web前端2 36 | https://github.com/baidufe 37 | web前端3 38 | https://github.com/ecomfe 39 | 人工智能 40 | https://github.com/baidu-research 41 | 42 | 4. 华为 43 | 主团队 44 | https://github.com/Huawei 45 | 大数据团队 46 | https://github.com/HuaweiBigData 47 | 48 | 5. 360 49 | 主团队 50 | https://github.com/Qihoo360 51 | 52 | 6. 小米 53 | 主团队 54 | https://github.com/xiaomi 55 | 56 | 7. 58同城 57 | 主团队 58 | https://github.com/58code 59 | 60 | 8. 美团 61 | 美团点评(老) 62 | https://github.com/Meituan 63 | 美团点评(新) 64 | https://github.com/Meituan-Dianping 65 | 大众点评(老) 66 | https://github.com/dianping 67 | 68 | 9. 滴滴出行 69 | 主团队 70 | https://github.com/didi 71 | 72 | 10. 知乎 73 | 主团队 74 | https://github.com/zhihu 75 | 76 | 11. 哔哩哔哩 77 | 主团队 78 | https://github.com/Bilibili 79 | 80 | 12. 新浪微博 81 | 主团队 82 | https://github.com/weibocom 83 | 84 | 13. 搜狐 85 | 主团队 86 | https://github.com/SOHUDBA 87 | 88 | 14. 激光开发者(Jpush) 89 | 主团队 90 | https://github.com/jpush 91 | 92 | 15. 开源中国 93 | 主团队 94 | https://github.com/oschina 95 | 96 | 16. 唯品会 97 | 主团队 98 | https://github.com/vipshop 99 | 100 | 17. 当当 101 | 主团队 102 | https://github.com/dangdangdotcom 103 | 104 | 18. 豆瓣 105 | 主团队 106 | https://github.com/douban 107 | 108 | 19. 饿了么 109 | 主团队 110 | https://github.com/eleme 111 | 112 | 20. 当当 113 | 主团队 114 | https://github.com/dangdangdotcom 115 | 116 | 21. 有道词典 117 | 主团队 118 | https://github.com/netease 119 | 120 | 22.网易 121 | 主团队 122 | https://github.com/netease 123 | 124 | 23.七牛 125 | 主团队 126 | https://github.com/qiniu 127 | -------------------------------------------------------------------------------- /android/Android二维码.md: -------------------------------------------------------------------------------- 1 | ## Android二维码 2 | 3 | [Android利用zxing生成二维码,识别二维码,中间填充图片超详细、超简易教程](https://blog.csdn.net/mountain_hua/article/details/80646089) 4 | https://github.com/zxing/zxing 5 | 6 | [Android 基于google Zxing实现二维码、条形码扫描,仿微信二维码扫描效果](http://blog.csdn.net/xiaanming/article/details/10163203) 7 | 8 | [Android 使用Zxing实现二维码的生成,扫描](http://blog.csdn.net/qq_28057541/article/details/52034988) 9 | https://github.com/zxing/zxing 10 | 11 | [一个非常好用的android工具 zxing-android-embedded](https://github.com/journeyapps/zxing-android-embedded) 12 | 13 | [ZXing二维码扫描Demo QrCodeScan](https://github.com/HappyMiao/QrCodeScan) 14 | 15 | [十个Android的另类库,快来看看吧!](http://www.apkbus.com/blog-822721-75850.html) 16 | 17 | [使用开源的card.io 扫描识别银行卡](http://blog.csdn.net/niu0147/article/details/73618375) 18 | https://www.card.io/ 19 | https://github.com/card-io/card.io-Android-SDK 20 | https://github.com/card-io/card.io-Android-SDK/tree/master/SampleApp 21 | 22 | compile 'io.card:android-sdk:5.5.1' 23 | 24 | [Android平台银行卡识别--慧视银行卡号识别SDK](http://blog.sina.com.cn/s/blog_7a21a0b10102wag2.html) 25 | 26 | [Android平台证件识别系统](http://blog.sina.com.cn/s/blog_7a21a0b10102w9z7.html) 27 | 28 | [Android OCR识别身份证,银行卡等证件信息](http://www.apkbus.com/blog-927424-75847.html) 29 | [百度云OCR识别身份证,银行卡,驾驶证,车牌等证件](https://github.com/zhouxu88/OCRDemo) 30 | 31 | [Android 银行卡扫描识别获取卡号 用card.io 实现的银行卡扫描,免费](http://blog.csdn.net/a53657561/article/details/64982411) 32 | eclipse上面运行的Demo: 33 | http://download.csdn.net/detail/liqingmiao123/9492343 34 | AndroidStudio上运行的Demo: 35 | http://download.csdn.net/detail/rjliulei/8766921 36 | 37 | [android ocr——身份证识别的功能实现](http://www.jb51.net/article/97505.htm) 38 | google 开源的项目tesseract-ocr 39 | https://github.com/justin/tesseract-ocr 40 | 41 | 二维码扫描项目 42 | http://www.jb51.net/article/53487.htm 43 | 44 | [Android 笔记:识别银行卡,获取银行卡卡号](http://blog.csdn.net/xiaoyu940601/article/details/54575866) 45 | Android笔记(翻译):card.io SDK for Android银行卡扫描 46 | http://blog.csdn.net/xiaoyu940601/article/details/54575387 47 | 48 | https://github.com/paypal/PayPal-Java-SDK 49 | https://github.com/paypal/PayPal-Android-SDK 50 | compile 'com.paypal.sdk:paypal-android-sdk:2.15.3' 51 | 52 | dependencies { 53 | compile('com.paypal.sdk:paypal-android-sdk:2.15.3') { 54 | exclude group: 'io.card' 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /android/Android混淆.md: -------------------------------------------------------------------------------- 1 | [Android 混淆查缺补漏](http://www.sohu.com/a/217384047_611601) 2 | 3 | [5分钟搞定android混淆](https://www.jianshu.com/p/f3455ecaa56e) 4 | 5 | [Android混淆总结篇(一)](http://blog.csdn.net/yk377657321/article/details/60501880) 6 | 7 | [Android混淆总结篇(二)](http://blog.csdn.net/yk377657321/article/details/63257783) 8 | 9 | [Android 混淆总结(直接copy)](http://blog.csdn.net/u012188405/article/details/51985273) 10 | 11 | 12 | [Android混淆从入门到精通](https://www.jianshu.com/p/7436a1a32891) 13 | 14 | Android Studio自身集成Java语言的ProGuard作为压缩,优化和混淆工具,配合Gradle构建工具使用很简单,只需要在工程应用目录的gradle文件中设置minifyEnabled为true即可。然后我们就可以到proguard-rules.pro文件中加入我们的混淆规则了。 15 | 16 | android { 17 | ... 18 | buildTypes { 19 | release { 20 | minifyEnabled true 21 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 22 | } 23 | } 24 | } 25 | 26 | [为什么这么多商业Android开发者不混淆代码?](https://www.zhihu.com/question/37446729) 27 | 28 | [Android ProGuard 混淆 详解](http://blog.csdn.net/chen930724/article/details/49687067) 29 | 30 | [Android 混淆那些事儿](https://www.cnblogs.com/bugly/p/7085469.html) 31 | 32 | 未混淆代码的反编译操作非常简单,网上有很多教程, 也可以通过使用Android Studio自带的apk分析工具(Build---Analyze APK)直接看到未混淆Apk的源代码和原始的资源文件 33 | 34 | ---------------- 35 | 36 | 生成混淆规则 37 | --- 38 | 39 | 通过使用Android Studio自带的apk分析工具(Build---Analyze APK)生成混淆规则: 40 | 41 | 生成混淆规则: 42 | 43 | Build---Analyze APK 44 | 45 | F:\pccb_app_3_1_11\app\build\outputs\apk\yyb\release\pccb-v3.1.11-yyb-release.apk 46 | 47 | classes.dex 48 | 49 | com 50 | pccb 51 | app 52 | bean 53 | 右键: 54 | Generate Proguard keep rule 55 | 56 | # Add *one* of the following rules to your Proguard configuration file. 57 | # Alternatively, you can annotate classes and class members with @android.support.annotation.Keep 58 | 59 | # keep everything in this package from being removed or renamed 60 | -keep class com.pccb.app.bean.** { *; } 61 | 62 | # keep everything in this package from being renamed only 63 | -keepnames class com.pccb.app.bean.** { *; } 64 | 65 | --------------------------------- 66 | [[Android] Proguard And DexGuard](http://blog.csdn.net/arui319/article/details/18360147) 67 | 68 | [Android Proguard工具使用和配置详解 ](http://blog.csdn.net/ccpat/article/details/52059344) 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | -------------------------------------------------------------------------------- /translation/README.md: -------------------------------------------------------------------------------- 1 | # 翻译 2 | 3 | 百度翻译 4 | --- 5 | 6 | [百度翻译开放平台](https://api.fanyi.baidu.com/) 7 | 8 | [百度翻译帮助与支持](https://api.fanyi.baidu.com/api/trans/product/apidoc) 9 | 10 | [百度翻译通用翻译API技术文档](https://api.fanyi.baidu.com/api/trans/product/apidoc) 11 | 12 | [百度翻译免费接口](https://blog.csdn.net/qq_42572322/article/details/89849109) 13 | ~~~ 14 | 地址: https://fanyi.baidu.com/transapi?to=zh&query=google 15 | ~~~ 16 | 17 | [Android 调用百度翻译API 实现在线翻译](https://blog.csdn.net/Davey_Zhou/article/details/83212666) 18 | 19 | [Android接入百度翻译API](https://download.csdn.net/download/highboys/9599342) 20 | 21 | [百度翻译API对接](https://blog.csdn.net/sunnyzyq/article/details/85088630) 22 | 23 | [百度翻译APi接口实现](https://blog.csdn.net/weixin_30685047/article/details/98235203) 24 | 25 | [百度翻译接口 破解](https://blog.csdn.net/hujingshuang/article/details/80180294) 26 | 27 | 28 | 29 | 30 | 谷歌翻译 31 | --- 32 | 33 | [Android中谷歌翻译接口使用(使用谷歌翻译接口,App做文本翻译)](https://blog.csdn.net/NewActivity/article/details/102562096) 34 | 35 | [Android开发——手把手写APP(三)调用有道词典翻译API实现的翻译APP(详细备注解读)](https://blog.csdn.net/weixin_42247720/article/details/97383043) 36 | 37 | [有道翻译API](http://fanyi.youdao.com/openapi) 38 | 39 | [有道智云](https://ai.youdao.com/gw.s#/) 40 | 41 | 42 | 43 | [天行数据英汉词典API](https://www.tianapi.com/apiview/49) 44 | 45 | [收集可用的关于英语单词api](https://blog.csdn.net/chemmuxin1993/article/details/52588074) 46 | 47 | 扇贝单词发音(https://www.shanbay.com/): 48 | ~~~ 49 | 1. 美式:http://media.shanbay.com/audio/us/%s.mp3 50 | 2. 英式:http://media.shanbay.com/audio/uk/%s.mp3 51 | ~~~ 52 | 53 | [有道词典发音接口] 54 | ~~~ 55 | http://dict.youdao.com/speech?audio=dog 56 | http://dict.youdao.com/speech?audio=good%20bye 57 | ~~~ 58 | 59 | [10万条英语单词库](https://download.csdn.net/download/waynehu1991/10705498) 60 | 61 | [15000个英文单词SQLite库,含翻译、各种时态、复数形式、例句](https://download.csdn.net/download/chen_ice/8757337) 62 | 63 | 免费API接口 64 | --- 65 | 66 | [聚合数据 Api免费接口](https://www.juhe.cn/) 67 | 68 | https://www.juhe.cn/docs/index/otherid/1/page/1 69 | 70 | 71 | [【数据】常用API接口汇总](https://cloud.tencent.com/developer/article/1102112) 72 | 73 | [各平台免费翻译API](https://www.cnblogs.com/fanyang1/p/9414088.html) 74 | 75 | [非常有趣的的免费API接口,基本上很全了](https://blog.csdn.net/MISTLETOE_WW/article/details/84192185) 76 | 77 | [100多个免费API接口分享 调用完全不限次数,以后总用得着](https://blog.csdn.net/weixin_38405253/article/details/104322599) 78 | 79 | 80 | 81 | [友盟](https://developer.umeng.com/) 82 | 83 | [NewsClient](https://github.com/wz1509/NewsClient) 84 | 一款 Material Design 风格的新闻App,采用 Mvp + RxJava + Retrofit + Dagger2 设计模式,整体风格为 NavigationView + Fragment 开发。 85 | 86 | [ 多源翻译 (Multi-source Translation, MTrans)](https://github.com/hujingshuang/MTrans) 87 | 88 | https://github.com/hujingshuang/MTrans 89 | 90 | 91 | -------------------------------------------------------------------------------- /android/Android图表.md: -------------------------------------------------------------------------------- 1 | 图表 2 | --- 3 | #### MPAndroidChart 4 | 5 | [MPAndroidChart开源图表库(一)之饼状图](http://blog.csdn.net/shineflowers/article/details/44701645) 6 | https://github.com/PhilJay/MPAndroidChart 7 | 8 | [MPAndroidChart开源图表库(二)之折线图](http://blog.csdn.net/shineflowers/article/details/44704723) 9 | 10 | [Android开源 - SmallChart图表库](http://www.open-open.com/lib/view/open1470819423275.html) 11 | http://blog.csdn.net/easyer2012/article/details/52396921 12 | https://github.com/Idtk/SmallChart 13 | 14 | [WilliamChart图表库](http://www.open-open.com/lib/view/open1455783606245.html) 15 | http://jcodecraeer.com/a/opensource/2014/1011/1738.html 16 | 项目地址: https://github.com/diogobernardino/WilliamChart 17 | 18 | #### XCL-Charts 19 | 20 | [Android开源图表库(XCL-Charts is a free charting library for Android platform.)](http://www.open-open.com/lib/view/open1407649591707.html) 21 | http://blog.csdn.net/xcl168/article/details/42318669 22 | https://github.com/xcltapestry/XCL-Charts 23 | 目前支持3D/非3D柱形图(Bar Chart)、3D/非3D饼图(Pie Chart)、堆积图(Stacked Bar Chart)、面积图(Area Chart)、 折线图(Line Chart)、曲线图(Spline Chart)、环形图(Dount Chart)、南丁格尔玫瑰图(Rose Chart)、仪表盘(Dial Chart)、刻度盘(Gauge Chart)、雷达图(Radar Chart)、圆形图(Circle Chart)等图表。 24 | 25 | 其它特性还包括支持图表缩放、手势移动、点击响应、动画显示、高密度柱形显示、图表分界定制线、多图表的混合显示及同数据源不同类型图表切换等 26 | 27 | [[译]React Native开源图表组件](http://www.open-open.com/lib/view/open1457082423875.html) 28 | 开源项目地址: https://github.com/hongyin163/react-native-chart-android 29 | 1.MPAndroidChart: https://github.com/PhilJay/MPAndroidChart/ 30 | 2.MPAndroidChart-Wiki: https://github.com/PhilJay/MPAndroidChart/wiki 31 | 32 | #### HelloCharts 33 | 34 | [非常优秀开源图表库 HelloCharts](http://www.open-open.com/lib/view/open1455980392511.html) 35 | 36 | [hellocharts-android开源图表库(效果非常好)](http://jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1107/1930.html) 37 | 项目地址: https://github.com/lecho/hellocharts-android 38 | (https://github.com/qht1003077897/hellocharts-line) 39 | 40 | [HelloChart--BubbleChartView(气泡图)](http://blog.csdn.net/litian921226/article/details/51187469) 41 | 42 | [HelloChart--ColumnChartView(柱形图)](http://blog.csdn.net/litian921226/article/details/51187458) 43 | 44 | [HelloChart--LineChartView(折线图)](http://blog.csdn.net/litian921226/article/details/51187447) 45 | 46 | [HelloChart--PreviewChartView(预览统计图)](http://blog.csdn.net/litian921226/article/details/51187489) 47 | 48 | [HelloChart--ComboLineColumnChartView(组合统计图)](http://blog.csdn.net/litian921226/article/details/51187474) 49 | 50 | [HelloChart--PieChartView(饼图)](http://blog.csdn.net/litian921226/article/details/51187467) 51 | 52 | [饼图,很实用简单。可旋转到指定的位置](http://www.apkbus.com/thread-85971-1-1.html ) 53 | 有下载 54 | 55 | [[效果demo] Android-WilliamChart各种图表效果](http://www.androidym.com/forum.php?mod=viewthread&tid=18933&extra=page%3D8%26filter%3Dtypeid%26typeid%3D3%26typeid%3D3) 56 | 57 | 58 | -------------------------------------------------------------------------------- /android/底部菜单&头部导航栏.md: -------------------------------------------------------------------------------- 1 | 底部菜单 & 顶部导航栏 2 | --- 3 | [底部菜单 FragmentTabHost 的使用](http://www.cnblogs.com/changyinlu/p/5511932.html) 4 | BottomNavigationViewEx 5 | http://www.jcodecraeer.com/plus/view.php?aid=8283 6 | https://github.com/ittianyu/BottomNavigationViewEx 7 | https://github.com/ittianyu/BottomNavigationViewEx/blob/master/README_ZH.md 8 | 9 | [Android流行UI布局——底部导航](BottomNavigationView+ViewPager+Fragment) 10 | http://www.jianshu.com/p/0ba25cc65889 11 | https://github.com/brucevanfdm/BottomNavigationView 12 | 13 | [超简单,几行代码搞定Android底部导航栏](http://www.jianshu.com/p/ade8485a16be) 14 | https://github.com/hujinmeng/MyApplication 15 | 16 | [Android实现顶部底部双导航界面功能](http://www.jb51.net/article/92143.htm) 17 | 18 | [BottomNavigationView 的使用](http://blog.csdn.net/wl9739/article/details/52875710) 19 | 20 | [BottomNavigationView从入门到强行改造,取消位移动画?和ViewPager绑定?添加Badge?](http://blog.csdn.net/qq_35064774/article/details/54177702 https://github.com/ittianyu/BottomNavigationViewEx) 21 | 22 | [android新特性: 底部导航栏BottomNavigationView系统库与第三方库的两种不同库的使用方法](http://blog.csdn.net/huangxiaoguo1/article/details/53842536) 23 | 24 | app:itemBackground:设置item的背景,对应setItemBackgroundResource(int resId)方法 25 | app:itemIconTint:设置icon的颜色,对应setItemIconTintList(ColorStateList tint)方法 26 | app:itemTextColor:设置文字的颜色,对应setIteTextColor(ColorStateList textColor)方法 27 | 28 | 32 | 33 | [BottomNavigationView结合ViewPager](http://www.cnblogs.com/ganchuanpu/p/6920000.html) 34 | TopRightMenu https://github.com/zaaach/TopRightMenu 35 | 36 | TabLayout 37 | --- 38 | [android design library提供的TabLayout的用法](http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0731/3247.html) 39 | 40 | [Android开发之设置TabLayout下方下划线的宽度](http://blog.csdn.net/sheajin/article/details/59104205) 41 | 42 | [Design库-TabLayout属性详解](http://www.jianshu.com/p/2b2bb6be83a8) 43 | 在清单文件中设置如下代码即可: 44 | android:theme="@style/Theme.AppCompat" 45 | 46 | [TabLayout用法详解及自定义样式](http://www.jb51.net/article/101912.htm) 47 | 48 | [TabLayout高端用法(一)](http://www.jianshu.com/p/be1e8a1da639?nomobile=yes) 49 | 50 | FlycoTabLayout 51 | -------------------------- 52 | 53 | [开源项目:FlycoTabLayout](https://www.jianshu.com/p/8fdd6f2719b0) 54 | 55 | [FlycoTabLayout GitHub](https://github.com/H07000223/FlycoTabLayout) 56 | 57 | [用FlycoTabLayout+Glide实现动态加载底部TAB图标(Android)](https://www.jianshu.com/p/b2d2f2f36843) 58 | 59 | [谷歌TabLayout及FlycoTabLayout三方库入门](https://www.jianshu.com/p/74a9f501eceb) 60 | 61 | [Android 第三方库FlycoTabLayout](https://www.cnblogs.com/guochangxin/p/11527251.html) 62 | 63 | [CommonTabLayout+ViewPager快速完成APP首页搭建](http://www.mamicode.com/info-detail-2152610.html) 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | -------------------------------------------------------------------------------- /android/Android消息处理机制.md: -------------------------------------------------------------------------------- 1 | Android 消息处理机制 2 | --- 3 | [Android消息处理机制(Handler、Looper、MessageQueue与Message)](http://www.cnblogs.com/angeldevil/p/3340644.html) 4 | 5 | [Android消息机制字典型探究(一)](http://www.jianshu.com/p/8c06b1d7ca68) 6 | 7 | [Android消息机制字典型探究(二)](http://www.jianshu.com/p/8501d3b0c359) 8 | 9 | [带着这篇去通关所有Handler的提问(三)](http://www.jianshu.com/p/fad4e2ae32f5) 10 | 11 | [Handler可能造成内存泄漏(四)](http://www.jianshu.com/p/c0c67c2a0532) 12 | 13 | [Android开发中Handler的经典总结](http://mobile.51cto.com/aprogram-442833.htm) 14 | 15 | [Android Handler详细使用方法实例](http://www.codeceo.com/article/android-handler-usage.html) 16 | 17 | 18 | Java Message Service (JMS)介绍 19 | http://blog.csdn.net/lucifer821031/article/details/2064541 20 | 21 | [Android中Message参数传递](http://blog.csdn.net/generallizhong/article/details/53018783) 22 | 23 | [Bundle数据通过Message传送](http://blog.csdn.net/baidu_24169397/article/details/44921827) 24 | 25 | [Android中Message传递参数(bundle setData方式传递)](http://blog.csdn.net/rongwenbin/article/details/46983757) 26 | 27 | [Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系](http://blog.csdn.net/lmj623565791/article/details/38377229) 28 | 29 | [Android 基于Message的进程间通信 Messenger完全解析](http://blog.csdn.net/lmj623565791/article/details/47017485) 30 | 31 | [Android事件分发机制详解:史上最全面、最易懂](https://www.jianshu.com/p/38015afcdb58) 32 | 33 | [android Activity runOnUiThread() 方法使用](https://www.cnblogs.com/zhaoyanjun/archive/2016/05/11/5483221.html) 34 | 35 | public class MainActivity extends AppCompatActivity { 36 | 37 | @Override 38 | protected void onCreate(Bundle savedInstanceState) { 39 | super.onCreate(savedInstanceState); 40 | setContentView(R.layout.activity_main); 41 | 42 | //创建一个线程 43 | new Thread(new Runnable() { 44 | 45 | @Override 46 | public void run() { 47 | 48 | //延迟两秒 49 | try { 50 | Thread.sleep( 2000 ); 51 | } catch (InterruptedException e) { 52 | e.printStackTrace(); 53 | } 54 | 55 | runOnUiThread(new Runnable() { 56 | @Override 57 | public void run() { 58 | Toast.makeText(MainActivity.this, "hah", Toast.LENGTH_SHORT).show(); 59 | } 60 | }); 61 | 62 | } 63 | }).start(); 64 | } 65 | } 66 | 67 | [runOnUiThread更新主线程](https://www.cnblogs.com/wanqieddy/p/4153203.html) 68 | 69 | AsyncTask 70 | --- 71 | [Android :AsyncTask最详细使用教程](https://juejin.im/entry/5a78fba3f265da4e9673d4b8) 72 | 建议先下载源码再看:Carson_Ho的Github地址:AsyncTask https://github.com/Carson-Ho/MultiThread_learning 73 | 74 | [Android 多线程:AsyncTask的原理 及其源码分析](https://www.jianshu.com/p/37502bbbb25a) 75 | 76 | 77 | -------------------------------------------------------------------------------- /Kotlin/Kotlin.md: -------------------------------------------------------------------------------- 1 | Kotlin 2 | === 3 | [《Kotlin for android developers》中文版翻译](https://www.ctolib.com/docs//sfile/kotlin-for-android-developers-zh/index.html) 4 | 5 | [Kotlin 资源大全 - 学 Kotlin 看这一篇教程就够了](http://blog.csdn.net/cenzr/article/details/72674849) 6 | 7 | [Kotlin学习资料汇总](http://www.apkbus.com/blog-261991-68033.html) 8 | 9 | [学习 Kotlin 的 20 个实用资源](http://www.apkbus.com/blog-866962-76616.html) 10 | 11 | [不可错过的 Kotlin 资源列表](https://github.com/KotlinBy/awesome-kotlin) 12 | 13 | [使用Kotlin来开发Android【安卓巴士博文大赛】](http://www.apkbus.com/blog-780485-68062.html) 14 | 15 | [Kotlin如何实现MVP架构](http://www.apkbus.com/blog-847095-68637.html) 16 | 17 | [使用Kotlin封装RecycleView和重构](http://www.apkbus.com/blog-822415-68616.html) 18 | 19 | [使用Kotlin开发Android项目-Kibo【安卓巴士博文大赛】](http://www.apkbus.com/blog-780485-68292.html) 20 | 21 | [让你的 Kotlin 代码远离 !!](http://www.apkbus.com/blog-822717-68438.html) 22 | 23 | [Kotlin编程之Glide v4 Generated API ](http://www.apkbus.com/blog-847095-68125.html) 24 | 25 | [Kotlin语言文档翻译项目](https://github.com/kymjs/KotlinDoc-cn) 26 | 27 | [kotlin基础语法](https://kymjs.com/code/2015/08/02/01/) 28 | 29 | [《Kotlin 一门强大的语言》_开源实验室-张涛](https://kymjs.com/column/kotlin.html) 30 | 31 | [Kotlin Primer·第一章·启程](https://kymjs.com/code/2017/02/03/01/) 32 | [Kotlin Primer·第二章·基本语法](https://kymjs.com/code/2017/02/04/01/) 33 | [Kotlin Primer·第三章·Kotlin 与 Java 混编](https://kymjs.com/code/2017/02/07/01/) 34 | [Kotlin Primer·第四章·Kotlin 的类特性(上)](https://kymjs.com/code/2017/02/12/01/) 35 | [Kotlin Primer·第四章·Kotlin 的类特性(下)](https://kymjs.com/code/2017/02/26/01/) 36 | [Kotlin Primer·第五章·函数与闭包](https://kymjs.com/code/2017/04/09/01/) 37 | [Kotlin Primer·第六章·集合泛型与操作符](https://kymjs.com/code/2017/06/06/01/) 38 | 39 | ### Kotlin专题 40 | [谷歌宣布 Kotlin 成安卓开发一级语言,我们如何来学习它](https://juejin.im/entry/591cffb82f301e006bd9407a) 41 | [Kotlin是什么](http://blog.csdn.net/abc6368765/article/details/72494075) 42 | [Kotlin(一)-->Android Studio配置Kotlin开发环境](http://blog.csdn.net/qq_23547831/article/details/52857346) 43 | [使用Kotlin开发Android应用](http://blog.csdn.net/cuiran/article/details/50681473) 44 | [Kotlin如何成为我们Android开发的主要语言](http://www.infoq.com/cn/articles/how-kotlin-become-our-android-develop-language) 45 | 46 | ### Kotlin相关网址 47 | Kotlin官网:http://kotlinlang.org 48 | 官网文档: 49 | http://kotlinlang.org/docs/reference/android-overview.html 50 | http://kotlinlang.org/docs/reference/kotlin-doc.html 51 | 52 | 国内中文文档:https://huanglizhuo.gitbooks.io/kotlin-in-chinese/content/ 53 | 54 | 国内中文文档2:http://www.liying-cn.net/kotlin/docs/reference/ 55 | 56 | Kotlin-github地址: https://github.com/JetBrains/kotlin 57 | 58 | [Kotlin API](https://kotlinlang.org/api/latest/jvm/stdlib/index.html) 59 | [Kotlin中文文档](https://www.gitbook.com/book/canglangwenyue/kotlin-/details) 60 | 61 | [Kotlin学习资料汇总](http://blog.csdn.net/ithouse/article/details/72597736) 62 | 63 | [Android KTX简介](http://www.apkbus.com/blog-866962-77173.html) 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /java/Java 接口.md: -------------------------------------------------------------------------------- 1 | Java 接口 2 | === 3 | 4 | [Java 接口(W3cSchool)](https://www.w3cschool.cn/java/java-interfaces.html) 5 | 6 | [Java 接口(菜鸟教程)](http://www.runoob.com/java/java-interfaces.html) 7 | 8 | [Java 中的接口有什么作用?](https://www.zhihu.com/question/20111251) 9 | 链接:https://www.zhihu.com/question/20111251/answer/14760353 10 | ``` 11 | 接口只是一个规范,所以里面的方法都是空的。假如我开了一个宠物粮店,声明所有宠物都可以来我这里买粮食,这就相当于一个接口,public interface PetRestaurant { public void buy();}当一只狗看到了,知道自己是宠物,所以它去实现这个接口public class DogPet implements PetRestaurant { @Override public void buy() { System.out.println("我是狗,我要买狗粮"); }}当一只猫看到了,知道自己也是宠物,所以也去实现这个接口public class CatPet implements PetRestaurant { @Override public void buy() { System.out.println("我是猫,我要买猫粮"); }}当狗和猫来我的店之前,我是不知道他们到底是什么,但是当他们来到我的店,我就知道一个要猫粮食,一个要狗粮食。因为他们都实现了 我这个接口,都可以买。下面这个类相当于一个接待顾客的类,即店小二,他接待所有实现了我这个宠物店接口的动物,传进来一个PetRestaurant 类型的宠物,注意,这个PetRestaurant 是接口public class test { public void buy(PetRestaurant pet) { pet.buy(); }}好了,这个时候我这个老板出现了,我可以给他们卖粮食了,相当于测试类public class Tests { public static void main(String[] args) { PetRestaurant dog = new DogPet(); //实例化一个狗,相当于把狗顾客实例化 PetRestaurant cat = new CatPet();//实例化一个猫,相当于把猫顾客实例化 test t = new test(); //实例化一个店小二 t.buy(cat); //把猫交给店小二 t.buy(dog); //把狗交给店小二 }}这样运行的结果就是我是猫,我要买猫粮我是狗,我要买狗娘你知道吗,整个过程我这个店主其实根本不知道来的到底是猫是狗还是其他什么,我只要有一个店小二,把这些来的不知什么动物都全部交给店小二,店小二就知道怎么去卖了,因为这些狗啊猫啊都实现了我这个宠物店的接口,而店小二就负责接待所有实现了我这个接口的动物。这就有一个好处,假如明天来了一头小猪,只要它实现了我这个接口,我只管交给店小二处理就OK了,我这个店小二根本不需要变化,我这个店主也只需要实例化一下这个动物就OK你想,假如没有接口,会怎么办,来一个猫,我要去创造一个猫,还要实例化,来一只狗,我要创建一只狗,同样要实例化,还要配备专门的店小二去接待,就会相当麻烦 12 | ``` 13 | 14 | [Java 接口](http://www.runoob.com/java/java-interfaces.html) 15 | 16 | 17 | [Java接口 详解(一)](http://blog.csdn.net/wei_zhi/article/details/52738471) 18 | 19 | [Java接口 详解(二)](http://blog.csdn.net/wei_zhi/article/details/52743109) 20 | 21 | [java接口简单例子](http://blog.csdn.net/Clarissatt/article/details/51263696) 22 | 23 | [【java】:java接口详解](http://blog.csdn.net/qq_23100787/article/details/62887348) 24 | 25 | [Java接口详解](http://blog.csdn.net/zdwzzu2006/article/details/4567957) 26 | 27 | [java中嵌套接口](http://blog.csdn.net/zhugewendu/article/details/72792529) 28 | 29 | [ Java之嵌套接口和嵌套类了解和简单实例](http://blog.csdn.net/huangwenyi1010/article/details/53873457) 30 | 31 | [java中外部接口与内部接口的使用](http://blog.csdn.net/u012842688/article/details/50939533) 32 | 33 | [Java中的内部接口](http://blog.csdn.net/hspingcc/article/details/54922771) 34 | 35 | [Java 内部接口、回调](http://blog.csdn.net/dsc114/article/details/39893357) 36 | 37 | [Java在类中定义接口](http://blog.csdn.net/liuhaiabc/article/details/53352006) 38 | 39 | [Java基础课程-接口、内部类、回调函数讲解](http://blog.csdn.net/redarmy_chen/article/details/52105805) 40 | 41 | [java 接口、抽象类、具体类、内部类、匿名内部类的区别及它们之间的关系](http://blog.csdn.net/vlqin1/article/details/48809297) 42 | 43 | [内部类(闭包与回调)](http://blog.csdn.net/eyeooo/article/details/11971145) 44 | 45 | [第十章 内部类 内部类的作用、闭包、内部类继承、覆盖重写内部类、局部内部类、内部类标识符](http://blog.csdn.net/sinat_32955803/article/details/52298564) 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /Video/Android视频录制.md: -------------------------------------------------------------------------------- 1 | 视频录制 2 | === 3 | 4 | [Android Camera 相机开发详解](https://www.jianshu.com/p/7dd2191b4537) 5 | 6 | [Camera](https://www.jianshu.com/p/208b8b6105d8) 7 | 8 | [Android Camera](https://www.jianshu.com/p/1e7ddbd7372f) 9 | 10 | [Android Camera(摄像头)](https://www.yiibai.com/android/android_camera.html) 11 | 12 | [Android 调用系统应用的方法总结](https://www.jb51.net/article/120715.htm) 13 | 14 | [Android录制视频,可限制时长,限大小](https://blog.csdn.net/huideveloper/article/details/52327022) 15 | 16 | [android 设置录制视频的时长与大小限制,超时、超大小时自动停止](https://blog.csdn.net/liubenlong007/article/details/19300395) 17 | 18 | [Android调用相机拍照录视频录音以及存储,7.0以上及以下都可使用](https://blog.csdn.net/haojiagou/article/details/81235574) 19 | 20 | [像微信一样录制视频和音频](https://www.jianshu.com/p/619fca8671a1) 21 | GitHub 地址:https://github.com/Werb/MediaUtils 22 | 也可直接点击下载体验 https://fir.im/cbas 23 | 欢迎使用我自己开源的一个 Android 图片选择器 24 | 【PickPhotoView】 Github 地址:https://github.com/Werb/PickPhotoSample 25 | 项目中关于 Android M的权限检查用到了,我的另外一个库 26 | 【PermissionsChecker】Github 地址 :https://github.com/Werb/PermissionsCheckerSample 27 | 28 | 29 | [android之多媒体篇(一)](https://www.cnblogs.com/Free-Thinker/p/3546408.html) 30 | 31 | [android之多媒体篇(二)](https://www.cnblogs.com/Free-Thinker/p/3546412.html) 32 | 33 | [android之多媒体篇(三)](https://www.cnblogs.com/Free-Thinker/p/3546413.html) 34 | 35 | [Android之多媒体编程](https://www.cnblogs.com/jiaowoxiaochen/p/4954388.html) 36 | 37 | [android多媒体和相机详解一](https://www.2cto.com/kf/201205/131766.html) 38 | 39 | [android 多媒体和相机详解二](https://blog.csdn.net/yangxi_pekin/article/details/8493648) 40 | 41 | [android 多媒体和相机详解三](https://blog.csdn.net/love_techlive/article/details/70799745) 42 | 43 | [android 多媒体和相机详解四](https://www.aliyun.com/jiaocheng/112598.html) 44 | 45 | [android 多媒体和相机详解五](https://blog.csdn.net/niu_gao/article/details/7658008) 46 | 47 | [android 多媒体和相机详解六](https://www.2cto.com/kf/201207/138289.html) 48 | 49 | [android 多媒体和相机详解七](https://blog.csdn.net/love_techlive/article/details/70800232) 50 | 51 | [android 多媒体和相机详解八](https://blog.csdn.net/love_techlive/article/details/70799819) 52 | 53 | [android 多媒体和相机详解九](https://blog.csdn.net/niu_gao/article/details/7770054) 54 | 55 | [android 多媒体和相机详解十](https://blog.csdn.net/niu_gao/article/details/7782959) 56 | 57 | [android 多媒体和相机详解十一](https://blog.csdn.net/niu_gao/article/details/7787209) 58 | 59 | [Android开发指南(33) —— Multimedia and Camera - Camera](https://www.cnblogs.com/over140/archive/2011/11/16/2251344.html) 60 | 61 | 62 | --------------- 63 | 64 | [android使用ImageView加载本地SdCard图片和加载网络图片](https://blog.csdn.net/yegshun/article/details/81303696) 65 | 66 | [android获取本地图片并显示图片](android获取本地图片并显示图片) 67 | 68 | [android ImageLoader加载本地图片的工具类](http://www.cnblogs.com/tony-yang-flutter/p/3986157.html) 69 | 70 | [获取屏幕的宽度以及动态设置ImageView的宽度、高度](https://blog.csdn.net/u012336923/article/details/39780189) 71 | 72 | [动态的获取和设置ImageView的宽度和高度](https://blog.csdn.net/heng615975867/article/details/9358679) 73 | 74 | 75 | 76 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /android/Android开放源码.md: -------------------------------------------------------------------------------- 1 | Android开放源码 2 | === 3 | 4 | [Xiaomi Open Source](https://github.com/XiaoMi) 5 | 6 | [几乎所有开源安卓app的列表](https://github.com/pcqpcq/open-source-android-apps) 7 | 8 | [Android开源库汇总](http://xybcoder.github.io/ANDROID/) 9 | 10 | [Android 开源项目分类汇总](https://github.com/Trinea/android-open-project)   11 | 12 | 13 | [android企业级商城源码](http://www.apkbus.com/thread-462905-1-1.html) 14 | 15 | [android砸金蛋](http://download.csdn.net/download/wt0731/5009525) 16 | 17 | [Android 原生 轮盘抽奖](http://www.apkbus.com/blog-851511-76989.html) 18 | 19 | 20 | [Android开发人员不得不收集的代码(持续更新中)](http://www.diycode.cc/projects/Blankj/AndroidUtilCode) 21 | https://github.com/Blankj/AndroidUtilCode 22 | ``` 23 | Gradle: 24 | compile 'com.blankj:utilcode:1.3.3' 25 | Proguard 26 | -keep class com.blankj.utilcode.** { *; } 27 | -keep classmembers class com.blankj.utilcode.** { *; } 28 | -dontwarn com.blankj.utilcode.** 29 | ``` 30 | 31 | [http://grepcode.com/ Android sdk源码](http://grepcode.com/search/?query=ActivityThread) 32 | https://github.com/huangkunkun/AndroidUtilCode 33 | 34 | 35 | [開源安卓](https://www.gitbook.com/book/yongjhih/feed/details) 36 | https://github.com/yongjhih/android-gitbook/ 37 | 38 | 39 | 阿里云开源项目 40 | ------------- 41 | http://code.taobao.org/project/explore/ 42 | http://code.taobao.org/newest/ 43 | 44 | http://code.taobao.org/p/YuanWen/diff/66/trunk/app/src/main/java/com/smile/yuanwen/fragment/DynamicDetailFragment.java 45 | ``` 46 | + 47 | + /** 48 | + * 填充webview内容 49 | + */ 50 | + private void fillWebViewBody() { 51 | + StringBuffer body = new StringBuffer(); 52 | + body.append(ThemeSwitchUtils.getWebViewBodyString()); 53 | + body.append(UIHelper.WEB_STYLE + UIHelper.WEB_LOAD_IMAGES); 54 | + 55 | + StringBuilder tweetbody = new StringBuilder(mDynamic.getBody()); 56 | + 57 | + String tweetBody = TextUtils.isEmpty(mDynamic.getImgSmall()) ? tweetbody 58 | + .toString() : tweetbody.toString() + "
"; 60 | + body.append(setHtmlCotentSupportImagePreview(tweetBody)); 61 | + 62 | + UIHelper.addWebImageShow(getActivity(), mContent); 63 | + // 封尾 64 | + body.append(""); 65 | + mContent.loadDataWithBaseURL(null, body.toString(), "text/html", 66 | + "utf-8", null); 67 | + } 68 | + 69 | + /** 70 | + * 添加图片放大支持 71 | + * 72 | + * @param body 73 | + * @return 74 | + */ 75 | + private String setHtmlCotentSupportImagePreview(String body) { 76 | + // 过滤掉 img标签的width,height属性 77 | + body = body.replaceAll("(]*?)\\s+width\\s*=\\s*\\S+", "$1"); 78 | + body = body.replaceAll("(]*?)\\s+height\\s*=\\s*\\S+", "$1"); 79 | + return body.replaceAll("(]+src=\")(\\S+)\"", 80 | + "$1$2\" onClick=\"javascript:mWebViewImageListener.showImagePreview('" 81 | + + mDynamic.getImgBig() + "')\""); 82 | + } 83 | + 84 | 85 | ``` 86 | -------------------------------------------------------------------------------- /android/Android库及开发工具类.md: -------------------------------------------------------------------------------- 1 | Android 库及开发工具类 2 | --- 3 | [开发者不可错过的开源工具 —— Android 篇](https://my.oschina.net/editorial-story/blog/1581616?nocache=1519785675506) 4 | 5 | [微信开源的 Android 热修复框架 Tinker](https://www.oschina.net/p/tinker) 6 | https://github.com/Tencent/tinker 7 | https://github.com/Tencent/tinker/wiki 8 | 9 | [Android 图片加载和缓存库 Glide](https://www.oschina.net/p/glide) 10 | https://github.com/bumptech/glide 11 | 12 | [Android 排版库 FlexboxLayout](https://www.oschina.net/p/flexboxlayout) 13 | https://github.com/google/flexbox-layout 14 | 15 | [Facebook 开源图形库 KeyFrames](https://github.com/facebookincubator/Keyframes) 16 | 17 | [Android 切换效果实现 InfiniteCycleViewPager](https://github.com/Devlight/InfiniteCycleViewPager) 18 | 19 | [基于 RecyclerView 实现的 Android 库 Epoxy](https://www.oschina.net/p/epoxy) 20 | 21 | [卡片式 ViewPager ViewPagerCards](https://www.oschina.net/p/viewpager-cards) 22 | https://github.com/rubensousa/ViewPagerCards 23 | 24 | [Android 开源音频播放器 StylishMusicPlayer](https://github.com/ryanhoo/StylishMusicPlayer) 25 | 26 | [Android 流行框架查速表](http://www.ctolib.com/cheatsheets-Android-ch.html) 27 | 28 | [史上最完整的Android开发工具集合](http://www.apkbus.com/thread-252748-1-1.html) 29 | 30 | [像大牛一样写代码: 31个Android 开发者工具](http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2017/0526/7973.html) 31 | 32 | [Android开发人员不得不收集的代码(持续更新中)](https://www.jianshu.com/p/72494773aace) 33 | [ndroid工具类](http://www.apkbus.com/blog-901770-76998.html) 34 | 35 | [开发人员不得不用的工具这里几乎都已经总结,在这里面很好的一个库 Android开发人员不得不收集的代码(持续更新中) 36 | 工具库AndroidUtilCode](https://github.com/Blankj/AndroidUtilCode) 37 | [utilcode](https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/README-CN.md) 38 | [subutil](https://github.com/Blankj/AndroidUtilCode/blob/master/subutil/README-CN.md) 39 | 40 | [强大易用的安卓工具类库 AndroidUtilCode](https://www.oschina.net/p/androidutilcode) 41 | https://github.com/Blankj/AndroidUtilCode 42 | 43 | CommonUtilLibrary 44 | [快速开发工具类收集,史上最全的开发工具类](https://github.com/AbrahamCaiJin/CommonUtilLibrary) 45 | 46 | [lib常用工作空间](https://github.com/yline/as_lib_sdk) 47 | https://github.com/yline/as_lib_sdk/tree/master/_LibSDK/LibSDK/src/main/java/com/yline/utils 48 | https://github.com/yline/as_lib_sdk.git 49 | $ git clone https://github.com/yline/as_lib_sdk.git 50 | 51 | LibSDK 是一个Android开发基类库,提供一些基础功能;主要功能分为: 52 | * 常用工具类包 53 | * AppUtil 获取程序名称、版本信息 54 | * FileSizeUtil 获取文件、文件夹大小 55 | * FileUtil 文件操作帮助类 56 | * IOUtil IO流帮助类 57 | * KeyBoardUtil 键盘帮助类 58 | * LogUtil 打印日志类 59 | * PermissionUtil 权限帮助类 60 | * SDCardUtil SDCard帮助类 61 | * SPUtil SP读、存的帮助类 62 | * TimeConvertUtil 时间转换类 63 | * TimeStampUtil 时间戳、时间相互转换 64 | * UIResizeUtil 对View设置成固定大小 65 | * UIScreenUtil 单位转换、获取屏幕信息 66 | 67 | [新鲜出炉的26个Android库,你关注了吗?](http://www.sohu.com/a/201764376_608959) 68 | 69 | [包含所有Android library的数据库](https://android-arsenal.com/) 70 | 71 | [最佳library的列表](https://snowdream.github.io/awesome-android/) 72 | 73 | [Android Studio 60个插件整理](http://www.apkbus.com/home.php?mod=space&uid=719059&do=blog&id=63008) 74 | 75 | -------------------------------------------------------------------------------- /android/下拉刷新上拉加载.md: -------------------------------------------------------------------------------- 1 | 下拉刷新上拉加载 2 | --- 3 | 十分钟学会定制 Android 酷炫下拉刷新 4 | http://www.jianshu.com/p/32cfab8e0d5a 5 | https://github.com/diamondlin2016/pullToRefresh 6 | 7 | Android几种强大的下拉刷新库 8 | http://blog.csdn.net/android_zhengyongbo/article/details/68922763?locationNum=12&fps=1 9 | 10 | Android-PullToRefresh 11 | https://github.com/chrisbanes/Android-PullToRefresh 12 | 13 | SuperSwipeRefreshLayout 14 | SuperSwipeRefreshLayout源码分析 15 | http://blog.csdn.net/nupt123456789/article/details/48225139 16 | 17 | 自定义下拉刷新组件SuperSwipeRefreshLayout 源码 18 | http://blog.csdn.net/yxrc_fendoubuzhi/article/details/51867140 19 | 20 | https://github.com/nuptboyzhb/SuperSwipeRefreshLayout 21 | 这个是网友推荐的 SuperSwipeRefreshLayout ,顾名思义,是扩展自SwipeRefreshLayout。 22 | 23 | SwipeRefreshLayout实现上拉加载 源码 24 | https://www.cnblogs.com/manmanlu/p/5736856.html 25 | 26 | SmartRefreshLayout上拉下拉框架简单使用 27 | http://www.jianshu.com/p/45371b16b61d 28 | https://github.com/scwang90/SmartRefreshLayout 29 | 30 | SwipeRefreshLayout上拉下拉框架简单使用 31 | http://www.jianshu.com/p/45371b16b61d 32 | https://github.com/scwang90/SmartRefreshLayout 33 | https://github.com/race604/FlyRefresh 34 | https://github.com/Yalantis/Phoenix 35 | 36 | https://github.com/goyourfly/TabViewPager 37 | TabViewPager,通过简单的接口实现ViewPager,Head,TabLayout,RecyclerView组合展示 38 | 39 | 自定义Header和Footer 40 | https://github.com/scwang90/SmartRefreshLayout/blob/master/art/md_custom.md 41 | 42 | 属性设置 请访问 43 | https://github.com/scwang90/SmartRefreshLayout/blob/master/art/md_property.md 44 | 常见问题 45 | https://github.com/scwang90/SmartRefreshLayout/issues/71 46 | 47 | 48 | Android智能下拉刷新框架-SmartRefreshLayout 49 | 下拉刷新、上拉加载、RefreshLayout、OverScroll,Android智能下拉刷新框架,支持越界回弹、越界拖动,具有极强的扩展性,集成了几十种炫酷的Header和 Footer。 50 | 51 | Android智能下拉刷新框架-SmartRefreshLayout 52 | https://segmentfault.com/a/1190000010066071 53 | 54 | 最强大的下拉刷新框架_SmartRefreshLayout的基本使用 55 | http://blog.csdn.net/skylakexun/article/details/78115154 56 | 57 | 58 | Android智能下拉刷新框架-SmartRefreshLayout 59 | http://www.jianshu.com/p/7479b6ed5ebf 60 | 61 | 下拉刷新、上拉加载、RefreshLayout、OverScroll,Android智能下拉刷新框架,支持越界回弹、越界拖动,具有极强的扩展性,集成了几十种炫酷的Header和 Footer。 62 | 63 | 1.添加依赖 64 | 65 | >          compile 'com.scwang.smartrefresh:SmartRefreshLayout:1.0.1' 66 | >          compile 'com.scwang.smartrefresh:SmartRefreshHeader:1.0.1' 67 | 68 | 2.布局文件 69 | 70 | 71 | 75 | 81 | 82 | 83 | 最强大的下拉刷新框架_SmartRefreshLayout的基本使用 84 | http://blog.csdn.net/skylakexun/article/details/78115154 85 | 86 | [多种下拉刷新效果、上拉加载更多、可配置自定义头部广告位BGARefreshLayout-Android](http://p.codekk.com/detail/Android/bingoogolapple/BGARefreshLayout-Android) 87 | https://github.com/bingoogolapple/BGARefreshLayout-Android 88 | 89 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /h5/README.md: -------------------------------------------------------------------------------- 1 | h5打开APP 2 | === 3 | 4 | [如何通过JS唤醒APP页面!](https://blog.csdn.net/zhouting9907/article/details/81195046) 5 | 6 | [Android H5判断是否安装app和唤起APP](https://blog.csdn.net/robertcpp/article/details/51324947) 7 | 8 | [h5通过连接打开本地app_以及常见应用的URL Scheme](http://www.fly63.com/article/detial/389) 9 | 10 | [Android/IOS 微信及浏览器(h5)中唤起本地APP,唤起浮层,然后用外部浏览器打开唤起某本地APP](https://www.cnblogs.com/fanbi/p/9221596.html) 11 | 12 | [iOS/Android 浏览器(h5)及微信中唤起本地APP](https://www.cnblogs.com/shadajin/p/5724117.html) 13 | 14 | [H5中启动Android App](https://www.jianshu.com/p/15d717c814c7) 15 | 16 | [用H5页面打开APP](https://www.jianshu.com/p/ec6ba826d735) 17 | 18 | [h5启动原生APP总结](https://www.cnblogs.com/skyHF/p/7061600.html) 19 | 20 | [H5打开APP技术总结](https://blog.csdn.net/zy1281539626/article/details/79203853) 21 | 22 | [H5打开外部APP](https://blog.csdn.net/qinjm8888/article/details/79070720) 23 | 24 | [H5跳转App的某个指定页面](https://blog.csdn.net/nongminkouhao/article/details/81462513) 25 | https://github.com/daoqilvzouzheqiao/H5_To_Android 26 | 27 | [H5网页端直接打开APP并获取传递数据的方案](https://blog.csdn.net/geekqian/article/details/70052697) 28 | 29 | [关于H5唤醒APP的功能实现(千辛万苦啊!)](https://blog.csdn.net/sinat_29194935/article/details/70820398) 30 | 31 | [app内嵌H5页面与其他app的交互](https://blog.csdn.net/Sunny2011111/article/details/72729405) 32 | 33 | [H5页面如何唤醒app改进篇](https://blog.csdn.net/jiang314/article/details/52269818) 34 | 35 | [js在微信、微博、QQ、Safari唤起App的解决方案](https://segmentfault.com/a/1190000012940046) 36 | https://blog.csdn.net/vM199zkg3Y7150u5/article/details/79178252 37 | 38 | [h5打开app(包括安卓和ios)。h5部分代码](https://www.cnblogs.com/dandan1924/p/8530058.html) 39 | 40 | ------------- 41 | 42 | [APP和Js之间的相互调用方法](https://blog.csdn.net/nihaomabmt/article/details/80347945) 43 | 44 | [H5 原生JS页面传值](https://www.jianshu.com/p/badcca4fd5a4) 45 | 46 | [Android原生与H5通信](https://www.jianshu.com/p/9345d3550e7e) 47 | 48 | 49 | [Webview与H5交互——支持Intput type=”file“属性](https://www.jianshu.com/p/3443e9725f5a) 50 | 51 | [APP内嵌H5页面传值方法](https://www.oschina.net/question/931234_2142629) 52 | 53 | ------------- 54 | 55 | 56 | [分享链接打开客户端功能实现逻辑](https://www.zybuluo.com/wangwangheng/note/106998) 57 | 58 | [服务端判断操作系统的逻辑请参考](http://www.cnblogs.com/duanguyuan/p/3534470.html) 59 | 60 | [h5打开APP](https://github.com/hncgc/Android/blob/master/h5/h5%E6%89%93%E5%BC%80APP.txt) 61 | 62 | 63 | Shareinstall 64 | ---- 65 | 66 | [Shareinstall文档中心](http://shareinstall.net/document.html) 67 | 68 | [Shareinstall-App推广专家](http://www.shareinstall.com/) 69 | 70 | [我相信这是日后所有移动应用的标准,shareinstall !!干掉邀请码!!!](https://blog.csdn.net/weixin_42296867/article/details/80568802) 71 | 72 | [APP推广有效手段:友盟和shareinstall的区别!](https://blog.csdn.net/g123tianqi/article/details/81077432) 73 | 74 | [shareinstall与openinstall有什么不同?](https://zhidao.baidu.com/question/430563210556915732.html) 75 | 76 | [Shareinstall实例应用](http://www.mamicode.com/info-detail-2309693.html) 77 | 78 | [创业人现身说法:APP推广离不开Shareinstall](https://cloud.tencent.com/info/810c3311151fbf8399a26874e1feb7cd.html) 79 | 80 | [关于shareinstall的14个问答](https://blog.csdn.net/wuaiping9907/article/details/81125296) 81 | 82 | [Shareinstall是如何检测已经安装的app](https://blog.csdn.net/wuaiping9907/article/details/81083195) 83 | 84 | ----------------------- 85 | 86 | [推荐用于移动APP开发的顶级JavaScript框架](https://cloud.tencent.com/info/6ffab3bb2e7fe5ae0955f1124a5dbb60.html) 87 | 88 | 89 | 90 | 91 | 92 | 93 | -------------------------------------------------------------------------------- /android/AndroidStudio3.md: -------------------------------------------------------------------------------- 1 | Android Studio 3 2 | --- 3 | 4 | 升级AS3.0随记 5 | http://blog.csdn.net/iamzgx/article/details/72862509 6 | 7 | 迁移到Android Studio 3.0 8 | http://blog.csdn.net/ncuboy045wsq/article/details/73521856 9 | 10 | AndroidStudio3.0 Canary 的使用记录 11 | http://blog.csdn.net/j550341130/article/details/72818066 12 | 13 | Android studio 3.0上进行多渠道打包遇到的问题 14 | http://blog.csdn.net/small_technical/article/details/72782671 15 | ----------------------------------- 16 | Rendering Problems 17 | Failed to load platform 18 | rendering library 19 | -------------------------------- 20 | failed to load platform rendering library的解决方案 21 | http://blog.csdn.net/qq_37118873/article/details/78138163 22 | 23 | ---------------------------------------------- 24 | 可视化的方式来编写界面 25 | Android新特性介绍,ConstraintLayout完全解析 26 | http://blog.csdn.net/guolin_blog/article/details/53122387 27 | 28 | compile 'com.android.support.constraint:constraint-layout:1.0.2' 29 | 30 | 安卓约束控件(ConstraintLayout)扁平化布局入门 31 | http://www.jianshu.com/p/792d2682c538 32 | 33 | ---------------------------------------------------- 34 | 35 | 多渠道打包之动态修改App名称,图标,applicationId,版本号,添加资源 36 | http://blog.csdn.net/abc6368765/article/details/52786509 37 | https://github.com/AFinalStone/MultiChannel-master 38 | 39 | Gradle 实战(1)—— 配置环境变量 40 | http://blog.csdn.net/lw_power/article/details/51241187 41 | 42 | AndroidStudio gradle配置 43 | http://www.cnblogs.com/wxishang1991/p/5457878.html 44 | 45 | [Android Studio系列(五)] Android Studio手动配置Gradle的方法 46 | http://blog.csdn.net/fuchaosz/article/details/51567808 47 | 48 | Android构建与配置Gradle脚本综述 49 | http://www.jianshu.com/p/49bb7fb43f90 50 | 51 | 本地安装gradle-3.3-all.zip 52 | http://www.cnblogs.com/yasepix/p/6958105.html 53 | 54 | Maven中央仓库信息速查 55 | com.google.guava/guava/19.0 Guava: Google Core Libraries for Java maven依赖 56 | http://maven.outofmemory.cn/com.google.guava/guava/19.0/ 57 | 58 | https://stackexchange.com/ 59 | 60 | 61 | android studio 更新 Gradle 62 | http://www.orzapp.com/?p=269 63 | 64 | 65 | github开源项目:https://github.com/google/guava/wiki/Release19 66 | 67 | Android Studio使用笔记(1)使用android studio时避免每次启动都进行网络gradle sync的方法 68 | http://blog.csdn.net/hwwlovejws/article/details/50888051 69 | 70 | 71 | 可视化的方式来编写界面 72 | 73 | Android新特性介绍,ConstraintLayout完全解析 74 | http://blog.csdn.net/guolin_blog/article/details/53122387 75 | 76 | compile 'com.android.support.constraint:constraint-layout:1.0.2' 77 | 78 | Android ConstraintLayout详解 79 | http://www.jianshu.com/p/a8b49ff64cd3 80 | 81 | 82 | Butter Knife添加依赖 不生效 83 | http://blog.csdn.net/zheng548/article/details/51722973 84 | 85 | ButterKnife的使用以及不能自动生成代码问题的解决 86 | http://www.cnblogs.com/zhengjunfei/p/5910497.html 87 | 88 | Android Butter Knife 框架——最好用的View注入 89 | http://www.jianshu.com/p/9ad21e548b69 90 | http://jakewharton.github.io/butterknife/ 91 | 92 | https://github.com/JakeWharton/butterknife 93 | 94 | class ExampleActivity extends Activity { 95 | @BindView(R.id.user) EditText username; 96 | @BindView(R.id.pass) EditText password; 97 | 98 | @BindString(R.string.login_error) String loginErrorMessage; 99 | 100 | @OnClick(R.id.submit) void submit() { 101 | // TODO call server... 102 | } 103 | 104 | @Override public void onCreate(Bundle savedInstanceState) { 105 | super.onCreate(savedInstanceState); 106 | setContentView(R.layout.simple_activity); 107 | ButterKnife.bind(this); 108 | // TODO Use fields... 109 | } 110 | } 111 | -------------------------------------------------------------------------------- /Video/Android读取本地视频.md: -------------------------------------------------------------------------------- 1 | Android读取本地视频 2 | ==== 3 | 4 | [Android读取本地照片和视频相册实例代码](http://www.jb51.net/article/115459.htm) 5 | 6 | [Android 跳转系统选择本地视频的功能](https://www.cnblogs.com/widgetbox/p/7503894.html) 7 | 8 | [android uri 解析获取文件真实路径(兼容7.0+)](https://blog.csdn.net/a1018875550/article/details/82957333) 9 | 10 | [Android Uri获取资源文件(多种方式)](https://blog.csdn.net/guang_liang_/article/details/81939898) 11 | 12 | [Android Uri获取不到视频文件路径的问题](https://blog.csdn.net/u013450131/article/details/51569426) 13 | 14 | [Android 4.4 前后版本读取图库图片和拍照完美解决方案-获取文件路径](https://blog.csdn.net/zbjdsbj/article/details/42387551) 15 | (https://blog.csdn.net/qq_34983989/article/details/78647278) 16 | 17 | [Android之根据Uri获得图片或视频文件路径(解决4.4以上版本得不到路径的情况)](https://blog.csdn.net/jenly121/article/details/48373861) 18 | 19 | [Android studio实现调用相机实现拍照、录像、读取相册并展示在新的页面的功能](https://blog.csdn.net/DiligentTime/article/details/82118452) 20 | 21 | [Picture Selector Library for Android or 多图片选择器](https://github.com/LuckSiege/PictureSelector) 22 | 23 | [PictureSelector 7.0及以上拍照或拍摄 出现的FileUriExposedException](https://blog.csdn.net/qq_31433193/article/details/83995817) 24 | 25 | [Android7.0及以上拍照获取照片无法使用file://,使用content://URI](https://blog.csdn.net/trq2012/article/details/80568094) 26 | 27 | [仿微信的图片选择器PictureSelector](https://www.jianshu.com/p/2c1f7e31b74f) 28 | https://github.com/arvinljw/PictureSelector 功能:多选、单选、拍照、预览、裁剪、大图、支持7.0 29 | 30 | [Android第三方文件选择器:aFileChooser](https://blog.csdn.net/zhangphil/article/details/51636141) 31 | https://github.com/iPaulPro/aFileChoose 32 | 33 | 视频上传 34 | --- 35 | 36 | [Android上传附件(图片,视频,文档)](https://www.jianshu.com/p/caca4f68961d) 37 | 38 | [android 选择视频文件 上传到后台服务器](https://blog.csdn.net/d276031034/article/details/52652749) 39 | 40 | [Android实现上传本地或拍摄的视频到Bmob服务器](https://blog.csdn.net/xuanwo11/article/details/65440184) 41 | 42 | [关于android实时视频录制与上传](https://blog.csdn.net/lvjunwoaini/article/details/7035601) 43 | 44 | [Android 录制视频并上传](https://blog.csdn.net/wen_zheng/article/details/52056036) 45 | 46 | [Android实现本地视频+录制视频+视频压缩上传](https://blog.csdn.net/weixin_39706415/article/details/84636625) 47 | 48 | [Android上传视频](https://blog.csdn.net/weixin_41701790/article/details/81977653) 49 | 50 | [Android多图上传](https://blog.csdn.net/weixin_41701790/article/details/82344938) 51 | 52 | [Android 拍摄(横\竖屏)视频的懒人之路](https://www.jianshu.com/p/752f0dd842f8) 53 | [几个不错的Android开源音视频播放器](https://blog.csdn.net/Guofengpu/article/details/72911846) 54 | 55 | [【Android 视频,音频开源框架】](https://blog.csdn.net/da_caoyuan/article/details/73188626) 56 | 57 | 58 | 59 | [视频直播技术资源整理](https://www.cnblogs.com/renhui/p/6394988.html) 60 | 61 | [七牛开发者中心](https://developer.qiniu.com/) 62 | https://developer.qiniu.com/pili/sdk/3734/android-short-video-sdk 63 | 64 | ------------------------ 65 | 66 | [快速将Android项目发布的JCenter](https://www.jianshu.com/p/748d59aa6567) 67 | 68 | [通用RecylerAdapter,内置XRecyclerView,兼容上下拉与动画,高复用,一个Adapter通用所有页面,支持空页面,懒人专属](https://www.jianshu.com/p/9c9aede9a19a) 69 | 70 | [让Gradle放飞你的apk构建](https://www.jianshu.com/p/50134707bc46) 71 | 72 | 73 | [android.os.Build的一些使用方法](https://blog.csdn.net/ioiol/article/details/45535601) 74 | 75 | [android.os.Build 常用常量](https://blog.csdn.net/dzkdxyx/article/details/78879521) 76 | 77 | [Android开发-查看设备信息 (android.os.Build)](https://www.jianshu.com/p/2e9e5e60796f) 78 | 79 | [将毫秒 换算成(天 时 分 秒 毫秒)](https://blog.csdn.net/fuxiaohui/article/details/25505823) 80 | 81 | [java的assert关键字的用法](https://blog.csdn.net/LiuShuXiaDeRiLuo/article/details/54668545) 82 | -------------------------------------------------------------------------------- /pay/README.md: -------------------------------------------------------------------------------- 1 | Pay 2 | === 3 | 4 | 支付宝官方文档 5 | --- 6 | [支付宝开发文档](https://docs.open.alipay.com/catalog) 7 | 8 | [支付宝开发指南](https://docs.open.alipay.com/200/) 9 | 10 | [支付宝沙箱环境使用说明](https://docs.open.alipay.com/200/105311/) 11 | ~~~ 12 | 1. 生成并上传RSA2(SHA256)的应用公钥,详见生成RSA密钥;配置RSA2(SHA256)的应用公钥后,不需要配置RSA(SHA1)密钥,RSA和RSA2签名算法区别可以参考此处; 13 | 2. 编写代码时,请将 14 | a.请求网关修改为:https://openapi.alipaydev.com/gateway.do 15 | b.appid切换为沙箱的appid 16 | c.签名方式使用RSA2 17 | d.应用私钥使用第1步生成的RSA2(SHA256)的私钥(请根据开发语言进行选择原始或pkcs8格式) 18 | e.支付宝公钥切换为第1步配置后应用公钥后,点击查看支付宝公钥看到的公钥 19 | 20 | 选看部分作为进阶使用,非必填项; 21 | 应用网关:该地址用于接收开放平台的异步通知。目前沙箱环境不需要配置此参数; 22 | 授权回调地址;第三方应用授权或获取用户信息中用于接收授权回调信息的地址。使用相关产品时再进行配置; 23 | 1. 第三方应用授权: 24 | 授权url中的redirect_uri必须与此值相同。 25 | 2. 获取用户信息: 26 | 授权url中的redirect_uri的域名必须与此值相同。(例如:授权回调地址配置:https://auth.example.com/authCallBack 高亮部分需和授权url相同) 27 | 28 | RSA(SHA1)密钥:目前推荐使用RSA2(SHA256)密钥,请参考第1步进行配置; 29 | AES密钥:目前不再使用; 30 | 31 | ~~~ 32 | 33 | [支付宝App支付快速接入](https://docs.open.alipay.com/204/105297) 34 | 35 | [App支付客户端DEMO&SDK](https://docs.open.alipay.com/54/104509) 36 | 37 | [Android移动支付(支付宝支付2017最新接入详解)](https://blog.csdn.net/mr_jianrong/article/details/78995580) 38 | 39 | [单笔转账到支付宝账户产品介绍(给客户转账)](https://docs.open.alipay.com/309) 40 | 41 | [支付宝支付API](https://docs.open.alipay.com/api) 42 | 43 | [alipay.trade.app.pay(app支付接口2.0)-服务端](https://docs.open.alipay.com/api_1/alipay.trade.app.pay) 44 | 45 | [开发文档 / 移动支付 / Android - 旧版本](https://docs.open.alipay.com/59/103662) 46 | ~~~ 47 | 订单支付 48 | 49 | 方法名称:payTask.pay 50 | 方法原型:PayTask payTask = new PayTask(activity); payTask.pay(orderInfo,true); 51 | 方法功能:提供给商户订单支付功能。 52 | 方法参数: 实例化PayTask,传入参数activity 的实例。 53 | 54 | 参数名称 参数说明 55 | String orderInfo 主要包含商户的订单信息,key="value"形式,以&连接。 56 | boolean isShowPayLoading 用户在商户app内部点击付款,是否需要一个loading做为在钱包唤起之前的过渡,这个值设置为true,将会在调用pay接口的时候直接唤起一个loading,直到唤起H5支付页面或者唤起外部的钱包付款页面loading才消失。(建议将该值设置为true,优化点击付款到支付唤起支付页面的过渡过程。) 57 | 58 | 获取开发包版本号 59 | 60 | 方法名称:payTask.getVersion 61 | 方法原型:PayTask payTask = new PayTask(activity); payTask.getVersion(); 62 | 方法功能:获取当前开发包版本号。 63 | 方法参数: 实例化PayTask,传入参数activity 的实例。 64 | 返回值: String 类型值,如“2.0.0”。 65 | ~~~ 66 | 67 | ---------------------- 68 | 69 | [支付宝Pay,一个类直接搞定](https://blog.csdn.net/woaiheima/article/details/50982851) 70 | 71 | [Android集成支付宝支付功能](https://www.jianshu.com/p/304ced0a23ba) 72 | 73 | [关于Android在线支付Alipay(支付宝)开发的经验分享](https://blog.csdn.net/ht_android/article/details/45307165) 74 | 75 | [支付宝集成过程详解——运行DEMO](https://blog.csdn.net/harvic880925/article/details/49779061) 76 | 77 | [超详细Android接入支付宝支付实现,有图有真相](https://www.jianshu.com/p/2aa2e8748476) 78 | 79 | [Android App支付系列(二):支付宝SDK接入详细指南(附官方支付demo)](https://www.jb51.net/article/98280.htm) 80 | 81 | [支付宝支付](https://www.aliyun.com/jiaocheng/36063.html) 82 | 83 | [一步一步带你完成支付宝支付功能的集成(超详细)](https://blog.csdn.net/fjnu_se/article/details/72973220) 84 | 85 | 86 | 87 | [android 支付宝的植入 《曾经踩过的坑》](https://blog.csdn.net/androidstarjack/article/details/52808705) 88 | 89 | [支付宝 app支付异常摘记 -- ALI40247](https://blog.csdn.net/luojinbai/article/details/52753660) 90 | 91 | 92 | [支付宝支付和微信支付](https://www.jianshu.com/p/66a7fe2effaf) 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | [阿里云 > 教程中心 > Android教程](https://www.aliyun.com/jiaocheng/android?spm=5176.100033.1.3.6fab6aa1Jdym0h) 107 | 108 | -------------------------------------------------------------------------------- /SharePush.md: -------------------------------------------------------------------------------- 1 | 2 | Share 3 | === 4 | 5 | [在Android Studio中使用shareSDK进行社会化分享(图文教程)](https://www.cnblogs.com/smyhvae/p/4585340.html) 6 | 官网地址是:http://www.mob.com/ 7 | 8 | 9 | [利用新版ShareSDK进行手动分享(自定义分享界面)](https://www.cnblogs.com/ws5861/p/3673755.html) 10 | 11 | 12 | [Android 7.0适配 打开文件和分享文件](https://blog.csdn.net/u011216273/article/details/72822132) 13 | 14 | 15 | [ShareSdk实现第三方分享功能](https://blog.csdn.net/u011546655/article/details/45830817) 16 | sharesdk下载地址:http://wiki.mob.com 17 | 18 | 19 | [集成友盟分享](https://developer.umeng.com/sdk/android) 20 | 21 | [文档](https://developer.umeng.com/docs/66632/detail/66639) 22 | 23 | 添加应用(从) 24 | https://message.umeng.com/list/apps 25 | https://message.umeng.com/list/new/app 26 | 27 | 28 | [用友盟社会化组件,分享到微信和新浪微博 iOS](https://kyfxbl.iteye.com/blog/2204012) 29 | 30 | [Android友盟社会化分享,那些我踩过的坑](http://www.bubuko.com/infodetail-1075397.html) 31 | 32 | [友盟统计分享推送Demo](https://github.com/umeng/MultiFunctionAndroidDemo) 33 | 34 | [初始化及通用接口](https://developer.umeng.com/docs/66632/detail/66890#h1-u521Du59CBu5316u53CAu901Au7528u63A5u53E32) 35 | 36 | 37 | [有盟分享SDK集成](https://www.jianshu.com/p/6c0250834f2a) 38 | 39 | [关于友盟集成支付宝分享](https://www.jianshu.com/p/4ccd595ae21d) 40 | 41 | [支付宝开发者中心](https://open.alipay.com/) 42 | 43 | [支付宝开发者中心](https://open.alipay.com/platform/homeRoleSelection.htm) 44 | 45 | [友盟分享第三方账号申请及绑定](https://dev.umeng.com/social/android/operation) 46 | 47 | [微信开放平台](https://open.weixin.qq.com/) 48 | 49 | [新浪微博](http://open.weibo.com) 50 | 51 | [第三方分享一条链接到微博](https://open.weibo.com/wiki/2/statuses/share) 52 | 53 | 54 | [友盟分享U-Share 集成文档](https://dev.umeng.com/sdk_integate/android_sdk/android_share_doc) 55 | 56 | 57 | [微信授权或分享之后没有回调](https://developer.umeng.com/docs/66632/detail/66791?um_channel=sdk) 58 | 59 | [java.lang.SecurityException: No permission to write APN settings问题的定位小结](https://blog.csdn.net/zhao_3546/article/details/18146481) 60 | 61 | [友盟qq登录错误no permission to write apn setting](https://ask.csdn.net/questions/232999) 62 | 63 | 各个平台注册应用信息的地址如下: 64 | ~~~ 65 | 新浪微博 http://open.weibo.com 66 | 微信好友 http://open.weixin.qq.com 67 | Facebook https://developers.facebook.com 68 | Twitter https://dev.twitter.com 69 | 人人网 http://dev.renren.com 70 | 开心网 http://open.kaixin001.com 71 | 搜狐微博 http://open.t.sohu.com 72 | 网易微博 http://open.t.163.com 73 | 豆瓣 http://developers.douban.com 74 | 75 | 有道云笔记 http://note.youdao.com/open/developguide.html#app 76 | 印象笔记 https://dev.evernote.com/ 77 | Linkedin https://developer.linkedin.com 78 | FourSquare https://developer.foursquare.com/ 79 | 搜狐随身看 https://open.sohu.com/ 80 | Flickr http://www.flickr.com/services/ 81 | Pinterest http://developers.pinterest.com/ 82 | Tumblr http://www.tumblr.com/developers 83 | Dropbox https://www.dropbox.com/developers 84 | Instagram http://instagram.com/developer# 85 | VKontakte http://vk.com/dev 86 | 易信好友 http://open.yixin.im/ 87 | 明道 http://open.mingdao.com/ 88 | Line http://media.line.me/zh-hant/ https://developers.line.me 89 | Pocket http://getpocket.com/developer/apps/new 90 | KakaoTalk https://developers.kakao.com/ 91 | KakaoStory https://developers.kakao.com/ 92 | Plurk http://www.plurk.com/API 93 | ~~~ 94 | 95 | [CSDN博客用到的代码资源仓库](https://github.com/chaychan/BlogFileResource) 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | -------------------------------------------------------------------------------- /android/ButterKnife.md: -------------------------------------------------------------------------------- 1 | Butter Knife 2 | --- 3 | Butter Knife添加依赖 不生效 4 | http://blog.csdn.net/zheng548/article/details/51722973 5 | 6 | ButterKnife的使用以及不能自动生成代码问题的解决 7 | http://www.cnblogs.com/zhengjunfei/p/5910497.html 8 | 9 | Android Butter Knife 框架——最好用的View注入 10 | http://www.jianshu.com/p/9ad21e548b69 11 | http://jakewharton.github.io/butterknife/ 12 | 13 | https://github.com/JakeWharton/butterknife 14 | 15 | class ExampleActivity extends Activity { 16 | @BindView(R.id.user) EditText username; 17 | @BindView(R.id.pass) EditText password; 18 | 19 | @BindString(R.string.login_error) String loginErrorMessage; 20 | 21 | @OnClick(R.id.submit) void submit() { 22 | // TODO call server... 23 | } 24 | 25 | @Override public void onCreate(Bundle savedInstanceState) { 26 | super.onCreate(savedInstanceState); 27 | setContentView(R.layout.simple_activity); 28 | ButterKnife.bind(this); 29 | // TODO Use fields... 30 | } 31 | } 32 | 33 | 34 | 资源绑定 35 | -------- 36 | 绑定资源到类成员上可以使用@BindBool、@BindColor、@BindDimen、@BindDrawable、@BindInt、@BindString。使用时对应的注解需要传入对应的id资源,例如@BindString你需要传入R.string.id_string的字符串的资源id。 37 | 38 | 例如在Fragment中: 39 | 40 | 41 | public class FancyFragment extends Fragment { 42 | @BindView(R.id.button1) Button button1; 43 | @BindView(R.id.button2) Button button2; 44 | 45 | @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 46 | View view = inflater.inflate(R.layout.fancy_fragment, container, false); 47 | ButterKnife.bind(this, view); 48 | // TODO Use fields... 49 | return view; 50 | } 51 | } 52 | 53 | 在ListView的Adapter中,我们常常会使用ViewHolder 54 | static class ViewHolder { 55 | @BindView(R.id.title) 56 | TextView name; 57 | @BindView(R.id.job_title) TextView jobTitle; 58 | 59 | public ViewHolder(View view) { 60 | ButterKnife.bind(this, view); 61 | } 62 | } 63 | 64 | 监听器绑定 65 | 66 | @OnClick(R.id.submit) 67 | public void submit(View view) { 68 | // TODO submit data to server... 69 | } 70 | 71 | 而监听器方法的参数可选的: 72 | @OnClick(R.id.submit) 73 | public void submit() { 74 | // TODO submit data to server... 75 | } 76 | 77 | 可以指定多个View ID到一个方法上,这样,这个方法就成为了这些View的共同事件处理。 78 | 79 | @OnClick({ R.id.door1, R.id.door2, R.id.door3 }) 80 | public void pickDoor(DoorView door) { 81 | if (door.hasPrizeBehind()) { 82 | Toast.makeText(this, "You win!", LENGTH_SHORT).show(); 83 | } else { 84 | Toast.makeText(this, "Try again", LENGTH_SHORT).show(); 85 | } 86 | } 87 | 88 | 89 | 重置绑定: 90 | 91 | Fragment的生命周期与Activity不同。在Fragment中,如果你在onCreateView中使用绑定,那么你需要在onDestroyView中设置所有view为null。为此,ButterKnife返回一个Unbinder实例以便于你进行这项处理。在合适的生命周期回调中调用unbind函数就可完成重置。 92 | 93 | public class FancyFragment extends Fragment { 94 | @BindView(R.id.button1) Button button1; 95 | @BindView(R.id.button2) Button button2; 96 | private Unbinder unbinder; 97 | 98 | @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 99 | View view = inflater.inflate(R.layout.fancy_fragment, container, false); 100 | unbinder = ButterKnife.bind(this, view); 101 | // TODO Use fields... 102 | return view; 103 | } 104 | 105 | @Override public void onDestroyView() { 106 | super.onDestroyView(); 107 | unbinder.unbind(); 108 | } 109 | } 110 | 111 | ------- 112 | 113 | 114 | [Butterknife](https://github.com/JakeWharton/butterknife) 115 | 116 | [ButterKnife:8.1.0的使用](http://www.jianshu.com/p/0392199a682b) 117 | 118 | [Android Butter Knife 框架——最好用的View注入](http://www.jianshu.com/p/9ad21e548b69) 119 | 120 | -------------------------------------------------------------------------------- /Git教程.md: -------------------------------------------------------------------------------- 1 | Git教程 2 | ------- 3 | 4 | [http://www.yiibai.com/git](http://www.yiibai.com/git) 5 | 6 | [Android快速实现上传项目到Github(原来Android Studio的git已经这么好用了)](http://www.jianshu.com/p/aa341d691658) 7 | 游戏头条 https://github.com/MarnoDev/GameNews 8 | 9 | [在Android Studio 中使用Git 教程](http://www.apkbus.com/blog-866962-75821.html) 10 | 11 | [企业级开发:Gitflow Workflow工作流](http://www.jianshu.com/p/104fa8b15d1e) 12 | 13 | [基于git的源代码管理模型——git flow](http://www.ituring.com.cn/article/56870) 14 | 软件开发模型有常见的瀑布模型、迭代开发模型、以及最近出现的敏捷开发模型 15 | 16 | [Git版本控制与工作流](http://www.techug.com/post/git-2.html) 17 | 18 | [GitHub 查看地址](https://github.com/HLQ-Struggle/AndroidImmersion) 19 | 20 | [Git Book](https://git-scm.com/book/zh/v1) 21 | 22 | [6. Git 基础 - 打标签](https://git-scm.com/book/zh/v1/Git-%E5%9F%BA%E7%A1%80-%E6%89%93%E6%A0%87%E7%AD%BE#列显已有的标签) 23 | 24 | 25 | #### git 操作: 26 | 27 | ``` 28 | 强制push: 29 | 30 | git push -u origin master -f 31 | 32 | 强制pull 33 | 34 | git fetch --all 35 | git reset --hard origin/master 36 | git pull 37 | 38 | 显示最后一次提交: 39 | 40 | git show 41 | 42 | 查看提交历史(oneline 将 每个提交 放在一行显示) 43 | 44 | git log --pretty=oneline 45 | 46 | 分享(推送)标签: 47 | 48 |   git push origin 标签名 49 | 50 | 后期加注标签 51 | 你甚至可以在后期对早先的某次提交加注标签。比如在下面展示的提交历史中: 52 | $ git tag -a v1.2 9fceb02 53 | 54 | 分享标签 55 | 默认情况下,git push 并不会把标签传送到远端服务器上,只有通过显式命令才能分享标签到远端仓库。其命令格式如同推送分支,运行 git push origin [tagname] 即可: 56 | 57 | $ git push origin 标签名 58 | 59 | 如果要一次推送所有本地新增的标签上去,可以使用 --tags 选项: 60 | 61 | $ git push origin --tags 62 | 63 | #### 如何使用git获取指定tag的代码 64 | 65 | tag是对历史一个提交id的引用,如果理解这句话就明白了 66 | 使用git checkout tag即可切换到指定tag,例如:git checkout v0.1.0 67 | 切换到tag历史记录会处在分离头指针状态,这个是的修改是很危险的,在切换回主线时如果没有合并,之前的修改提交基本都会丢失,如果需要修改可以尝试git checkout -b branch tag创建一个基于指定tag的分支,例如:git checkout -b tset v0.1.0 这个时候就会在分支上进行开发,之后可以切换到主线合并 68 | ``` 69 | Git资料汇总 70 | --- 71 | [Git资料汇总](https://github.com/ruijun/Android-Dev-Favorites/blob/master/Git/Git.md) 72 | 73 | - [怎么快速开始使用Git](http://sixrevisions.com/web-development/easy-git-tutorial/) 74 | 75 | - [廖雪峰Git教程](http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000) 76 | 77 | - [试试Git – 15分钟的Git交互教程](https://try.github.io/levels/1/challenges/1) 78 | 79 | - [提示和技巧(Ry的Git教学)是常见Git功能的实践教程](http://rypress.com/tutorials/git/tips-and-tricks) 80 | 81 | - [Git简单指南](http://rogerdudler.github.io/git-guide/) 82 | 83 | - [Git Ready是一个收藏有许多简单而简短的Git提示的网站](http://gitready.com/) 84 | 85 | - [git-cheat-sheet](http://www.git-tower.com/blog/git-cheat-sheet/) 86 | 87 | - [Git Tower学习区是一个在我的网站上的Git学习资源列表](http://www.git-tower.com/learn/) 88 | 89 | - [Git官方教程](http://git-scm.com/docs/gittutorial) 90 | 91 | - [Training: Git Basics (视频)是YouTube上的一个视频列表](https://www.youtube.com/playlist?list=PLg7s6cbtAD165JTRsXh8ofwRw0PqUnkVH) 92 | 93 | - [Pro Git一本让你深入了解Git的在线书籍](http://git-scm.com/book/en/v2) 94 | 95 | - [GitHub秘籍](http://snowdream86.gitbooks.io/github-cheat-sheet/content/zh/) 96 | 97 | - [GotGitHub](http://www.worldhello.net/gotgithub/index.html) 98 | 99 | - [写出好的 commit message](https://ruby-china.org/topics/15737) 100 | 101 | - [Git Community Book 中文版](http://gitbook.liuhui998.com/index.html) 102 | 103 | - [git使用笔记](http://jslite.io/2015/04/01/git%E4%BD%BF%E7%94%A8%E7%AC%94%E8%AE%B0/) 104 | 105 | - [使用git和github进行协同开发流程](http://livoras.com/post/28) 106 | 107 | - [Git 速查表](http://itmyhome.com/git-sheet/) 108 | 109 | - [xirong/my-git-个人学习git的资料整理](https://github.com/xirong/my-git/) 110 | 111 | - [Git 常用命令](http://liujin.me/blog/2015/05/25/Git-%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4/) 112 | 113 | - [使用git和github进行协同开发流程](http://livoras.com/post/28) 114 | 115 | - [稀土Git资料](http://gold.xitu.io/tag/Git) 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | -------------------------------------------------------------------------------- /Andriodx/README.md: -------------------------------------------------------------------------------- 1 | # Androidx 2 | 3 | [AndroidX 概览](https://developer.android.google.cn/jetpack/androidx/) 4 | 5 | [迁移到 AndroidX](https://developer.android.google.cn/jetpack/androidx/migrate) 6 | 7 | [Androidx官方文档](https://developer.android.com/jetpack/androidx/versions) 8 | 9 | 10 | 11 | [一次解决找不到 android.support.v7.XXX 问题](https://www.jianshu.com/p/f0bbae225cac) 12 | 13 | ~~~ 14 | implementation "com.android.support:appcompat-v7:$supportVersion" 15 | 改为: 16 | implementation 'androidx.appcompat:appcompat:1.0.0' 17 | 18 | ; 21 | } 22 | -keep enum org.greenrobot.eventbus.ThreadMode { *; } 23 | 24 | # Only required if you use AsyncExecutor 25 | -keepclassmembers class * extends org.greenrobot.eventbus.util.ThrowableFailureEvent { 26 | (java.lang.Throwable); 27 | } 28 | 29 | android EventBus 3.0 混淆配置 30 | http://blog.csdn.net/yangzs516/article/details/51776576 31 | https://github.com/greenrobot/EventBus 32 | 33 | 使用的这个库在github的官网README中没有写明相应混淆的配置. 34 | 35 | 经过对官网的查询,在一个小角落还是被我找到了。 36 | 37 | -keepattributes *Annotation* 38 | -keepclassmembers class ** { 39 | @org.greenrobot.eventbus.Subscribe ; 40 | } 41 | -keep enum org.greenrobot.eventbus.ThreadMode { *; } 42 | 43 | # Only required if you use AsyncExecutor 44 | -keepclassmembers class * extends org.greenrobot.eventbus.util.ThrowableFailureEvent { 45 | (Java.lang.Throwable); 46 | } 47 | 链接:http://greenrobot.org/eventbus/documentation/proguard/ 48 | 49 | 50 | EnevtBus 发布、订阅消息--android 51 | http://blog.csdn.net/shareus/article/details/50748804 52 | 53 | 实例讲解EventBus for Android 54 | http://blog.csdn.net/bigconvience/article/details/46278719 55 | https://github.com/greenrobot/EventBus 56 | 57 | 58 | org.greenrobot.eventbus.EventBus 59 | https://github.com/greenrobot/EventBus 60 | 61 | Gradle: 62 | 63 | compile 'org.greenrobot:eventbus:3.0.0' 64 | 65 | EventBus in 3 steps 66 | 67 | Define events: 68 | 69 | public static class MessageEvent { /* Additional fields if needed */ } 70 | Prepare subscribers: Declare and annotate your subscribing method, optionally specify a thread mode: 71 | 72 | @Subscribe(threadMode = ThreadMode.MAIN) 73 | public void onMessageEvent(MessageEvent event) {/* Do something */}; 74 | Register and unregister your subscriber. For example on Android, activities and fragments should usually register according to their life cycle: 75 | 76 | @Override 77 | public void onStart() { 78 | super.onStart(); 79 | EventBus.getDefault().register(this); 80 | } 81 | 82 | @Override 83 | public void onStop() { 84 | super.onStop(); 85 | EventBus.getDefault().unregister(this); 86 | } 87 | Post events: 88 | 89 | EventBus.getDefault().post(new MessageEvent()); 90 | 91 | 92 | Android EventBus框架(一)之使用详细介绍 93 | http://blog.csdn.net/happy_horse/article/details/51565441 94 | EventBus是一款针对Android优化的发布/订阅事件总线 95 | 源码:https://github.com/greenrobot/EventBus 96 | 97 | EventBus使用详解(二)——EventBus使用进阶 98 | http://blog.csdn.net/harvic880925/article/details/40787203 99 | 100 | Android EventBus详解其使用 101 | http://www.apkbus.com/blog-705730-61398.html 102 | 103 | 104 | [Eventbus 详解,Activity和fragment通讯,相互发送接收数据](https://blog.csdn.net/u013790519/article/details/49181857) 105 | EventBus在github上源码:https://github.com/greenrobot/EventBus 106 | 107 | [Activity和Fragment的三种通信以及EventBus通信](https://blog.csdn.net/jianesrq0724/article/details/54909911) 108 | 109 | [ANDROID中使用开源框架EVENTBUS3.0实现FRAGMENT之间的通信交互](https://www.cnblogs.com/panhouye/p/6420727.html) 110 | 111 | [Android中EventBus3.0的使用](https://blog.csdn.net/Captain_Magicer/article/details/54413786) 112 | 113 | [Android实现fragment向Activity实时传递信息](https://blog.csdn.net/s1674521/article/details/78318525) 114 | 115 | [Activity,Fragment绑定生命周期,实现EventBus的自动注册、自动注销](https://blog.csdn.net/u010755087/article/details/75308014) 116 | 117 | [EventBus 3.0,让事件订阅更简单,从此告别组件消息传递烦恼~](https://www.cnblogs.com/liushilin/p/6089785.html) 118 | 119 | [EventBus3.0使用总结](https://www.2cto.com/kf/201602/489989.html) 120 | 121 | 122 | 123 | 124 | 125 | -------------------------------------------------------------------------------- /android/Gradle.md: -------------------------------------------------------------------------------- 1 | Gradle 2 | --- 3 | [中文官网构建指南](https://developer.android.google.cn/studio/build/index.html) 4 | 5 | [Gradle 详解](http://blog.csdn.net/xu_song/article/details/52050092) 6 | http://www.infoq.com/cn/articles/android-in-depth-gradle 7 | 8 | [使用resConfigs去除无用语言资源](https://www.jianshu.com/p/8796ad90fcc6) 9 | 10 | 当应用不需要支持几十种语言时,可以通过配置 resConfigs 去除无用的语言资源。 11 | 例如下面的代码就只保留了中文和英文的语言资源: 12 | 13 | defaultConfig { 14 | resConfigs "zh","en" 15 | } 16 | 17 | 18 | [让你的APK瘦成一道闪电](https://www.cnblogs.com/tianzhijiexian/p/4505312.html) 19 | 20 | [Android Studio利用Gradle删除没有使用到的资源和代码文件](http://www.cnblogs.com/tianzhijiexian/p/4457763.html) 21 | 22 | buildTypes { 23 | debug { 24 | minifyEnabled true // 是否混淆 25 | shrinkResources true // 是否去除无效的资源文件 26 | proguardFiles getDefaultProguardFile('proguard-android.txt'),'debug-proguard-rules.pro' 27 | } 28 | release { 29 | minifyEnabled true // 是否混淆 30 | shrinkResources true // 是否去除无效的资源文件 31 | // 混淆的配置文件 32 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 33 | } 34 | } 35 | 36 | 37 | [在Android Stuido中使用Lint](http://www.cnblogs.com/tianzhijiexian/p/4504768.html) 38 | 39 | [Android Studio项目Gradle构建实践](http://blog.csdn.net/s402178946/article/details/54140200) 40 | 41 | [android Studio中关于Gradle的使用注解](http://blog.csdn.net/zouchengxufei/article/details/50417271) 42 | 43 | Gradle 教程 44 | --- 45 | [Gradle 教程](http://ask.android-studio.org/?/topic/Gradle%E6%95%99%E7%A8%8B) 46 | 47 | [【Gradle教程】第一章:引言](http://ask.android-studio.org/?/article/7) 48 | 49 | [【Gradle教程】第二章:概述](http://ask.android-studio.org/?/article/6) 50 | 51 | [【Gradle教程】第三章:教程](http://ask.android-studio.org/?/article/15) 52 | 53 | Android Gradle权威指南 54 | --- 55 | [Android Gradle权威指南](https://yuedu.baidu.com/ebook/14a722970740be1e640e9a3e) 56 | 57 | [第八章 自定义Android Gradle工程](https://www.jianshu.com/p/560cecfb20da) 58 | 59 | [第九章 Android Gradle高级自定义](https://www.jianshu.com/p/8b2c3a3789e4) 60 | 61 | ------------ 62 | 63 | [Gradle之使用BuildConfig自定义常量](http://blog.csdn.net/joy_whale/article/details/51858459) 64 | 65 | [Android Studio之BuildConfig类](http://blog.csdn.net/LVXIANGAN/article/details/71601451) 66 | 67 | [Gradle构建控制Log开关——BuildConfig\自定义](http://blog.csdn.net/xx326664162/article/details/50553945) 68 | 69 | [使用 gradle 在编译时动态设置 Android resValue / BuildConfig / Manifes中变量的值](http://blog.csdn.net/xx326664162/article/details/49247815) 70 | 71 | [Gradle编译生成不同的版本,动态设定应用标题 / 应用图标 / 替换常量](http://blog.csdn.net/xx326664162/article/details/51508132) 72 | 73 | [AndroidStudio下BuildTypes和ProductFlavors动态编译并重命名apk](http://blog.csdn.net/angusing/article/details/47721765) 74 | 75 | 多渠道打包 76 | --- 77 | [Android Studio系列教程六--Gradle多渠道打包](http://blog.csdn.net/ljchlx/article/details/43059467) 78 | 79 | [使用gradle的productFlavors实现Android项目多渠道打包](http://blog.csdn.net/lj402159806/article/details/54947658) 80 | 81 | [Android Studio -使用 Gradle打包多版本APK——buildTypes和productFlavors](http://blog.csdn.net/xx326664162/article/details/48467343) 82 | 83 | [Android高阶之Android studio-友盟多渠道打包方式](http://blog.csdn.net/chenliguan/article/details/51066933) 84 | 85 | [[Android Studio] Android studio 多渠道打包(超简洁版)](http://www.cnblogs.com/0616--ataozhijia/p/4203997.html) 86 | 87 | [在AS中gradle多渠道打包应用](https://my.oschina.net/gef/blog/603991) 88 | 89 | [Android Proguard混淆打包经验总结](http://blog.csdn.net/u011459799/article/details/52637214?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io) 90 | 91 | [Android Studio利用Gradle删除没有使用到的资源和代码文件](http://www.cnblogs.com/tianzhijiexian/p/4457763.html) 92 | 93 | --- 94 | 95 | GRADLE下载、安装、配置与检查 96 | [Gradle User Guide 中文版](https://dongchuan.gitbooks.io/gradle-user-guide-/content/index.html) 97 | 98 | [DOWNLOAD GRADLE 3.1 ](https://gradle.org/gradle-download/) 99 | 100 | GRADLE_HOME:D:\gradle-3.1 101 | Path: ......;D:\gradle-3.1\bin 102 | gradle -v 103 | C:\Users\Administrator>gradle -v 104 | ------------------------------------------------------------ 105 | Gradle 3.1 106 | ------------------------------------------------------------ 107 | Build time: 2016-09-19 10:53:53 UTC 108 | Revision: 13f38ba699afd86d7cdc4ed8fd7dd3960c0b1f97 109 | 110 | Groovy: 2.4.7 111 | Ant: Apache Ant(TM) version 1.9.6 compiled on June 29 2015 112 | JVM: 1.8.0_101 (Oracle Corporation 25.101-b13) 113 | OS: Windows 7 6.1 amd64 114 | 115 | C:\Users\Administrator> 116 | 117 | 118 | -------------------------------------------------------------------------------- /android/Retrofit.md: -------------------------------------------------------------------------------- 1 | Retrofit 2.0 2 | --- 3 | 4 | [很详细的 Retrofit 2.0 使用教程](http://www.apkbus.com/blog-822717-76639.html) 5 | 6 | [Android:手把手带你 深入读懂 Retrofit 2.0 源码](https://www.jianshu.com/p/0c055ad46b6c) 7 | 8 | [Retrofit 2.0 超能实践(一),okHttp完美支持Https传输](http://blog.csdn.net/sk719887916/article/details/51597816) 9 | 10 | [Retrofit2.0 ,OkHttp3完美同步持久Cookie实现免登录(二)](http://blog.csdn.net/sk719887916/article/details/51700659) 11 | 12 | [Retrofit 2.0 超能实践(三),轻松实现文件/多图片上传/Json字符串](http://blog.csdn.net/sk719887916/article/details/51755427) 13 | 14 | [Retrofit 2.0 超能实践(四),完成大文件断点下载](http://www.jianshu.com/p/582e0a4a4ee9) 15 | 16 | [Retrofit,Okhttp对每个Request统一动态添加header和参数(五)](http://blog.csdn.net/sk719887916/article/details/52189602) 17 | 18 | //API网络请求注解库 代码地址-----> https://github.com/square/retrofit 19 | compile 'com.squareup.retrofit:retrofit:1.9.0' 20 | 21 | [Retrofit2使用(非常简洁易懂)](http://blog.csdn.net/baidu_31093133/article/details/51759452) 22 | [Android Retrofit 2.0使用](http://wuxiaolong.me/2016/01/15/retrofit/) 23 | [Retrofit2 源码解析](http://bxbxbai.github.io/2015/12/13/retrofit2/) 24 | 25 | [Android Retrofit 2.0使用](http://www.open-open.com/lib/view/open1465993338254.html) 26 | [Android Retrofit 2.0 使用-补充篇](http://www.mobile-open.com/2016/965159.html) 27 | 28 | RetrofitClient 29 | --- 30 | [Android基于Retrofit2.0 +RxJava 封装的超好用的RetrofitClient工具类(六)](http://blog.csdn.net/sk719887916/article/details/51958010) 31 | 32 | [玩转IOC,教你徒手实现自定义的Retrofit框架(七)](http://blog.csdn.net/sk719887916/article/details/51957819) 33 | Android 玩转IOC,Retfotit源码解析,教你徒手实现自定义的Retrofit框架 34 | 35 | 36 | [Rxjava和Retrofit 需要掌握的几个实用技巧,缓存问题和统一对有无网络处理问题(八)](http://blog.csdn.net/sk719887916/article/details/52132106) 37 | Rxjava +Retrofit 你需要掌握的几个技巧,Retrofit缓存,RxJava封装,统一对有无网络处理,异常处理, 返回结果问题 38 | 39 | 40 | [Novate:对Retrofit2.0的又一次完美改进加强!(九)](http://blog.csdn.net/sk719887916/article/details/52195428) 41 | Novate 网络库:Retrofit2.0和RxJava的又一次完美改进加强(Tamic博客 -CSDN) 42 | GitHub:https://github.com/Tamicer/Novate/ 43 | 44 | 45 | Retrofit 46 | --- 47 | 官网 http://square.github.io/retrofit/ 48 | Github https://github.com/square/retrofit 49 | 50 | Platform calls Class.forName on types which do not exist on Android to determine platform. 51 | -dontnote retrofit2.Platform 52 | Platform used when running on RoboVM on iOS. Will not be used at runtime. 53 | -dontnote retrofit2.Platform$IOS$MainThreadExecutor 54 | Platform used when running on Java 8 VMs. Will not be used at runtime. 55 | -dontwarn retrofit2.Platform$Java8 56 | Retain generic type information for use by reflection by converters and adapters. 57 | -keepattributes Signature 58 | Retain declared checked exceptions for use by a Proxy instance. 59 | -keepattributes Exceptions 60 | 61 | [Retrofit源码分析](http://blog.csdn.net/duanyy1990/article/details/52071954) 62 | https://github.com/square/okhttp 63 | 64 | [Android 介绍Retrofit的简单使用](http://blog.csdn.net/bitian123/article/details/51899716) 65 | [Retrofit用法详解](http://blog.csdn.net/duanyy1990/article/details/52139294) 66 | 67 | compile 'com.squareup.retrofit2:retrofit:2.1.0' 68 | compile 'com.squareup.retrofit2:converter-gson:2.1.0' 69 | compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0' 70 | 71 | 72 | compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4'//Retrofit2所需要的包 73 | compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4'//ConverterFactory的Gson依赖包 74 | compile 'com.squareup.retrofit2:converter-scalars:2.0.0-beta4'//ConverterFactory的String依赖包 75 | 76 | 77 | [Retrofit — Getting Started and Creating an Android Client](https://futurestud.io/tutorials/retrofit-getting-started-and-android-client) 78 | 79 | [是时候客观评价Retrofit了,Retrofit这几点你必须明白!](http://blog.csdn.net/sk719887916/article/details/53613263) 80 | 81 | rrd结构 :Retrofit + Rxjava + Dagger2 82 | ReactiveX是Reactive Extensions的缩写,一般简写为Rx 83 | ReactiveX 是一个使用可观察数据流进行异步编程的编程接口,ReactiveX结合了观察者模式、迭代器模式和函数式编程的精华 84 | 85 | The Reactive Extensions 简称Rx 反应式扩展 86 | 87 | [RxJava+Retrofit 简单结合](http://www.tuicool.com/articles/qQFVven) 88 | git地址: https://github.com/meijius/RxRetrofitDemo 89 | [【知识必备】RxJava+Retrofit二次封装最佳结合体验,打造懒人封装框架~](http://www.cnblogs.com/liushilin/p/6164901.html) 90 | 代码地址: https://github.com/nanchen2251/RetrofitRxUtil 91 | 92 | [RxJava+Retrofit+OkHttp 封装](http://www.tuicool.com/articles/eiyUziM) 93 | 94 | 95 | [Android中Retrofit+OkHttp进行HTTP网络编程的使用指南](http://www.jb51.net/article/88542.htm) 96 | 97 | [Android app开发中Retrofit框架的初步上手使用](http://www.jb51.net/article/79729.htm) 98 | 99 | [Retrofit自定义GsonConverter处理所有请求错误情况](http://www.jianshu.com/p/5b8b1062866b) 100 | 101 | RxJava RxAndroid RxBus Retrofit2 OkHttp3 Dagger2 102 | --- 103 | [聊聊对RxJava与Retrofit的封装](http://www.jianshu.com/p/93f8c9ae8819) 104 | 105 | -------------------------------------------------------------------------------- /UI/下拉框.md: -------------------------------------------------------------------------------- 1 | 下拉框 2 | === 3 | 4 | Spinner 5 | --- 6 | [几种下拉列表框](https://github.com/hncgc/Android/blob/master/android/Spinner.md) 7 | 8 | [Android 好用的下拉控件Spinner](https://www.jianshu.com/p/e4f18c9c421f) 9 | 10 | [使用Spinner实现下拉列表](https://www.cnblogs.com/huangzx/p/4437096.html) 11 | 12 | [功能展示——自定义控件Spinner样式实现下拉列表](https://blog.csdn.net/Tomasyb/article/details/75287751) 13 | 14 | [Android 下拉框第三方控件 NiceSpinner](https://blog.csdn.net/lilihan12358/article/details/79855138) 15 | https://github.com/arcadefire/nice-spinner 16 | 17 | [NiceSpinner 完美的 Android 下拉选择框](https://blog.csdn.net/duoduo_11011/article/details/78922804) 18 | 19 | [android 自定义dialog弹出框,带单选多选下拉](https://www.jianshu.com/p/b6efcd611fed) 20 | 21 | 22 | 23 | 24 | 可编辑下拉框 25 | --- 26 | 27 | [andriod 控件封装 可编辑下拉框](https://www.jianshu.com/p/56918379e0a0) 28 | 29 | [Android 可输入下拉列表的实现](https://blog.csdn.net/asdssaaaa/article/details/51570218) 30 | 31 | [Android实现仿QQ登录可编辑下拉菜单](https://blog.csdn.net/jdsjlzx/article/details/41789779) 32 | 33 | [EditText+ListPopupWindow实现可编辑的下拉列表](https://blog.csdn.net/u014293306/article/details/52402537) 34 | 35 | --------------- 36 | 37 | ~~~ 38 | 39 | @BindView(R.id.et_price_unit) 40 | EditText mEtPriceUnit; 41 | 42 | private ListPopupWindow listPopupWindow; 43 | private String[] mUnitlist; 44 | 45 | private void initListener() { 46 | ...... 47 | List list0 = ProductPriceType.getPriceTypes(); 48 | mUnitlist = list0.toArray(new String[list0.size()]); 49 | 50 | listPopupWindow = new ListPopupWindow(this); 51 | listPopupWindow.setAdapter(new ArrayAdapter(this, 52 | android.R.layout.simple_list_item_1, mUnitlist)); 53 | listPopupWindow.setAnchorView(mEtPriceUnit); 54 | listPopupWindow.setModal(true); 55 | 56 | listPopupWindow.setOnItemClickListener(new AdapterView.OnItemClickListener() { 57 | @Override 58 | public void onItemClick(AdapterView adapterView, View view, int i, long l) { 59 | mEtPriceUnit.setText(mUnitlist[i]); 60 | listPopupWindow.dismiss(); 61 | } 62 | }); 63 | 64 | 65 | listPopupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() { 66 | @Override 67 | public void onDismiss() { 68 | //显示右边图标 69 | mEtPriceUnit.setCompoundDrawablesWithIntrinsicBounds(null, null, getResources().getDrawable(R.drawable.ic_expand_more_black_12dp), null); 70 | } 71 | }); 72 | } 73 | --- 74 | 75 | @OnClick({R.id.tv_right, R.id.tv_left, R.id.et_price_unit, R.id.iv_price_unit_select}) 76 | public void onViewClicked(View view) { 77 | switch (view.getId()) { 78 | ...... 79 | case R.id.et_price_unit: 80 | mEtPriceUnit.setText(""); 81 | break; 82 | case R.id.iv_price_unit_select: 83 | showListPopulWindow(); 84 | break; 85 | 86 | 87 | private void showListPopulWindow(){ 88 | //mEtPrice.setSelection(mEtPrice.getText().length()); //去掉焦点 89 | if (SystemUtils.isKeyBoardShow(this)) { 90 | SystemUtils.hideSoftInput(mEtPrice, this); 91 | SystemUtils.hideSoftInput(mEtPriceUnit, this); 92 | } 93 | listPopupWindow.show(); 94 | } 95 | 103 | 104 | 110 | ~~~ 111 | 112 | 113 | /**键盘是否在显示**/ 114 | public static boolean isKeyBoardShow(Activity paramActivity) { 115 | int height = SystemUtils.getScreenHeight(paramActivity) - SystemUtils.getStatusBarHeight(paramActivity) 116 | - SystemUtils.getAppHeight(paramActivity); 117 | return height != 0; 118 | } 119 | 120 | /**关闭键盘**/ 121 | public static void hideSoftInput(View paramEditText, Context context) { 122 | ((InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE)) 123 | .hideSoftInputFromWindow(paramEditText.getWindowToken(), 0); 124 | } 125 | --------------- 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | -------------------------------------------------------------------------------- /android/Android优化.md: -------------------------------------------------------------------------------- 1 | Android 优化 2 | === 3 | 4 | Android App优化系列 5 | --- 6 | 7 | [1.背景:Android App优化, 要怎么做?](https://www.jianshu.com/p/f7006ab64da7) 8 | 9 | [2.Android App优化之性能分析工具](https://www.jianshu.com/p/da2a4bfcba68) 10 | 11 | [3.Android App优化之提升你的App启动速度之理论基础](https://www.jianshu.com/p/98c1656a357a) 12 | 13 | [4.Android App优化之提升你的App启动速度之实例挑战](https://www.jianshu.com/p/4f10c9a10ac9) 14 | 15 | [5.Android App优化之Layout怎么摆](https://www.jianshu.com/p/4943dae4c333) 16 | 17 | [6.Android App优化之ANR详解](https://www.jianshu.com/p/6d855e984b99) 18 | 19 | [7.Android App优化之消除卡顿](https://www.jianshu.com/p/1fb065c806e6) 20 | 21 | [8.Android App优化之内存优化](https://www.jianshu.com/p/48475df838d9) 22 | 23 | [9.Android App优化之持久电量](https://www.jianshu.com/p/c55ef05c0047) 24 | 25 | [10.Android App优化之如何高效网络请求](https://www.jianshu.com/p/d4c2c62ffc35) 26 | 27 | 性能优化 28 | --- 29 | 30 | [App性能优化系列结语篇](http://blog.lmj.wiki/2016/11/06/app-opti/app_opt_summary/) 31 | 32 | [小细节,大用途,35 个 Java 代码性能优化总结!](https://segmentfault.com/p/1210000008638186/read) 33 | 34 | [Android的性能优化](http://www.jianshu.com/p/be05874965d4) 35 | 36 | 去除重复依赖 37 | --- 38 | [android studio去除重复依赖](https://www.csdn.net/gather_20/MtTakg2sOTg0MC1ibG9n.html) 39 | 40 | [AndroidStudio添加多依赖导致依赖重复的解决办法](https://blog.csdn.net/zhang721677/article/details/79752433) 41 | 42 | 43 | 去除无用资源 44 | --- 45 | [Android APK瘦身经验总结](http://www.jianshu.com/p/bfe44ef18aca) 46 | AndResGuard: https://github.com/shwenzhang/AndResGuard 47 | 48 | [Android Studio 检查并去除无用资源文件](https://www.jianshu.com/p/51da2d4492e1) 49 | ~~~ 50 | Analyze --> run inspaction by Name ... 51 | 在弹出的搜索窗口中输入想执行的检查类型,如“Unused Resources”。不必全部输入就应该自动找到 52 | 点击后会弹出“inspaction scope”选择窗口 53 | inspaction scope 可以设置文件过滤,选择好后点ok就开始检查 54 | ~~~ 55 | 56 | [android之as自动化删除无用资源为apk瘦身](http://blog.csdn.net/zhongwn/article/details/52769927) 57 | 58 | [使用Android Studio的lint清除无用的资源文件](http://waychel.com/shi-yong-android-studiode-lintqing-chu-wu-yong-de-zi-yuan-wen-jian/) 59 | 60 | [Android studio 之ANalyze 清理无用资源](http://blog.csdn.net/qulonglong110/article/details/51911261) 61 | 62 | [Android 性能优化:使用 Lint 优化代码、去除多余资源](http://blog.csdn.net/u011240877/article/details/54141714) 63 | 64 | [如何获取Android唯一标识(唯一序列号)](http://blog.csdn.net/ljz2009y/article/details/22895297) 65 | 66 | 65K的问题 67 | --- 68 | [彻底解决Android 应用方法数不能超过65K的问题](http://www.itnose.net/detail/6168594.html) 69 | 70 | [Android开发方法数超过64k(65k)解决办法](http://www.jianshu.com/p/271668909cc6) 71 | 72 | [Android Studio 运行出现 Multiple dex files define Landroid/support/annotation/AnimRes 解决方法](http://www.cnblogs.com/liulipeng/p/4345179.html) 73 | 74 | 流量 75 | --- 76 | 自己开发的Android APP消耗流量过多,如何解决? 77 | http://bbs.csdn.net/topics/390790742 78 | 79 | 安卓居然比苹果更费流量?轻松几招教你如何节省流量 80 | http://www.360doc.com/content/16/0404/22/11613470_547885459.shtml 81 | 82 | ANR(Application Not Responding) 83 | --- 84 | 85 | [ANR](https://baike.baidu.com/item/ANR/1585630?fr=aladdin) 86 | 87 | [Android App优化之ANR详解](https://www.jianshu.com/p/6d855e984b99) 88 | 89 | OOM(out of memory)内存泄露 90 | --- 91 | 92 | [什么是java OOM?如何分析及解决oom问题?](https://www.cnblogs.com/ThinkVenus/p/6805495.html) 93 | ``` 94 | 内存泄露:申请使用完的内存没有释放,导致虚拟机不能再次使用该内存,此时这段内存就泄露了,因为申请者不用了,而又不能被虚拟机分配给别人用。 95 | 内存溢出:申请的内存超出了JVM能提供的内存大小,此时称之为溢出。 96 | ``` 97 | 98 | [OOM问题总结](https://blog.csdn.net/lj19851227/article/details/44018465) 99 | 100 | [异常、堆内存溢出、OOM的几种情况](https://blog.csdn.net/sinat_29912455/article/details/51125748) 101 | 102 | [一次解决OOM的经历](https://segmentfault.com/a/1190000005180612) 103 | 104 | [常见OOM异常](https://blog.csdn.net/qq_33450379/article/details/53731318) 105 | 106 | [Android 关于OOM的解决方案](https://blog.csdn.net/leehong2005/article/details/8056608) 107 | 108 | [Android如何避免OOM总结](https://blog.csdn.net/ljx19900116/article/details/50037627) 109 | 110 | [Android OOM出现常见原因及解决办法](https://blog.csdn.net/hudfang/article/details/51781997) 111 | 112 | [解决Android解析图片的OOM问题!!!](https://blog.csdn.net/Android_Tutor/article/details/8099918) 113 | 114 | [【Android性能优化】内存泄露和内存溢出(OOM)的引发原因及优化方案](https://blog.csdn.net/mxm691292118/article/details/51020023) 115 | 116 | [内存泄漏和内存溢出的区别和联系](https://blog.csdn.net/ruiruihahaha/article/details/70270574) 117 | 118 | [内存溢出和内存泄漏的区别,产生原因以及解决方案](https://blog.csdn.net/ShanYu1198124123/article/details/52414392) 119 | 120 | [Android手机提示“内部存储空间不足”产生原因及解决方案](https://blog.csdn.net/iteye_11192/article/details/82614601) 121 | 122 | [Android O 版本(Android 8.0) 存储空间不足时提醒](https://blog.csdn.net/rzc0525/article/details/85759819) 123 | 124 | [android中内存不足及Activity恢复的情况](https://www.jianshu.com/p/04a8d85807ca) 125 | 126 | [Android OutOfMemoryError:内存不足问题的排查与解决](https://www.jianshu.com/p/db98a40e0455) 127 | 128 | [Android 内存泄漏 - 做一个有“洁癖”的开发者](https://www.jianshu.com/p/44d26d355a56) 129 | 130 | 131 | [java.lang.OutOfMemoryError when createBitmap](https://stackoverflow.com/questions/41895852/java-lang-outofmemoryerror-when-createbitmap) 132 | 133 | --------------- 134 | 135 | [Android 高质量开发之崩溃优化](http://www.apkbus.com/blog-985056-80770.html) 136 | 137 | 138 | 139 | -------------------------------------------------------------------------------- /android/SQLite.md: -------------------------------------------------------------------------------- 1 | ## SQLite 2 | 3 | [SQLite 简介 | 菜鸟教程](https://www.runoob.com/sqlite/sqlite-intro.html) 4 | 5 | [SQLite 数据库的一些基本操作](http://www.nowamagic.net/academy/detail/50280108) 6 | 7 | [SQLite Home](https://www.sqlite.org/index.html) 8 | 9 | -------------- 10 | 11 | [Android 使用SQLite本地数据库](https://www.cnblogs.com/gisoracle/p/5212663.html) 12 | 13 | [搭建Android本地数据库(SQLite)的详细讲解](https://blog.csdn.net/qq_36903042/article/details/79772268) 14 | 15 | [在android项目里使用自带的SQLite数据库](https://blog.csdn.net/lsh869/article/details/51536985) 16 | 17 | [在Android程序中使用已有的SQLite数据库](https://blog.csdn.net/naturebe/article/details/40718521) 18 | 19 | 20 | 21 | ------------- 22 | 23 | [Windows下安装SQLite记录](https://github.com/hncgc/Android/blob/master/android/Windows%E4%B8%8B%E5%AE%89%E8%A3%85SQLite%E8%AE%B0%E5%BD%95.md) 24 | 25 | ------------- 26 | 27 | [android实现raw文件夹导入数据库代码](https://www.jb51.net/article/45080.htm) 28 | 29 | [Android导入现有的数据库方法示例](https://www.jb51.net/article/106790.htm) 30 | 31 | [android读取assets中Excel表格并显示](https://www.jb51.net/article/104588.htm) 32 | 33 | [android通过jxl读excel存入sqlite3数据库](https://www.xp.cn/b.php/67477.html) 34 | 35 | [android通过jxl读excel存入sqlite3数据库](https://www.jb51.net/article/47469.htm) 36 | 37 | [Android开发实现的导出数据库到Excel表格功能【附源码下载】](https://www.jb51.net/article/136440.htm) 38 | 39 | [Android 使用存放在存assets文件夹下的SQLite数据库](https://blog.csdn.net/u011494050/article/details/38427089) 40 | 41 | [android导入外部的数据库sqlite](https://download.csdn.net/download/dianqiugg/7475771) 42 | ~~~ 43 | public class MainActivity extends Activity 44 | { 45 | // 注意:同名覆盖要关闭数据库 46 | /** 47 | * 如果数据库文件较大,使用FileSplit分割为小于1M的小文件 48 | * 要被导入的数据库,置于工程assets目录下wordLibrary.001 49 | */ 50 | public String RESOURCE_DB = "wordLibrary"; 51 | 52 | /** 53 | * 导入到这个数据库里 54 | */ 55 | public String DB_NAME = "wordLibrary1.db"; 56 | 57 | void init() { 58 | // 数据库文件目标存放的路径(本例为系统默认位置) 59 | String db_path = getDataDir().getPath() + "/databases/"; 60 | new DBUtils(this, RESOURCE_DB, DB_NAME, db_path).createDataBase(); 61 | } 62 | 63 | } 64 | 65 | 2020-09-08 23:41:56.720 29693-29693/com.mywords.app D/MainActivity: db_path = /data/user/0/com.mywords.app/filesdata/com.mywords.app/databases/ 66 | 67 | ~~~ 68 | 69 | Filesplit(文件分割合并工具) 70 | [文件分割(FileSplit)](https://jingyan.baidu.com/article/ed15cb1b94c7a01be3698181.html) 71 | 72 | [scimence / fileSplit](https://gitee.com/scimence/fileSplit?utm_source=aladin&utm_campaign=repo) 73 | 74 | 75 | [Android导入外部数据库](https://blog.csdn.net/chaoyu168/article/details/50467913) 76 | 77 | [android下如何获取当前应用下的databases数据库路径](https://zhidao.baidu.com/question/2201288240098644148.html) 78 | 79 | 路径测试 80 | ~~~ 81 | 82 | String db_path00 = getFilesDir().getPath() + "data/" + getPackageName() 83 | + "/databases/"; 84 | String db_path0 = getFilesDir().getPath(); 85 | Log.d(TAG, "db_path = getFilesDir().getPath() = " + getFilesDir().getPath()); 86 | Log.d(TAG, "db_path = " + db_path0); 87 | //String db_path1 = "/data/data/" + getPackageName() + "/databases/"; 88 | //Log.d(TAG, "db_path = " + db_path1); 89 | String db_path = getDataDir().getPath() + "/databases/"; 90 | Log.d(TAG, "db_path = getDataDir().getPath()=" + getDataDir().getPath()); 91 | Log.d(TAG, "db_path = " + db_path); 92 | 2020-09-10 00:04:25.153 15509-15509/com.mywords.app D/MainActivity: db_path = getFilesDir().getPath() = /data/user/0/com.mywords.app/files 93 | 2020-09-10 00:04:25.153 15509-15509/com.mywords.app D/MainActivity: db_path = /data/user/0/com.mywords.app/files 94 | 2020-09-10 00:04:25.153 15509-15509/com.mywords.app D/MainActivity: db_path = getDataDir().getPath()=/data/user/0/com.mywords.app 95 | 2020-09-10 00:04:25.153 15509-15509/com.mywords.app D/MainActivity: db_path = /data/user/0/com.mywords.app/databases/ 96 | 97 | 98 | 99 | // 数据库文件目标存放的路径(本例为系统默认位置) 100 | String db_path = getDataDir().getPath() + "/databases/"; 101 | Log.d(TAG, "db_path = getDataDir().getPath()=" + getDataDir().getPath()); 102 | Log.d(TAG, "db_path = " + db_path); 103 | 104 | 2020-09-10 00:04:25.153 15509-15509/com.mywords.app D/MainActivity: db_path = getDataDir().getPath()=/data/user/0/com.mywords.app 105 | 2020-09-10 00:04:25.153 15509-15509/com.mywords.app D/MainActivity: db_path = /data/user/0/com.mywords.app/databases/ 106 | 107 | ~~~ 108 | 109 | 110 | [android私有文件夹的访问](https://www.cnblogs.com/viki117/archive/2010/09/27/1837091.html) 111 | 112 | [Android中对/data/data//files下文件操作](https://www.cnblogs.com/6060b/p/4246905.html) 113 | 114 | [Android 文件外/内部存储的获取各种存储目录路径](https://blog.csdn.net/csdn_aiyang/article/details/80665185) 115 | 116 | [Android 常用路径的获取](https://www.jianshu.com/p/e8a11d23513b) 117 | 118 | [GreenDao 连接与关闭Sqlite数据库](https://blog.csdn.net/printlnout/article/details/83030089) 119 | 120 | [使用greenDao关闭数据库](https://mlog.club/article/1729704) 121 | ~~~ 122 | daoMaster.getDatabase().close() 123 | 或 124 | daoSession.getDatabase().close() 125 | ~~~ 126 | 127 | [Android关于保存数据(Saving data)](https://www.cnblogs.com/953050373April/p/4201951.html) 128 | 129 | 130 | 131 | 132 | 133 | 134 | -------------------------------------------------------------------------------- /android/Android动画.md: -------------------------------------------------------------------------------- 1 | Android 动画 2 | ----------- 3 | [Android 动画之AlphaAnimation应用详解](http://www.jb51.net/article/32337.htm) 4 | ``` 5 | android中提供了4中动画: 6 | AlphaAnimation 透明度动画效果 7 | ScaleAnimation 缩放动画效果 8 | TranslateAnimation 位移动画效果 9 | RotateAnimation 旋转动画效果 10 | ``` 11 | 12 | [Android 动画之TranslateAnimation应用详解](http://www.jb51.net/article/32339.htm) 13 | 14 | [Android 动画之ScaleAnimation应用详解](http://www.jb51.net/article/32340.htm) 15 | 16 | [Android 动画之RotateAnimation应用详解](http://www.jb51.net/article/32341.htm) 17 | 18 | [Android 动画 - AlphaAnimation渐变动画](http://blog.csdn.net/shibin1990_/article/details/51602498) 19 | ``` 20 | 创建AlphaAnimation有两种方式 21 | 1.XML文件+Java代码 22 | 文件目录:res/anim/alpha.xml 23 | 24 | 34 | 35 | •android:duration:动画持续的时长,单位是毫秒 36 | •android:fillAfter:动画结束之后是否保持动画的最终状态;true,表示保持动画的最终状态 37 | •android:fillBefore:动画结束之后是否保持动画开始前的状态;true,表示恢复到动画开始前的状态 38 | •android:fromAlpha:动画开始的透明度,取值0.0~1.0,0.0表示完全透明,1.0表示保持原有状态不变 39 | •android:interpolator:动画插值器。是实现动画不规则运动的一种方式,后面讲到 40 | •android:repeatCount:动画重复的次数。指定动画重复播放的次数,如果你需要无限循环播放,请填写一个小于0的数值,我一般写-1 41 | •android:repeatMode:动画重复的Mode,有reverse和restart两种,效果看后面 42 | •android:startOffset:动画播放延迟时长,就是调用start之后延迟多少时间播放动画 43 | •android:toAlpha:动画最终的透明度,取值和android:fromAlpha一样 44 | 45 | Java代码加载XML文件动画 46 | 47 | Toast.makeText(XmlViewAnimationActivity.this, "startAnimation", Toast.LENGTH_SHORT).show(); 48 | AlphaAnimation alphaAnimation = (AlphaAnimation) AnimationUtils.loadAnimation(XmlViewAnimationActivity.this, R.anim.alpha); 49 | mIvImg.startAnimation(alphaAnimation); 50 | 51 | 52 | 2.Java代码方式: 53 | public void startAlphaAnimation(){ 54 | /** 55 | * @param fromAlpha 开始的透明度,取值是0.0f~1.0f,0.0f表示完全透明, 1.0f表示和原来一样 56 | * @param toAlpha 结束的透明度,同上 57 | */ 58 | AlphaAnimation alphaAnimation = new AlphaAnimation(1.0f, 0.2f); 59 | //设置动画持续时长 60 | alphaAnimation.setDuration(3000); 61 | //设置动画结束之后的状态是否是动画的最终状态,true,表示是保持动画结束时的最终状态 62 | alphaAnimation.setFillAfter(true); 63 | //设置动画结束之后的状态是否是动画开始时的状态,true,表示是保持动画开始时的状态 64 | alphaAnimation.setFillBefore(true); 65 | //设置动画的重复模式:反转REVERSE和重新开始RESTART 66 | alphaAnimation.setRepeatMode(AlphaAnimation.REVERSE); 67 | //设置动画播放次数 68 | alphaAnimation.setRepeatCount(AlphaAnimation.INFINITE); 69 | //开始动画 70 | mIvImg.startAnimation(alphaAnimation); 71 | //清除动画 72 | mIvImg.clearAnimation(); 73 | //同样cancel()也能取消掉动画 74 | alphaAnimation.cancel(); 75 | } 76 | ``` 77 | 78 | ------------------------------------------- 79 | 80 | 矢量图 & 动画 81 | --- 82 | [Android Loading动画分析设计](http://www.jianshu.com/p/646b3b42c471) 83 | https://github.com/dinuscxj/LoadingDrawable 84 | 85 | [Android自定义加载动画库zLoading](http://blog.csdn.net/littlesmallless/article/details/70041810) 86 | https://github.com/zyao89/ZLoading 87 | 88 | ------------------ 89 | 90 | 矢量图库 91 | ---- 92 | [阿里巴巴矢量图库](http://www.iconfont.cn/collections?spm=a313x.7781069.0.0.fEW4eG&personal=1) 93 | 94 | --------- 95 | 96 | [Android Vector曲折的兼容之路](http://blog.csdn.net/eclipsexys/article/details/51838119) 97 | 98 | [Android中VectorDrawableCompat的使用注意事项](http://blog.csdn.net/lgtianxiawudi/article/details/54860888) 99 | 100 | [android开发游记:VectorDrawable矢量图兼容性问题的解决方案](https://www.2cto.com/kf/201605/506588.html) 101 | 102 | [APP开发实战92-静态Vector兼容性处理](http://blog.csdn.net/xjbclz/article/details/51925238) 103 | 104 | [关于android中矢量图如何用,有坑,爬坑,如何替代的另一些看法](http://www.jianshu.com/p/313912ff2f37) 105 | 106 | [Android矢量图之VectorDrawable类自由填充色彩](http://www.jb51.net/article/84613.htm) 107 | 108 | [VectorDrawable怎么玩](http://www.jianshu.com/p/456df1434739) 109 | https://github.com/Damonzh/VectorDrawableDemo 110 | 111 | [VectorDrawable矢量图](http://blog.csdn.net/king1425/article/details/70034065) 112 | 动画Demo库https://github.com/xuyisheng/VectorDemo 113 | ``` 114 | 矢量图详细介绍 115 | 116 | 1、支持的指令: 117 | M = moveto 相当于 android Path 里的moveTo(),用于移动起始点 118 | L = lineto 相当于 android Path 里的lineTo(),用于画线 119 | H = horizontal lineto 用于画水平线 120 | V = vertical lineto 用于画竖直线 121 | C = curveto 相当于cubicTo(),三次贝塞尔曲线 122 | S = smooth curveto 同样三次贝塞尔曲线,更平滑 123 | Q = quadratic Belzier curve quadTo(),二次贝塞尔曲线 124 | T = smooth quadratic Belzier curveto 同样二次贝塞尔曲线,更平滑 125 | A = elliptical Arc 相当于arcTo(),用于画弧 126 | Z = closepath 相当于closeTo(),关闭path 127 | 2、使用原则: 128 | ①坐标轴为以(0,0)为中心,X轴水平向右,Y轴水平向下。 129 | ②所有指令大小写均可。大写绝对定位,参照全局坐标系;小写相对定位,参照父容器坐标系 130 | ③指令和数据间的空格可以省略 131 | ④同一指令出现多次可以只用一个 132 | 注意,’M’处理时,只是移动了画笔, 没有画任何东西。 它也可以在后面给出上同时绘制不连续线。 133 | 134 | 3、详细指令分析 135 | 3.1、L H V指令 136 | 绘制直线的指令是“L”,从当前点划线到给定点。 “L”之后的参数是一个点坐标,如“L 200 400”。 如果画水平线或垂直线,可以使用“H”和“V”指令,后面的参数是x(H指令)或y坐标(V指令)。 137 | M 起点X,起点Y L(直线)终点X,终点Y H(水平线)终点X V(垂直线)终点Y 138 | 如:M 10,20 L 80,50 M 10,20 V 50 M 10,20 H 90 139 | 140 | 3.2、A指令 141 | 允许不闭合。可以想像成是椭圆的某一段,共七个参数 142 | A RX,RY,XROTATION,FLAG1,FLAG2,X,Y 143 | RX,RY指所在椭圆的半轴大小 144 | XROTATION指椭圆的X轴与水平方向顺时针方向夹角,可以想像成一个水平 的椭圆绕中心点顺时针旋转XROTATION的角度。 145 | FLAG1只有两个值,1表示大角度弧线,0为小角度弧线。 146 | FLAG2只有两个值,确定从起点至终点的方向,1为顺时针,0为逆时针 147 | X,Y为终点坐标。 148 | M 20,50 A 30,30,0,1 0 80,50 这个就是画一个下半圆。 149 | 3.3 C指令 三次贝塞尔曲线。相关博客很多,不在追述 150 | ``` 151 | 152 | [网上找的一个开源的Vector的动画Demo库](https://github.com/xuyisheng/VectorDemo) 153 | 154 | 155 | -------------------------------------------------------------------------------- /UI/RecyclerView.md: -------------------------------------------------------------------------------- 1 | RecyclerView 2 | === 3 | 4 | [RecyclerView实现Item点击事件处理](https://www.jianshu.com/p/4e5631a5c9bc) 5 | 6 | 7 | [RecyclerView系列之三:处理item的点击事件](https://www.jianshu.com/p/971396467a62) 8 | 9 | 10 | ------------------ 11 | 12 | 通过在adapter中提供回调来实现item的点击事件 13 | 14 | ~~~ 15 | 16 | public class ChooseAndSearchEntitySimpleAdapter extends BaseRvAdapter { 17 | 18 | private OnRecyclerViewItemClickListenter mClickListenter; 19 | 20 | public void setClickListenter(OnRecyclerViewItemClickListenter clickListenter) { 21 | mClickListenter = clickListenter; 22 | } 23 | 24 | 25 | @Override 26 | public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) { 27 | ViewHolder viewHolder = (ViewHolder) holder; 28 | ...... 29 | 30 | viewHolder.itemView.setOnClickListener(new View.OnClickListener() { 31 | @Override 32 | public void onClick(View view) { 33 | if (mClickListenter != null) { 34 | mClickListenter.OnItemClick(view, viewHolder.getAdapterPosition()); 35 | //----------------------------------------------------------------------------- 36 | //注意:viewHolder.getAdapterPosition()在RecyclerView不-1,在LRecyclerView中要-1 37 | //------------------------------------------------------------------------------ 38 | } 39 | } 40 | }); 41 | 42 | D:\gongwei-app2\app\src\main\java\com\gong_wei\ui\community\AddProductActivity.java 43 | 44 | 45 | @BindView(R.id.rv_brand_specialty) 46 | RecyclerView mRvBrandSpecialty; 47 | 48 | private ChooseAndSearchEntitySimpleAdapter mAdapter; 49 | 50 | mAdapter = new ChooseAndSearchEntitySimpleAdapter(this); 51 | //GwUtils.initRecyclerView(mRvBrandSpecialty, mAdapter, new LinearLayoutManager(this)); 52 | mRvBrandSpecialty.setHasFixedSize(true); 53 | mRvBrandSpecialty.setLayoutManager(new LinearLayoutManager(this)); 54 | mRvBrandSpecialty.setAdapter(mAdapter); 55 | mAdapter.setClickListenter(new OnRecyclerViewItemClickListenter() { 56 | @Override 57 | public void OnItemClick(View v, int position) { 58 | Log.d(TAG, "AddProductActivity OnItemClick position = " + position); 59 | ...... 60 | } 61 | }); 62 | } 63 | ~~~ 64 | 65 | ------------------ 66 | 67 | [RecyclerView的Item以及子View点击事件](https://www.jianshu.com/p/8d5288b56f45) 68 | 69 | [android RecyclerView适配器实现多布局item+item内部控件点击事件](https://blog.csdn.net/qq_38225558/article/details/80627273) 70 | 71 | [Android中解决RecyclerView各种点击事件的方法](https://www.jb51.net/article/140578.htm) 72 | 73 | RecyclerView分割线 74 | --- 75 | 76 | ~~~ 77 | 78 | 方法一: 79 | RecyclerView分割线 包含上线与下线 80 | mRvReply.addItemDecoration(new GridItemDecoration(0, 2, ContextCompat.getColor(getApplicationContext(), R.color.gray_ligth))); 81 | 82 | 方法二: 83 | 添加自定义分割线加细线 包含上线与下线 84 | //添加自定义分割线加细线 85 | DividerItemDecoration divider = new DividerItemDecoration(getContext(), DividerItemDecoration.VERTICAL); 86 | divider.setDrawable(ContextCompat.getDrawable(getContext(), R.drawable.custom_divider_thin_line)); 87 | mRvProductRelation.addItemDecoration(divider); 88 | 89 | D:\gongwei-app2\app\src\main\res\drawable\custom_divider_thin_line.xml 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 方法三: 98 | //添加自定义分割粗线 99 | DividerItemDecoration divider = new DividerItemDecoration(getContext(), DividerItemDecoration.VERTICAL); 100 | divider.setDrawable(ContextCompat.getDrawable(getContext(), R.drawable.custom_divider)); 101 | mRvQuestion.addItemDecoration(divider); 102 | 103 | D:\gongwei-app2\app\src\main\res\drawable\custom_divider.xml 104 | 105 | 106 | 107 | 108 | 109 | 110 | 方法四: 111 | ReleaseAdapter.java 112 | 113 | private boolean dividerIsThick = false; 114 | private int dividerSize = 5; 115 | 116 | public void setDividerIsThick() { 117 | this.dividerIsThick = true; 118 | } 119 | 120 | public void setDividerIsThick(int dividerSize) { 121 | this.dividerIsThick = true; 122 | this.dividerSize = dividerSize; 123 | } 124 | 125 | /** 126 | * 设置粗分割线 127 | * @param viewDivider 128 | */ 129 | private void setViewDivider(View viewDivider) { 130 | LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) viewDivider.getLayoutParams(); 131 | params.height = SystemUtils.dip2px(dividerSize, context); 132 | viewDivider.setLayoutParams(params); 133 | viewDivider.setBackgroundColor(ContextCompat.getColor(context, R.color.divider_gray_thick)); 134 | } 135 | 136 | @Override 137 | public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) { 138 | ...... 139 | BusinessViewHolder viewHolder = (ViewHolder) holder; 140 | if(dividerIsThick) { 141 | setViewDivider(viewHolder.mVDivider); 142 | } 143 | 144 | 145 | static class ViewHolder extends RecyclerView.ViewHolder { 146 | ...... 147 | @BindView(R.id.v_divider) 148 | View mVDivider; 149 | 150 | ViewHolder(View view) { 151 | super(view); 152 | ButterKnife.bind(this, view); 153 | } 154 | } 155 | 156 | D:\gongwei-app2\app\src\main\res\layout\fragment_release_business_item.xml 157 | 163 | 164 | 165 | ~~~ 166 | 167 | 168 | 169 | 170 | 171 | -------------------------------------------------------------------------------- /h5/h5打开APP.txt: -------------------------------------------------------------------------------- 1 | 浏览器打开APP 2 | 3 | 浏览器打开首页: 4 | 5 | 6 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 21 | 能打开 22 | //////////////// 23 | //浏览器打APP获取参数 24 | Intent intent = getIntent(); 25 | String scheme = intent.getScheme(); 26 | Uri uri = intent.getData(); 27 | System.out.println("scheme:"+scheme); 28 | LogUtils.d("浏览器打开参数: " + "scheme:"+scheme); 29 | if (uri != null) { 30 | String host = uri.getHost(); 31 | String dataString = intent.getDataString(); 32 | String id = uri.getQueryParameter("id"); 33 | String path = uri.getPath(); 34 | String path1 = uri.getEncodedPath(); 35 | String queryString = uri.getQuery(); 36 | PccbUtils.showAlertDialog(this, "host:"+host 37 | + "\ndataString:" + dataString 38 | + "\nid:" + id 39 | + "\npath:"+path 40 | + "\npath1:"+path1 41 | + "\nqueryString:" + queryString); 42 | LogUtils.d("浏览器打开参数: " + 43 | "host:"+host 44 | + "\ndataString:" + dataString 45 | + "\nid:" + id 46 | + "\npath:"+path 47 | + "\npath1:"+path1 48 | + "\nqueryString:" + queryString 49 | ); 50 | } 51 | 52 | /////////////////////// 53 | 54 | 可以获取参数: 55 | 56 | 04-27 14:32:34.928: I/System.out(3787): scheme:pccbapp 57 | 04-27 14:32:34.932: D/MainActivity.init(L:167)(3787): 浏览器打开参数: scheme:pccbapp 58 | 04-27 14:32:34.952: D/dalvikvm(3787): GC_FOR_ALLOC freed 247K, 9% free 3266K/3568K, paused 5ms, total 5ms 59 | 04-27 14:32:35.220: D/MainActivity.init(L:181)(3787): 浏览器打开参数: host:aa.bb 60 | 04-27 14:32:35.220: D/MainActivity.init(L:181)(3787): dataString:pccbapp://aa.bb:80/test?p=12&id=1 61 | 04-27 14:32:35.220: D/MainActivity.init(L:181)(3787): id:1 62 | 04-27 14:32:35.220: D/MainActivity.init(L:181)(3787): path:/test 63 | 04-27 14:32:35.220: D/MainActivity.init(L:181)(3787): path1:/test 64 | 04-27 14:32:35.220: D/MainActivity.init(L:181)(3787): queryString:p=12&id=1 65 | 66 | 67 | 68 | 模拟器、UC、Opera、Chrome,360能打开APP,未安装能显示未安装,是否下载 69 | 70 | 浏览器打开登录页--成功 71 | 72 | 73 | 打开App 74 | 75 | 76 | 77 | 78 | 81 | 82 | 83 | 84 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | http://192.168.4.80/appindex/test3 101 | 102 | 103 | 打开或下载APP 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 |
112 | 立即打开>> 113 | 114 |
115 | 116 | 158 | 159 | 160 | 161 | ======================================================================================================== 162 | -------------------------------------------------------------------------------- /Audio/README.md: -------------------------------------------------------------------------------- 1 | # Audio 2 | 3 | [Android音频技术开发之基础知识](https://www.jianshu.com/p/fd31aba3b2eb) 4 | 5 | [android 音频总结](https://www.jianshu.com/p/5389a9abe2b9) 6 | 7 | [Android端本地音乐播放器(一)---前言](https://blog.csdn.net/lvdoujack/article/details/84545289) 8 | 9 | [Android端本地音乐播放器(二)---应用主界面的实现](https://blog.csdn.net/lvdoujack/article/details/106447062) 10 | 11 | [Android端本地音乐播放器(三)---播放逻辑的控制方法](https://blog.csdn.net/lvdoujack/article/details/107523659) 12 | 13 | [Android怎样实现控制第三方音乐播放器暂停、播放](https://blog.csdn.net/Evahuangchen/article/details/53321670) 14 | 15 | [android实现音乐播放器(进度条)](https://blog.csdn.net/bfboys/article/details/53156119) 16 | 17 | [Android之MediaPlayer播放音乐并实现进度条实例](https://blog.csdn.net/rhljiayou/article/details/7110258) 18 | 19 | [android 边下边播放mp3完美实现(有缓冲和播放进度效果)](https://download.csdn.net/download/lsong89/7243497) 20 | 21 | [浅谈《MediaPlayer》加载进度定时刷新](https://blog.csdn.net/u014115577/article/details/47442377) 22 | 23 | 24 | 25 | 26 | [Android 音乐播放器](https://www.jianshu.com/p/72c4788433fb) 27 | 28 | ~~~ 29 | File file = new File(Environment.getExternalStorageDirectory(),"outside_the_window.mp3"); 30 | if(file == null) //想要添加判断 是否找到music.map3 31 | Toast.makeText(getContext(),"the sd have not music.mp3",Toast.LENGTH_SHORT).show(); 32 | mMediaPlayer.setDataSource(file.getPath());//指定音频路径 33 | Log.d(TAG, "File = " + file.getPath()); 34 | mMediaPlayer.prepare(); 35 | 36 | 2020-09-08 00:57:58.113 32444-32444/com.mywords.app D/CognitionFragment: File = /storage/emulated/0 37 | 2020-09-08 00:57:58.116 32444-32444/com.mywords.app D/CognitionFragment: File = /storage/emulated/0/outside_the_window.mp3 38 | 39 | ~~~ 40 | 41 | [Android学习--Assets资源文件读取及AssetManager介绍](https://www.cnblogs.com/jpfss/p/9876370.html) 42 | 43 | [Android开发之assets目录下资源使用总结](https://www.cnblogs.com/jpfss/p/9876384.html) 44 | 45 | [播放Assets目录下的音乐文件](https://blog.csdn.net/peachs885090/article/details/82985458) 46 | 47 | ~~~ 48 | MediaPlayer mediaPlayer=new MediaPlayer(); 49 | AssetFileDescriptor afd = getAssets().openFd("musics/outside_the_window.mp3"); 50 | mediaPlayer.setDataSource(afd.getFileDescriptor()); 51 | mediaPlayer.prepare(); 52 | mediaPlayer.start(); 53 | 54 | mMediaPlayer.setDataSource(afd.getFileDescriptor())无效 55 | 56 | AssetFileDescriptor afd = getActivity().getAssets().openFd("musics/Australian.mp3"); 57 | Log.d(TAG, "File = " + afd.getFileDescriptor()); 58 | mMediaPlayer.setDataSource(afd.getFileDescriptor()); 59 | mMediaPlayer.prepare(); 60 | 61 | 2020-09-08 00:57:58.131 32444-32444/com.mywords.app D/CognitionFragment: File = java.io.FileDescriptor@65ee0c6 62 | 63 | mMediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength())成功: 64 | 65 | AssetManager asm = getContext().getResources().getAssets(); 66 | AssetFileDescriptor afd = asm.openFd("Australian.mp3"); 67 | Log.d(TAG, "FilePath = " + afd.getFileDescriptor()); 68 | // mMediaPlayer.setDataSource(afd.getFileDescriptor()); 69 | mMediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength()); 70 | mMediaPlayer.prepare(); 71 | mMediaPlayer.play(); 72 | 73 | 2020-09-08 09:57:49.832 18192-18192/com.mywords.app D/CognitionFragment: FilePath = java.io.FileDescriptor@6f95f08 74 | 75 | 成功 76 | AssetManager asm = getContext().getResources().getAssets(); 77 | //AssetFileDescriptor afd = asm.openFd("Australian.mp3"); 78 | AssetFileDescriptor afd = asm.openFd("musics/outside_the_window.mp3"); 79 | Log.d(TAG, "FilePath = " + afd.getFileDescriptor()); 80 | // mMediaPlayer.setDataSource(afd.getFileDescriptor()); 81 | mMediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength()); 82 | mMediaPlayer.prepare(); 83 | 84 | afd.getFileDescriptor() 每次不一样 85 | 86 | 2020-09-08 10:22:28.298 23221-23221/com.mywords.app D/CognitionFragment: FilePath = java.io.FileDescriptor@7c525f4 87 | 2020-09-08 10:22:35.870 23221-23221/com.mywords.app D/CognitionFragment: FilePath = java.io.FileDescriptor@7135f09 88 | 2020-09-08 10:22:49.723 23221-23221/com.mywords.app D/CognitionFragment: FilePath = java.io.FileDescriptor@5db1997 89 | 90 | 91 | ~~~ 92 | 93 | [播放本地资源assets音频](https://blog.csdn.net/weixin_42376563/article/details/81145300) 94 | 95 | [android播放assets目录下的wav,MP3音频](http://www.voidcn.com/article/p-adfpivlw-yh.html) 96 | 97 | [【Android实战】播放assets或者raw文件夹下的视频文件](https://blog.csdn.net/s003603u/article/details/49700547) 98 | ~~~ 99 | 1)assets文件夹下 100 | AssetFileDescriptor afd = getAssets().openFd("guide_video.mp4"); 101 | mediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength()); 102 | 103 | (2)raw文件夹下 104 | Uri mUri = Uri.parse("android.resource://" + getPackageName() + "/"+ R.raw.guide_video); 105 | mediaPlayer.setDataSource(this, mUri); 106 | 107 | 有时候会播放不了,mediaPlayer prepare报错,要先看一下手机的系统播放器是否支持播放,再继续找问题 108 | ~~~ 109 | 110 | [Android 使用MediaPlayer播放assets或者raw目录的音频文件](https://blog.csdn.net/liangtianmeng/article/details/107299075) 111 | 112 | [Android 使用MediaPlayer播放assets或者raw目录的音频文件](https://blog.csdn.net/qq_31939617/article/details/80491552) 113 | 114 | [Android之raw](https://www.jianshu.com/p/ef5bb5ccd88c) 115 | 116 | [Android raw 目录 和 assets 目录](https://www.jianshu.com/p/f8f5c3ab5bf1) 117 | 118 | [Android中asset文件夹与raw文件夹的区别深入解析](https://www.jb51.net/article/38531.htm) 119 | 120 | [Android开发之资源目录assets与res/raw的区别分析](https://www.jb51.net/article/77904.htm) 121 | 122 | [android 将res/raw下的文件保存至SD卡](https://blog.csdn.net/wuhongqi0012/article/details/21954321) 123 | 124 | [Android 拷贝文件夹到sdcard路径下](https://blog.csdn.net/lancelots/article/details/84108367) 125 | 126 | [Android 手机sdcard目录或文件的拷贝、移动、删除(递归)](https://blog.csdn.net/lyyn_stickto/article/details/51858379) 127 | 128 | [Android设备与外接U盘实现数据文件夹拷贝到android设备](https://blog.csdn.net/only_you_zj/article/details/80175254) 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | -------------------------------------------------------------------------------- /android/Android键盘.md: -------------------------------------------------------------------------------- 1 | Android 键盘 2 | --- 3 | 4 | [ChatKeyboard](https://github.com/CPPAlien/ChatKeyboard) 5 | 6 | [XhsEmoticonsKeyboard 最良心的开源表情键盘解决方案](https://github.com/w446108264/XhsEmoticonsKeyboard) 7 | 8 | [Android 软键盘监听事件](http://blog.csdn.net/breeze666/article/details/27082419) 9 | 10 | [Android监听键盘弹出收起](https://blog.csdn.net/u011181222/article/details/52043001) 11 | 12 | ~~~~~~ 13 | 软键盘关闭后编辑辑修改行数 14 | 15 | @BindView(R.id.et_description) 16 | EditText mEtDescription; 17 | 18 | @BindView(R.id.v_free) 19 | View mVFree; 20 | 21 | /** 22 | * 软键盘监听 23 | */ 24 | SoftKeyBoardListener.setListener(this, new SoftKeyBoardListener.OnSoftKeyBoardChangeListener() { 25 | @Override 26 | public void keyBoardShow(int height) { 27 | mEtDescription.setLines(10); 28 | } 29 | 30 | @Override 31 | public void keyBoardHide(int height) { 32 | mEtDescription.setLines(18); 33 | mVFree.setVisibility(View.VISIBLE); 34 | } 35 | }); 36 | 37 | ------------ 38 | 39 | 55 | 56 | 62 | 63 | 64 | 65 | ----------- 66 | /** 67 | * 监听键盘弹出收起 68 | */ 69 | public class SoftKeyBoardListener { 70 | private View rootView;//activity的根视图 71 | int rootViewVisibleHeight;//纪录根视图的显示高度 72 | private OnSoftKeyBoardChangeListener onSoftKeyBoardChangeListener; 73 | 74 | public SoftKeyBoardListener(Activity activity) { 75 | //获取activity的根视图 76 | rootView = activity.getWindow().getDecorView(); 77 | 78 | //监听视图树中全局布局发生改变或者视图树中的某个视图的可视状态发生改变 79 | rootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { 80 | @Override 81 | public void onGlobalLayout() { 82 | //获取当前根视图在屏幕上显示的大小 83 | Rect r = new Rect(); 84 | rootView.getWindowVisibleDisplayFrame(r); 85 | 86 | int visibleHeight = r.height(); 87 | System.out.println(""+visibleHeight); 88 | if (rootViewVisibleHeight == 0) { 89 | rootViewVisibleHeight = visibleHeight; 90 | return; 91 | } 92 | 93 | //根视图显示高度没有变化,可以看作软键盘显示/隐藏状态没有改变 94 | if (rootViewVisibleHeight == visibleHeight) { 95 | return; 96 | } 97 | 98 | //根视图显示高度变小超过200,可以看作软键盘显示了 99 | if (rootViewVisibleHeight - visibleHeight > 200) { 100 | if (onSoftKeyBoardChangeListener != null) { 101 | onSoftKeyBoardChangeListener.keyBoardShow(rootViewVisibleHeight - visibleHeight); 102 | } 103 | rootViewVisibleHeight = visibleHeight; 104 | return; 105 | } 106 | 107 | //根视图显示高度变大超过200,可以看作软键盘隐藏了 108 | if (visibleHeight - rootViewVisibleHeight > 200) { 109 | if (onSoftKeyBoardChangeListener != null) { 110 | onSoftKeyBoardChangeListener.keyBoardHide(visibleHeight - rootViewVisibleHeight); 111 | } 112 | rootViewVisibleHeight = visibleHeight; 113 | return; 114 | } 115 | 116 | } 117 | }); 118 | } 119 | 120 | private void setOnSoftKeyBoardChangeListener(OnSoftKeyBoardChangeListener onSoftKeyBoardChangeListener) { 121 | this.onSoftKeyBoardChangeListener = onSoftKeyBoardChangeListener; 122 | } 123 | 124 | public interface OnSoftKeyBoardChangeListener { 125 | void keyBoardShow(int height); 126 | 127 | void keyBoardHide(int height); 128 | } 129 | 130 | public static void setListener(Activity activity, OnSoftKeyBoardChangeListener onSoftKeyBoardChangeListener) { 131 | SoftKeyBoardListener softKeyBoardListener = new SoftKeyBoardListener(activity); 132 | softKeyBoardListener.setOnSoftKeyBoardChangeListener(onSoftKeyBoardChangeListener); 133 | } 134 | } 135 | 136 | 137 | ~~~~~~ 138 | 139 | [Android windowSoftInputMode软键盘显示和隐藏的监听和实现](http://blog.csdn.net/u010852801/article/details/43198313) 140 | 141 | [KeyboardView 自定义安全键盘](https://github.com/GitPhoenix/KeyboardView) 142 | 143 | [Keyboard 仿京东,支付宝密码键盘和密码输入框](https://github.com/GitPhoenix/Keyboard) 144 | 145 | 146 | 147 | 148 | ----------------------------- 149 | [EditText的setSelection属性](https://www.aliyun.com/jiaocheng/21703.html) 150 | 151 | [控件EditText的setOnEditorActionListener方法的使用](https://blog.csdn.net/u010041075/article/details/65445043) 152 | 编辑完之后点击软键盘上的各种键才会触发 153 | 154 | Android 键盘表情符过滤 155 | --- 156 | 157 | [Android 过滤特殊字符和emoji表情](https://blog.csdn.net/luckrr/article/details/53784066) 158 | 159 | [Android过滤emoji表情](https://blog.csdn.net/b1480521874/article/details/53887029) 160 | 161 | [Android 准确过滤(禁止) Emoji表情](https://www.jianshu.com/p/1c04c3617469) 162 | 163 | [Android过滤emoji表情](https://blog.csdn.net/b1480521874/article/details/53887029) 164 | 165 | [android edittext如何过滤掉Emoji表情](https://ask.csdn.net/questions/340898) 166 | 167 | [Android禁止输入表情符号](https://blog.csdn.net/XiNanHeiShao/article/details/73252891) 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | -------------------------------------------------------------------------------- /android/Android签名.md: -------------------------------------------------------------------------------- 1 | Android 签名 2 | --- 3 | [Android Studio 使用Eclipse中的keystore为App签名](http://blog.csdn.net/kangear/article/details/52069726) 4 | >最终在Project Structure中配置一个Signing,store文件还是Eclipse中使用的那个 5 | 6 | [Android 获取签名证书的详细信息(Eclipse和Android studio通用)](http://www.bkjia.com/Androidjc/1012685.html) 7 | > 今天要用到签名证书的MD5,但是这个只有在第一次生成的时候我看到了,这可怎么办呢,幸亏我们有google,我们运行下面的命令就OK了。 8 | > keytool -list -v -keystore 签名证书的路径 9 | > Eclipse 生成的签名证书是.keystore结尾的,Android Studio 生成的签名证书是.jks结尾的,这一点要注意哦 10 | 11 | [eclipse打包和android studio打包使用同一签名文件](http://www.bubuko.com/infodetail-1000864.html) 12 | >当我们把eclipse 项目转到到android studio中时,打包会有所不同,在eclispe中打包时只需要选择签名文件和输入密码就可以了,但是在android stuido中打包是需要输入key.alias(别名),可能这个keystore不是你生成的或已经忘记了key.alias,你可以通过以下命令查看keystore的key.alias(别名), 13 | 14 | >命令进入keystore文件所在的目录 运行 keytool -list -v -keystore xxxx.keystore -storepass xxxxxxxxxx(密码)  签名的信息就有了 15 | >这样就可以顺利的打包了! 16 | 17 | eclipse 迁移 Android Studio 证书问题 18 | 19 | >Android 获取签名证书的详细信息(Eclipse和Android studio通用) 20 | >今天要用到签名证书的MD5,但是这个只有在第一次生成的时候我看到了,这可怎么办呢,幸亏我们有google,我们运行下面的命令就OK了。 21 | >keytool -list -v -keystore 签名证书的路径 22 | > 23 | >Eclipse 生成的签名证书是.keystore结尾的,Android Studio 生成的签名证书是.jks结尾的,这一点要注意哦 24 | 25 | 26 | 27 | Android几种常见的多渠道(批量)打包方式介绍 28 | http://www.itnose.net/detail/6614021.html 29 | 30 | 通过ant脚本,编译打包android工程 31 | http://blog.csdn.net/chenzhiqin20/article/details/8191889 32 | 33 | #下面这句是自动生成的 34 | sdk.dir=D:\\Program Files\\Android\\android-sdk 35 | #数字签名文件 36 | key.store=jingchen.keystore 37 | #别名alias 38 | key.alias=jingchen 39 | #数字签名的密码 40 | key.store.password=111111 41 | #alias的密码 42 | key.alias.password=111111 43 | #这里设置混淆代码,在当前项目的proguard-project.txt中编写混淆规则 44 | proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 45 | 46 | [ProGuard代码混淆技术详解](http://www.cnblogs.com/cr330326/p/5534915.html) 47 | 48 | Eclipse下Ant自动打包,混淆和签名 49 | http://www.aiuxian.com/article/p-1675466.html 50 | 51 | Eclipse下使用Ant多渠道批量打包 52 | http://www.aiuxian.com/article/p-1675467.html 53 | 54 | ----------------------------- 55 | 56 | 57 | [Key was created with errors: Warning: JKS 密钥库使用专用格式。android Studio打包报错](https://blog.csdn.net/qq_42221857/article/details/105975431) 58 | 59 | [Android APK签名 JKS 密钥库使用专用格式。建议使用 “keytool -importkeystore -srckeystore E:\xxxxxx- pkcs12“ 迁移到行业标准格式](https://blog.csdn.net/xkai007/article/details/106073091) 60 | 61 | [Java证书工具keytool用法总结](https://blog.csdn.net/w47_csdn/article/details/87564029) 62 | 63 | [JDK自带的keytool证书工具详解](https://www.cnblogs.com/zhi-leaf/p/10418222.html) 64 | 65 | [android 使用signingConfigs进行打包](https://blog.csdn.net/bzlj2912009596/article/details/78188570) 66 | 67 | [android signingConfigs打包配置](https://www.jianshu.com/p/62ac145ee0ad) 68 | 69 | [AS3.6.1版apk签名打包Warning-JKS密钥库使用专用格式](https://www.tqwba.com/x_d/jishu/11788.html) 70 | 71 | [Warning:JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore...pkcs12" 迁移到行业标准格式 PKCS12](https://blog.csdn.net/csdnzouqi/article/details/105882034) 72 | 73 | [jks与keystore区别](https://blog.csdn.net/qq_15509421/article/details/91870944) 74 | 75 | [Android jks文件签名转换keystore文件签名](https://blog.csdn.net/ONLYMETAGAIN/article/details/78781316) 76 | 77 | 78 | [Android-解放双手之Gradle自动化打包实战(原创)](https://www.jianshu.com/p/38eb97d3477e) 79 | 80 | [Android-V1、V2签名包和快速集成美团多渠道打包(原创)](https://www.jianshu.com/p/332525b09a88) 81 | 82 | [Android Studio gradle打包实践](https://www.jianshu.com/p/c5f69437100a) 83 | 84 | [最全的命令行(gradle)打包安卓apk](https://www.cnblogs.com/peng-lan/p/11097117.html) 85 | 86 | [android studio打包导出未签名apk](https://blog.csdn.net/u010111268/article/details/105053649) 87 | 88 | [Android 使用 Gradle 打包之签名配置](https://www.jianshu.com/p/8dc154f0f89f) 89 | 90 | ~~~ 91 | android { 92 | ...... 93 | // 配置 release 的签名信息 94 | signingConfigs { 95 | release { 96 | storeFile 97 | storePassword 98 | keyAlias 99 | keyPassword 100 | } 101 | } 102 | 103 | // 读取签名配置 104 | getSigningProperties() 105 | 106 | buildTypes { 107 | // debug 和 release 使用同样的签名 108 | debug { 109 | signingConfig signingConfigs.release 110 | } 111 | 112 | release { 113 | minifyEnabled true 114 | shrinkResources true 115 | zipAlignEnabled true 116 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 117 | signingConfig signingConfigs.release 118 | // 修改生成的 apk 文件名,输出 apk 名称:MyApp_v1.0.0_2017-11-10_debug.apk 119 | applicationVariants.all { variant -> 120 | def suffix 121 | if (variant.buildType.name == 'release') { 122 | suffix = 'release' 123 | } else { 124 | suffix = 'debug' 125 | } 126 | variant.outputs.each { output -> 127 | def outputFile = output.outputFile 128 | if (outputFile != null && outputFile.name.endsWith('.apk')) { 129 | def fileName = "MyApp_v${defaultConfig.versionName}_${releaseTime()}_${suffix}.apk" 130 | output.outputFile = new File(outputFile.parent, fileName) 131 | } 132 | } 133 | } 134 | } 135 | } 136 | ...... 137 | } 138 | 139 | // 读取签名配置 140 | def getSigningProperties() { 141 | def propFile = file('../signing.properties') 142 | if (propFile.exists() && propFile.canRead()) { 143 | def props = new Properties() 144 | props.load(new FileInputStream(propFile)) 145 | if (props.containsKey('STORE_FILE') && props.containsKey('STORE_PASSWORD') && 146 | props.containsKey('KEY_ALIAS') && props.containsKey('KEY_PASSWORD')) { 147 | android.signingConfigs.release.storeFile = file('../' + props['STORE_FILE']) 148 | android.signingConfigs.release.storePassword = props['STORE_PASSWORD'] 149 | android.signingConfigs.release.keyAlias = props['KEY_ALIAS'] 150 | android.signingConfigs.release.keyPassword = props['KEY_PASSWORD'] 151 | } else { 152 | println 'signing.properties are found but some entries are missed!' 153 | android.buildTypes.release.signingConfig = null 154 | } 155 | } else { 156 | println 'signing.properties are not found!' 157 | android.buildTypes.release.signingConfig = null 158 | } 159 | } 160 | 161 | // 定义打包时间 162 | static def releaseTime() { 163 | return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC")) 164 | } 165 | ~~~ 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | -------------------------------------------------------------------------------- /UI/EditText.md: -------------------------------------------------------------------------------- 1 | EditText 2 | === 3 | 4 | [EditText 基本用法](https://www.cnblogs.com/yishaochu/p/5785234.html) 5 | 6 | [Android开发之EditText属性详解](http://www.cnblogs.com/weixing/p/3257058.html) 7 | 8 | [EditText,这篇就够了](https://blog.csdn.net/thanksforandroid/article/details/70859894) 9 | 10 | [android动态设置edittext高度](http://www.debugease.com/android/3534991.html) 11 | ~~~ 12 | int newHeight = 200; 13 | //注意这里,到底是用ViewGroup还是用LinearLayout或者是FrameLayout,主要是看你这个EditTex 14 | //控件所在的父控件是啥布局,如果是LinearLayout,那么这里就要改成LinearLayout.LayoutParams 15 | ViewGroup.LayoutParams lp = editText.getLayoutParams(); 16 | lp.height = newHeight; 17 | editText.setLayoutParams(lp); 18 | ~~~ 19 | 20 | [Android EdiText超出设定高度自适应](https://blog.csdn.net/Androidtalent/article/details/52919925) 21 | 22 | [EditText自适应高度](https://blog.csdn.net/lang791534167/article/details/30542709) 23 | 24 | [Android EditText控件即设置最小高度又运行高度随内容增加而变化](https://blog.csdn.net/qq654783742/article/details/52238970) 25 | 26 | [android EditText最多显示多高,超出的滑动显示](https://blog.csdn.net/qq_33919497/article/details/79960670) 27 | 28 | Edidtext滑动问题 29 | ---------------- 30 | 31 | [真正完美解决EditText嵌套ScrollView的滑动冲突](https://www.jianshu.com/p/44c2e56a43bf) 32 | 33 | [Android仿新浪微博加#话题的EditText实现](https://www.cnblogs.com/bkymy/p/4630650.html) 34 | 35 | [android 仿新浪微博的弹性滑动](https://blog.csdn.net/chaozhung_no_l/article/details/8968245) 36 | 37 | [真正完美解决EditText嵌套ScrollView的滑动冲突](https://www.jianshu.com/p/44c2e56a43bf) 38 | 39 | [ScrollView嵌套EditView、滑动TextView冲突解决](https://www.jianshu.com/p/e00e36b5cd05) 40 | 41 | [针对ScrollView和EditText合用时,EditText长度超过本身高度时不能滑动问题](https://blog.csdn.net/smile0heaven/article/details/52780083) 42 | 43 | [允许的EditText,同时禁用滚动(Allow EditText to Scroll while Disabled)](http://www.it1352.com/139383.html) 44 | 本文地址:IT屋 » Allow EditText to Scroll while Disabled 45 | ~~~ 46 | 49 | 50 | 56 | 57 | 63 | 64 | 65 | 72 | 73 | 74 |