自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 重新认识 Android 图片适配

文章目录0. 前言1. 关于适配2. 图片适配3. 源码分析4. 总结 0. 前言 Android 图片适配,真的不是你想像的那样,至少在写这篇文章之前,我陷在一个很大很大的误区中。 1. 关于适配 所有关于适配的基本概念,这里不多介绍,资料有很多。下面只介绍点比较重要的部分。 等级 密度...

2019-11-29 21:54:58 76 0

原创 Android线程间通信

文章目录0. 前言1. 判断代码执行的线程2. 使用 View.post3. 使用 Activity.runOnUiThread4. 使用 Handler.post5. 使用 EventBus6. 传递数据 0. 前言 Android 系统中,应用在运行时是一个独立的进程,但是每个进程中可以包含多...

2019-11-16 21:12:50 179 0

原创 AndroidManifest 合并冲突处理

文章目录0. 前言1. 优先级定义1.1 构建变体清单文件1.2 应用主模块清单文件1.3 库模块及依赖库清单文件2. 隐式系统权限3. 合并规则4. 属性标记5. 节点标记6. 常见问题 0. 前言 AndroidStuido 采用模块化构建工程的方式,每个模块配置一个 AndroidManif...

2019-11-09 23:07:51 146 0

原创 Hexo 建站手札——进阶

0. 前言 基础篇讲到了如何使用 Hexo 建站。包括基本命令使用及获取到源码之后的一些简单工程配置。 下面将介绍,如何给博客添加 评论、背景音乐、点击特效、字数统计等功能。 文章内容多数内容皆来自于TRHX 的文章Hexo 博客主题个性化。 友情提示,本文篇幅太长,建议结合目录选择性的浏览。...

2019-11-03 16:40:06 145 0

原创 Hexo 建站手札——基础

文章目录0. 前言1. 准备工作1.1 创建仓库2. Hexo 常用命令2.1 创建目录2.2 启动服务2.3 部署博客3. 初始化博客4. 个性化配置4.1 修改站点 logo 和 标题4.2 修改主页标题4.3 修改用户LOGO4.4 修改作者信息4.5 配置菜单4.6 配置导航栏4.7 使...

2019-11-03 16:22:08 74 0

原创 自建 Maven 仓库

文章目录0. 前言1. 集成 Maven2. 导出到 Maven3. 使用 Maven 仓库 0. 前言 自从公司使用 Maven 仓库管理代码后,一直想着有一个自己的代码仓库。虽然写的代码不多,但是不影响 Get 一项新技能。 1. 集成 Maven 由于本人是做 Android 开发,于是通过...

2019-10-20 11:05:25 163 0

原创 使用 Gradle 配置 Android 工程

文章目录0. 前言1. 准备工作2. 基本概念2.1. Module2.2. Project2.3. buildType & productFlavor3. 工程结构4. 配置 Project4.1. 构建脚本4.2. 全工程配置4.3. 扩展变量4.4. 加载配置文件5. 配置 Mod...

2019-10-19 12:15:02 233 0

原创 Broadcast专讲

0. 前言 最近遇到一个问题,在做培训时,屡试不爽的广播消息竟然存在接收不到广播的情况。经了解后发现,Android O 已对隐式广播添加限制。so,下面总结下 Android 中广播相关。 1. 广播注册 广播注册分为静态注册和动态注册,静态注册的广播,可以在程序没被启动时,接收到全局广播消息。...

2019-09-27 22:58:46 21 0

原创 你既言而无信,我即出尔反尔

文章目录0. 前言1. 现状2. 一探究竟3. 何方神圣4. 结束语 0. 前言 写这篇文章的初衷,是因为自己的文章被盗用了。盗用到什么程度呢?见下图: 唯一的区别是,图中三个版本的 AndroidStudio 下载是超链接 。后面只当纯文本格式复制过来了。 特别受打击的是原创的阅读量只有 1...

2019-08-29 15:04:54 199 0

原创 弄懂 APK 签名

文章目录1. apksigner1.1. 签名1.2. 校验2. jarsigner2.1. 签名2.2. 校验3. zipalign 1. apksigner google 官方提供的 apk 文件签名工具。支持 V1 和 V2 签名规则。 V1是对 apk 中每个文件进行签名校验。使用 V1...

