本文维护至2020-11-25,现已停止更新。

为了方便阅读博主博客,梳理了博主相关文章,本文将持续更新,记录博主开发过程中的成长经历,跳过开发中踩过的坑,快速实现移动端产品的开发、更新和迭代。

博主自2016年从事软件开发工作以来,深感敲代码的不易,重复的制造车轮子只是在浪费时间,作为一位优秀的开发者,应当利用好已有的优秀开源框架,将富余的时间用在研究底层技术上。

程序员那些事儿

程序员那些事儿 - Android开发经验、能力提升

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性能调优专栏

Android性能调优 - 在Android中解决内存溢出 – OutOfMemoryError

Android性能调优 - java.lang.OutOfMemoryError

Android性能调优 - Android性能优化之内存

Android性能调优 - Android UI性能优化


Android机型适配专栏

Android机型适配 - Android多语言那点事(支持8.0+)

Android机型适配 - Android官方建议关于Android APP UI界面设计的一些参考原则

Android机型适配 - UI设计基础知识点之Android设计规范篇

Android机型适配 - APP兼容不同的设备之适配不同的系统版本

Android机型适配 - APP兼容不同的设备之适配不同的屏幕

Android机型适配 - APP兼容不同的设备之适配不同的语言


Android开发组件专栏

Android的四大组件

Android开发组件专栏 - WebView

WebView - 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

TextView - 设置TextView显示文本倾斜

Android开发组件专栏 - GridView

GridView - 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模拟器

AS安装配置 - Android Studio的常用配置


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编译和打包资源工具相关问题

Android开发问题汇总 - 相机调用失败原因


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开发问题汇总 - iOS网络请求错误nw_proxy_resolver_create_parsed_array PAC evaluation error:NSURLErrorDomain:-1004

Apple开发问题汇总 - Objective-C中异常处理


CMD终端命令专栏

CMD终端命令 - ADB 命令使用,优质项目推荐

CMD终端命令 - 使用adb命令导出设备中安装的APP中的数据库(DB)文件

CMD终端命令 - 使用adb命令对连接设备进行截图,并保存到电脑

CMD终端命令 - Mac终端常用命令


Code代码托管专栏

Code代码托管专栏 - Git

Git - git 本地仓库和远程创库的同步

Git - git基本命令行

Git - windows 下修改git 登录账号密码

Git - 版本控制器SmartGit

Git - SmartGit(试用期30后),个人继续使用的方法

Code代码托管专栏 - SVN

SVN - 小乌龟SVN安装和使用

SVN - TortoiseSvn小乌龟安装教程

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语法专栏

Java语法 - 数组在声明时的小建议

Java语法 - Java数据类型转换


MarkDown 专栏

MarkDown - Markdown基本语法

MarkDown - MarkDown页面添加锚点,跳转到本页指定位置

MarkDown - 开发工具总结(5)之Markdown语法图文全面详解及其工具介绍


前端专栏

前端 - WebStorm代码输入提示忽略首字母大小写

前端 - WebStorm安装、配置、激活码

前端 - Android JsBridge实战 打造专属你的Hybrid APP


数据库专栏

数据库 - Android数据存储-DB(SQLite)


混合开发 Ionic 专栏

Ionic - 安装指定版本的Ionic或Cordova

Ionic - 取消npm代理或淘宝镜像

Ionic - Ionic创建项目失败Error:read ETIMEDOUT解决方案

Ionic - Ionic 3 项目实战——自定义插件

Ionic - Ionic 3 项目实战——项目开发目录

Ionic - Ionic 3 项目实战——插件原理

Ionic - Ionic 3 项目实战——创建项目

Ionic - Ionic 3 插件应用:plugin基本知识了解

Ionic - Ionic 3 项目的工程目录结构

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 混合开发模式的选择之路(一)

Hybrid - Hybrid APP 混合开发模式简介


第三方开发API专栏

第三方开发API - IM即时通讯


算法专栏

算法 - UUID 和 GUID 的区别

算法 - AES加密算法之Java简要应用

算法 - AES加密对称算法

算法 - 插入排序

算法 - 选择排序

算法 - 冒泡排序


面试技巧专栏

面试技巧 - 程序员面试指南

面试技巧 - 程序员面试问题,你最容易忽视的细节!

面试技巧 - 程序员面试→如何巧妙的谈薪资?


面试题 - Android 专栏

博客推荐

博客推荐 - Android面试题总结加强版(一)

博客推荐 - Android面试题总结加强版(二)

博客推荐 - Android面试题总结加强版(三)

博客推荐 - Android面试题总结加强版(四)


面试题 - Java 专栏

Java面试题 - Java基础面试题:String与StringBuffer的区别

Java面试题 - Java基础面试题:int 与 Integer 的区别

Java面试题 - Java基础面试题:使用最快的效率将2变成8


大数据专栏

大数据 - 大数据学习路线,如何学习大数据?

大数据 - 大数据?什么是大数据(大数据的概念)?大数据的价值?


评论