本文维护至2020-11-25,现已停止更新。
为了方便阅读博主博客,梳理了博主相关文章,本文将持续更新,记录博主开发过程中的成长经历,跳过开发中踩过的坑,快速实现移动端产品的开发、更新和迭代。
博主自2016年从事软件开发工作以来,深感敲代码的不易,重复的制造车轮子只是在浪费时间,作为一位优秀的开发者,应当利用好已有的优秀开源框架,将富余的时间用在研究底层技术上。
程序员那些事儿
Android功能开发专栏
Android功能开发 - 自定义Android消息推送提示音
Android功能开发 - Android项目中音频文件的存储位置
Android功能开发 - Intent将在APP中获取到的联系人信息保存到通讯录
Android功能开发 - 在APP中打开设备中安装的应用市场
Android功能开发 - 隐式意图 implicit intent
Android功能开发 - Android数据存储之文件File
Android功能开发 - Android数据保存-shared preference
Android权限专栏
Android权限 - Android权限sharedUserId使用:设备关机重启、调用隐藏方法、静默安装升级卸载APP等需要使用system权限的场景
Android性能调优专栏
Android性能调优 - 在Android中解决内存溢出 – OutOfMemoryError
Android性能调优 - java.lang.OutOfMemoryError
Android机型适配专栏
Android机型适配 - Android多语言那点事(支持8.0+)
Android机型适配 - Android官方建议关于Android APP UI界面设计的一些参考原则
Android机型适配 - UI设计基础知识点之Android设计规范篇
Android机型适配 - APP兼容不同的设备之适配不同的系统版本
Android机型适配 - APP兼容不同的设备之适配不同的屏幕
Android机型适配 - APP兼容不同的设备之适配不同的语言
Android开发组件专栏
Android开发组件专栏 - WebView
WebView - Android WebView 的使用(超详细用法)
Android开发组件专栏 - RecycleView
RecycleView - RecyclerView系列,如何优雅的实现分割线
RecycleView - RecyclerView系列,RecyclerView的基本使用
Android开发组件专栏 - ListView
ListView - ListView组件中嵌套GridView(重算GridView的高度)
ListView - Android列表组件ListView子项的点击事件与子项中组件的点击事件
ListView - Android列表组件ListView使用详解之滑动事件监听
ListView - Android列表组件ListView使用详解之屏幕触摸事件
ListView - Android列表组件ListView使用详解之数据为空提示信息
ListView - Android列表组件ListView使用详解之动态加载或修改列表数据
ListView - Android列表组件ListView使用详解之设置显示第几项子项
ListView - Android列表组件ListView使用详解之取消子项的点击效果
ListView - Android列表组件ListView使用详解之隐藏滚动条
ListView - Android列表组件ListView使用详解之设置分割线
ListView - Android列表组件ListView使用详解之ViewHolder提高效率
ListView - 设置ListView的高度(重算组件子项)
Android开发组件专栏 - RadioButton
RadioButton - 自定义RadioButton:改变文字上、下、左、右图片,可设置图片大小(宽高)
Android开发组件专栏 - TextView
Android开发组件专栏 - GridView
Android开发组件专栏 - CheckBox
CheckBox - 修改CheckBox选择框、设置选择框颜色
Android Studio 安装配置专栏
AS安装配置 - Android Studio 设置国内镜像网站
AS安装配置 - 在 Android Studio 中配置的忽略文件
AS安装配置 - 在Android Studio中配置SVN及仓库代码管理
AS安装配置 - Android Studio 下载 Gradle 失败或下载速度慢的解决方案
AS安装配置 - Android Studio中gradle项目构建
AS安装配置 - Android Studio新建工程并安装Genymotion模拟器
Android开发问题汇总
Android开发问题汇总 - 极光:Unable to get provider cn.jpush.android.service.DownloadProvider
Android开发问题汇总 - Fragment中嵌套Fragment,不显示
Android开发问题汇总 - Lint found fatal errors while assembling a release target
Android开发问题汇总 - Android 更换 APP Logo 无效问题处理
Android开发问题汇总 - Android WebView 加载闪退问题处理(Error inflating class android.webkit.WebView)
Android开发问题汇总 - Gradle插件升级与AAPT2编译和打包资源工具相关问题
Apple macOS 开发环境搭建专栏
macOS 开发环境搭建 - macOS中配置JDK环境变量
macOS 开发环境搭建 - macOS配置Android SDK 环境变量
macOS 开发环境搭建 - macOS中安装node.js
macOS 开发环境搭建 - Mac中NTFS格式文件的读写
Apple Objective-C 专栏
Objective-C - Objective-C中的方法说明
Objective-C - Objective-C中编程小技巧
Objective-C - Objective-C中NULL与nil的区别
Objective-C - Objective-C中类是如何存储在内存中的
Objective-C - Objective-C中的访问权限
Objective-C - Objective-C中类的声明与实现
Objective-C - Objective-C中NSString的使用
Objective-C - Objective-C中注释和函数的定义
Objective-C - Objective-C中@符号说明
Objective-C - import指令与include指令的区别
Apple开发问题汇总
Apple开发问题汇总 - Objective-C中异常处理
CMD终端命令专栏
CMD终端命令 - 使用adb命令导出设备中安装的APP中的数据库(DB)文件
CMD终端命令 - 使用adb命令对连接设备进行截图,并保存到电脑
Code代码托管专栏
Code代码托管专栏 - Git
Git - SmartGit(试用期30后),个人继续使用的方法
Code代码托管专栏 - SVN
Code代码托管专栏 - Maven中央仓库
Maven中央仓库 - 发布项目至maven中央仓库汇总(流程+问题)
Maven中央仓库 - 将你自己的项目发布到maven中央仓库
Code代码托管专栏 - TFS
TFS - Android Studio 集成 TFS,实现安卓移动开发的持续集成和交付(DevOps)
TFS - Team Foundation 使用git克隆或者拉取,显示验证失败
Hexo博客搭建专栏
Hexo博客搭建 - Hexo + Butterfly + GitHub/Coding 搭建个人独立博客
Hexo博客搭建 - Hexo + Coding 搭建博客之自定义域名的坑
Hexo博客搭建 - 站点访问人数 Buszanui 插件数据统计错误
Hexo博客搭建 - Valine评论插件报错:Code 403
Hexo博客搭建 - Butterfly 最新评论 newest-comments 401
Java语法专栏
MarkDown 专栏
MarkDown - MarkDown页面添加锚点,跳转到本页指定位置
MarkDown - 开发工具总结(5)之Markdown语法图文全面详解及其工具介绍
前端专栏
前端 - Android JsBridge实战 打造专属你的Hybrid APP
数据库专栏
混合开发 Ionic 专栏
Ionic - Ionic创建项目失败Error:read ETIMEDOUT解决方案
Ionic - Ionic 3 项目实战------自定义插件
Ionic - Ionic 3 项目实战------项目开发目录
Ionic - Ionic 3 项目实战------插件原理
Ionic - Ionic 3 项目实战------创建项目
Ionic - Ionic 3 插件应用:plugin基本知识了解
Ionic - Ionic 介绍、安装、配置、项目不同平台编译、DeBug调试经验总结
混合开发 Hybrid 专栏
Hybrid - Hybrid APP 混合开发模式的选择之路(六:JSBridge—Native代码与JS代码的通信桥梁)
Hybrid - Hybrid APP 混合开发模式的选择之路(五:原生和H5的交互原理)
Hybrid - Hybrid APP 混合开发模式的选择之路(四)
Hybrid - Hybrid APP 混合开发模式的选择之路(三)
Hybrid - Hybrid APP 混合开发模式的选择之路(二)
Hybrid - Hybrid APP 混合开发模式的选择之路(一)
第三方开发API专栏
算法专栏
面试技巧专栏
面试题 - Android 专栏
博客推荐
面试题 - Java 专栏
Java面试题 - Java基础面试题:String与StringBuffer的区别
Java面试题 - Java基础面试题:int 与 Integer 的区别
Java面试题 - Java基础面试题:使用最快的效率将2变成8