2019-07-05 23:05:49 196 0

原创 Gradle构建Java工程

0. 前言 主要讲使用 eclipse 和 idea 创建 gradle 工程,以及基于现有工程添加 grale 支持。 更多关于 gradle 的高级用法,请见后续博文。 使用之前,建议先下载最新版本 gradle 组件 存在本地目录,便于后面快速创建新工程。 1. idea 最先接触 grad...

2019-06-22 13:33:36 374 0

原创 探索文件加解密

文章目录0. 前言1. 分析2. 线性变换3. 奇偶置换4. 分块加密 0. 前言 这篇文章主要介绍加密算法的另一使用场景——文件加解密。事实上,已于 16 年实现过加密文件的功能并用于公司的项目中。确保安全的前提下,此次分享只介绍些简单的加密方法和实现过程。更高级深入的研究还请自行解决。 前面介...

2019-05-09 23:37:58 129 0

原创 编码、摘要和加密(三)——数据加密

文章目录0. 前言1. 相关概念1.1 密钥1.2 加密模式1.2.1 电子密码本模式1.2.2 加密块链模式1.2.3 加密反馈模式1.2.4 输出反馈模式1.3 填充模式2. 代码实现2.1 DES2.2 3DES2.3 AES2.4 RSA 0. 前言 关于加密,此处没有更加通俗易懂的解释...

2019-05-07 23:50:13 179 0

原创 编码、摘要和加密(二)——信息摘要

文章目录0. 前言1. 相关代码2. 用途2.1 计算字符串2.2 计算文件3. 总结 0. 前言 信息摘要,英译 Message Digest 。看见首字母这么大的 M 、D有没有立即联想到 MD5 算法。其实 MD5算法只是目前比较流行的信息摘要算法,在它之前,还出现过 MD2 MD4,以及目...

2019-04-29 22:25:55 314 0

原创 编码、摘要和加密(一)——字节编码

文章目录0. 前言1. 编码介绍2. 十六进制编码2.1 概念2.2 换算2.3 代码实现3. Base64 编码3.1 概念3.2 换算3.3 代码实现 0. 前言 之所以取这个题目,是因为在面试的过程中,许多求职者对问题“请列举常用的加密算法”给出了比较普遍的回答:“用过 MD5 和 Base...

2019-04-28 23:25:10 323 0

原创 Activity 专讲

0 前言 作为 Android 开发中的四大组件之一以及 Android 设备与用户交互的媒介, Activity 的相关用法应作为 Android 开发入门学习的重要知识点。 1 注册 Activity 在创建HelloWord 工程时, AndroidStudio 会生成一个 AndroidM...

2019-02-24 18:14:20 76 0

原创 Android 数据存储——SQLite

文章目录0 前言1 创建数据库1.1 create1.2 openDatabase1.3 openOrCreateDatabase1.4 SQLiteOpenHelper1.5 使用场景2 插入数据3 删除数据4 更新数据5 查询数据6 事务7 结束语 0 前言 SQLite,是一款轻型的数据库,...

2019-01-31 15:43:54 371 0

原创 使用OpenGrok阅读源码

文章目录0 前言1 准备工作1.1 Java 环境1.2 Tomcat 服务1.3 Universal Ctags2 配置 Open Grok2.1 下载2.2 解压 source.war2.3 添加 data root2.4 添加 source root2.5 配置configuration.x...

2019-01-20 14:53:40 637 3

原创 NDK开发入门终极教程

文章目录0 前言1 准备工作1.1 下载 NDK1.2 添加NDK依赖1.3 添加cmake支持2 新建支持NDk工程3 给工程添加NDK支持3.1 cmake3.2 ndk-build4 实践4.1 生成头文件4.2 编写 C 源码4.3 运行截图5 源码获取 0 前言 同NDK技术的渊源始于3...

2019-01-13 17:24:20 635 0

原创 使用Android Profile做性能分析及优化

前言 做Android开发五年,开发工具从最初的eclipse+ADT插件到AndroidStduio。Google更是在新版的AndroidStudio中集成了Android应用性能分析利器——Profile。 本文基于AndroidStudio 3.2.1 正式版进行分析并定位问题原因。附上下...

2019-01-06 17:08:37 689 0

原创 使用PlantUML绘制类图

本文基于sublime的PlantUML插件绘制类图。如需了解插件安装,请点击Sublime安装PlantUML插件 类的UML表示 使用UML表示一个类,主要由三部分组成。类名、属性、方法。其中属性和方法的访问修饰符用 - 、# 、+ 表示 private、protected、public。 ...

2018-12-05 09:44:28 2857 1

原创 Sublime安装PlantUML插件

文章目录安装 graphviz安装Sublime Text安装PlantUml配置快捷键添加依赖jar验证 安装 graphviz Graphviz的是AT&T Labs Research开发的图形绘制工具,他可以很方便的用来绘制结构化的图形网络,支持多种格...

2018-12-04 19:53:13 754 0

原创 给Android工程添加依赖

文章目录前言依赖jar依赖aar依赖module依赖外部module依赖远程库 前言 前一篇博客详细讲了怎样创建一个安卓工程,见从零构建Android工程,今天在它的基础上演示怎样对主工程添加依赖。 进入主题之前,先声明下,build版本3.x以上已不在支持compile指令,使用implemen...

2018-12-01 13:45:34 1406 1

原创 从零构建Android工程

文章目录新建工程目录新建主module目录添加启动Activity结束语 新建工程目录 新建文件夹Demo,用AndroidStudio打开。 新建build.gradle文件,添加如下类容: buildscript { repositories{ jcenter() ...

2018-11-29 10:32:16 205 0

原创 Android实现水波浪效果

前言 效果图 原理 实现 自定义属性 代码 初始化参数 测量高度 绘制并刷新波浪 叠加使用 前言 讲真,这不算一个新的课题。早在几个月之前就已经有大神开源了水波浪效果的代码。由于工作关系,一直未能拜读。直至近期公司项目有需要,才决定去接触下该效果。 同时申明一下,在能力范...

2018-07-14 18:34:29 2686 1

原创 自定义Android键盘

前言 相关属性 Keyboard Row Key KeyboardView 自定义键盘 布局 字母键盘布局 数字键盘布局 逻辑 回显 备选小键盘 前言 前段时间改造了公司的安全键盘,是基于Dialog和Button自定义的。也因此借机了解下 Android 平台提...

2018-04-26 06:13:04 2409 4

原创 使用Shell批量删除AndroidStudio build目录

前言 shell 脚本 遍历目录 脚本内容 脚本测试 删除build目录 脚本内容 脚本测试 总结 前言 多数Android程序猿都有一个痛,使用AndroidStudio开发安卓项目时,build目录占用太多存储空间。在没有版本控制工具的情况下,一些没有经验的An...

2018-04-12 16:25:37 711 0

原创 仿QQ空间的透明标题头

目标 思路 实现 结束语目标先看看QQ空间的样式。透明背景标题头白色背景标题头思路滚动页面时,当背景头部消失后,标题背景变成白色。即计算滑动距离,根据距离计算需要变更标题背景的时机,标题浮动在滚动视图上面。布局有两种设计方法:方案一:<RelativeLayout> <S...

2017-11-03 23:55:53 469 0

原创 Java中的排序——高级用法

前言 定义排序注解类 定义通用排序器测试代码 扩展 前言上一篇文章中提到,怎样造一个轮子既适用于文件的排序又适用于商品的排序。Java给我们提供了两个很强大的功能:反射、注解。思路:用注解声明对象属性的排序要求,再用反射获取到对象属性的值,进行排序比较。定义排序注解类@Retention(Rete...

2017-10-28 11:02:33 511 0

原创 浅谈 Java 中的排序

前言 认识Comparable和Comparator 认识Comparable 认识Comparator 例子 使用Comparable 使用Comparator 运行测试 高级用法 对单个字段排序 介绍 hashCode 抽象通用排序器 对多个字段关联排序 前言进来不要失望,这不是一篇讲排序...

2017-10-28 11:01:28 311 0

翻译 Kotlin类和对象(四)——扩展和data类

扩展 扩展函数 静态解析扩展 可空的接收者 扩展属性 扩展伴随对象 扩展的域 声明扩展做成员 动机 data类 复制 data 类与解构声明 标准 data 类扩展与C#和Gosu类似,Kotlin提供既不使用继承也不使用任何类型的设计模式(如装饰者模式)扩展新功能类的能力。这种通过特殊声明的操作...

2017-10-23 23:59:08 569 0

翻译 Kotlin类和对象(三)——接口与访问修饰符

接口 实现接口 接口中的属性 解决重写冲突 访问修饰符 包 类和接口 构造函数 局部声明 模块 接口Kotlin的接口和Java 8的接口很相似。它们可以包含抽象方法也可以包含方法的实现。与抽象类不同的地方在于,接口不可以存储状态。它们可以拥有属性,但是必须是抽象的或者提供访问器的实现。使用关键词...

2017-10-22 17:05:49 267 0

翻译 Kotlin类和对象(二)——属性和字段

声明属性 getter和setter 幕后字段 幕后属性 编译时常量 延迟初始化属性 重写属性 委托属性 声明属性Kotlin中的类可以有属性,它们可以被声明成可变的var可以被声明成只读val的。class Address { var name: String = ... v...

2017-10-21 14:02:12 402 0

原创 Git 命令汇总

创建版本库 把文件添加到版本库 查看版本库 版本回退 撤销修改 未提交暂存区 已提交暂存区 已提交版本库 删除文件 添加远程库 克隆远程库 创建分支 合并分支 强制合并分支 保存工作现场 强制删除分支 合作开发 创建标签 操作标签 配置别名创建版本库$ mkdir git_repo //创建文件夹...

2017-10-08 20:46:25 264 0

原创 程序猿必备资源清单(安卓居多)

## [Gota](https://github.com/alhazmy13/Gota)Android 6.0 动态权限适配。### 安装>Maven<dependency> <groupId>net.alhazmy13.Gota</groupId> &l...

2017-10-05 21:44:51 444 0

原创 Kotlin say Hello Android

前言试水Kotlin有一段时间了,纸上得来终觉浅,绝知此事要躬行。所以在继续翻译官方文档之前,先瞅瞅怎么用它进行Android开发。开发环境我就比较偷懒了,3.0版本已经集成了Kotlin语言的编译环境。这样省去好多麻烦。新建项目同建立Java版项目一样,只不过新版AndroidStudio已经支...

2017-09-11 14:50:37 424 0

翻译 Kotlin类和对象(一)——类与继承

类 构造器 创建类的实例 类成员 继承 重写方法 重写属性 重写规则 抽象类 伴生对象 类Kotlin中使用关键词class声明类。class Invoice{ }类的声明有类名、类头(尤其是类型参数、主构造函数等等)、类体组成,用花括号圈起。类头和类体都是可选的,如果类体为空,那么花裤OAO可以...

2017-09-04 15:51:52 337 0

翻译 Kotlin基础(二)——包、控制流、返回和跳转

包 默认导入 自定义导入 顶层声明的权限 控制流 if表达式 when表达式 for循环 while循环 循环内的break和continue 返回和跳转 break和continue标签 return到标签 包源文件可能开始于包的声明package foo.bar fun baz() {} ...

2017-08-30 11:35:26 254 0

翻译 Kotlin基础(一)——基本类型

Kotlin中,任何感官上的事务都是对象,我们可以调用任何变量的成员函数和成员属性。某些类型在实现时经过优化,它们在构建时生成,但是对程序员而言,就像使用普通类一样。在这一节将描述这些类型:Numbers、Characters、Booleans和Arrays。NumbersKotlin处理数字的方...

2017-08-28 17:13:56 354 0

翻译 Kotlin入门

基本句法 定义包名 定义函数 定义本地变量 注释 使用字符串模板 使用条件表达式 使用nullable和校验null 使用类型检查和类型自动转化 使用for循环 使用while循环 使用when表达式 使用序列 使用集合 风格 创建DTOsPOJOsPOCOs 函数参数默认值 筛选list 插入字...

2017-08-27 14:32:44 247 0

提示
确定要删除当前文章?
取消 删除