- 博客(78)
- 资源 (8)
- 收藏
- 关注
原创 Arch 编译 Android 11 源码
文章目录环境准备下载源码下载 repo 工具repo init 原理初始化仓库选择同步指定分支同步代码编译代码遇到的错误很多人都写,如何在 Ubuntu 下编译 Android 源码。今天,标新立异一次。环境准备本次编译基于 Arch 系统。需要安装些开发组件,比较容易。sudo pacman -S base-devel至于 jdk 环境,有人说需要安装 open jdk 8 ,但是看 Android 源码中,prebuilts 目录下有提供 jdk 目录。下载源码国内下载源码,一般通过清华
2021-01-23 14:53:12 1280
原创 Arch 定制化安装与美化
文章目录安装 gnome 显示管理添加 archlinuxcn 源浏览器中文字体gnome 美化终端美化 zsh设置中心网络文件管理中文与输入法其他常用软件Arch 最大的魅力在于,他的高度可定制化安装。网上有提供好的资源,只需往系统中集成即可。但是有很多教程在图形化界面安装方面比较千篇一律。不论组件是否需要,全部安装。最终导致系统体积较大。此篇教程的目的在于,最少化安装组件。装出最轻的系统。在前一篇教程的基础上,开始吧。启动系统,登录个人账户(非root账户)。安装 gnome 显示管理有打包好
2021-01-23 11:43:49 2258
原创 Arch安装并不难
介绍Arch 安装教程,支持UEFI和BIOS两种方式。官方教程地址。环境准备真机引导模式在真机上装 Arch ,尤其是准备装双系统,建议了解下自己主板兼容的引导模式。开机时 按下 F2 键,进入主板系统界面。如图示的主板信息,支持 Legacy (传统模式,记BIOS)和 UEFI 模式。不同的模式,在后续分区操作、安装引导程序时略有区别。如需安装爽系统,建议使用 UEFI 模式。制作启动盘Arch 系统镜像比较小,约 700MB 。官方下载地址,通常比较慢,建议使用国内镜像下载地址:清华
2021-01-22 22:41:14 625
原创 重新认识 Android 图片适配
文章目录0. 前言1. 关于适配2. 图片适配3. 源码分析4. 总结0. 前言Android 图片适配,真的不是你想像的那样,至少在写这篇文章之前,我陷在一个很大很大的误区中。1. 关于适配所有关于适配的基本概念,这里不多介绍,资料有很多。下面只介绍点比较重要的部分。等级密度比例ldpi120dpi1dp=0.75pxmdpi160dpi1dp=1p...
2019-11-29 21:54:58 413
原创 Android线程间通信
文章目录0. 前言1. 判断代码执行的线程2. 使用 View.post3. 使用 Activity.runOnUiThread4. 使用 Handler.post5. 使用 EventBus6. 传递数据0. 前言Android 系统中,应用在运行时是一个独立的进程,但是每个进程中可以包含多个线程提高运行效率。在多线程开发中,有一个很重要的原则:不能在子线程中更新 UI 。Only t...
2019-11-16 21:12:50 409
原创 AndroidManifest 合并冲突处理
文章目录0. 前言1. 优先级定义1.1 构建变体清单文件1.2 应用主模块清单文件1.3 库模块及依赖库清单文件2. 隐式系统权限3. 合并规则4. 属性标记5. 节点标记6. 常见问题0. 前言AndroidStuido 采用模块化构建工程的方式,每个模块配置一个 AndroidManifest.xml ,甚至每个构建类型、产品特性都可以配置一个 AndroidManifest.xml。最...
2019-11-09 23:07:51 2715
原创 Hexo 建站手札——进阶
0. 前言基础篇讲到了如何使用 Hexo 建站。包括基本命令使用及获取到源码之后的一些简单工程配置。下面将介绍,如何给博客添加 评论、背景音乐、点击特效、字数统计等功能。文章内容多数内容皆来自于TRHX 的文章Hexo 博客主题个性化。友情提示,本文篇幅太长,建议结合目录选择性的浏览。1. 添加评论material-x 主题已经集成了四个评论系统。暂时只介绍用过的两个。1.1 使...
2019-11-03 16:40:06 593
原创 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 使用 icon4.8 配置部署0. 前言2016 年 2 月,写了工作中第一篇博客。至今快 4 年时...
2019-11-03 16:22:08 455
原创 自建 Maven 仓库
文章目录0. 前言1. 集成 Maven2. 导出到 Maven3. 使用 Maven 仓库0. 前言自从公司使用 Maven 仓库管理代码后,一直想着有一个自己的代码仓库。虽然写的代码不多,但是不影响 Get 一项新技能。1. 集成 Maven由于本人是做 Android 开发,于是通过集成 Maven 的 Gradle 插件,生成对应的 aar 和 jar 库。在 Module 的 ...
2019-10-20 11:05:25 1033
原创 使用 Gradle 配置 Android 工程
文章目录0. 前言1. 准备工作2. 基本概念2.1. Module2.2. Project2.3. buildType & productFlavor3. 工程结构4. 配置 Project4.1. 构建脚本4.2. 全工程配置4.3. 扩展变量4.4. 加载配置文件5. 配置 Module5.1. 加载插件5.2. 使用SDK5.3. 默认配置5.4. 签名配置5.5. 构建类型5....
2019-10-19 12:15:02 658
原创 Broadcast专讲
0. 前言最近遇到一个问题,在做培训时,屡试不爽的广播消息竟然存在接收不到广播的情况。经了解后发现,Android O 已对隐式广播添加限制。so,下面总结下 Android 中广播相关。1. 广播注册广播注册分为静态注册和动态注册,静态注册的广播,可以在程序没被启动时,接收到全局广播消息。而动态注册广播,只有在程序启动后接收广播消息。1.1 静态注册定义好广播消息后,在 Android...
2019-09-27 22:58:46 210
原创 你既言而无信,我即出尔反尔
文章目录0. 前言1. 现状2. 一探究竟3. 何方神圣4. 结束语0. 前言写这篇文章的初衷,是因为自己的文章被盗用了。盗用到什么程度呢?见下图:唯一的区别是,图中三个版本的 AndroidStudio 下载是超链接 。后面只当纯文本格式复制过来了。特别受打击的是原创的阅读量只有 1105,而盗用的阅读量却有 2375。1. 现状很多程序猿在寻找问题的解决方法时,都喜欢 Goog...
2019-08-29 15:04:54 663
原创 弄懂 APK 签名
文章目录1. apksigner1.1. 签名1.2. 校验2. jarsigner2.1. 签名2.2. 校验3. zipalign1. apksignergoogle 官方提供的 apk 文件签名工具。支持 V1 和 V2 签名规则。V1是对 apk 中每个文件进行签名校验。使用 V1 规则的 apk 在解压之后二次打包压缩后可以安装。V2是在 V1 的基础上,对 apk 文件进行...
2019-07-05 23:05:49 811
原创 Gradle构建Java工程
0. 前言主要讲使用 eclipse 和 idea 创建 gradle 工程,以及基于现有工程添加 grale 支持。更多关于 gradle 的高级用法,请见后续博文。使用之前,建议先下载最新版本 gradle 组件 存在本地目录,便于后面快速创建新工程。1. idea最先接触 gradle 是因为做 Android 开发。 AndroidStudio 是基于 IntelliJ IDEA...
2019-06-22 13:33:36 1103
原创 探索文件加解密
文章目录0. 前言1. 分析2. 线性变换3. 奇偶置换4. 分块加密0. 前言这篇文章主要介绍加密算法的另一使用场景——文件加解密。事实上,已于 16 年实现过加密文件的功能并用于公司的项目中。确保安全的前提下,此次分享只介绍些简单的加密方法和实现过程。更高级深入的研究还请自行解决。前面介绍了常见的加解密算法和 Java 语言的实现,使用场景一般是在数据通信领域的报文加密。还记的 Alic...
2019-05-09 23:37:58 391
原创 编码、摘要和加密(三)——数据加密
文章目录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 RSA0. 前言关于加密,此处没有更加通俗易懂的解释。与同是对于字节类型数据处理的编码和摘要对比:编码是可逆的,任何人只要知道编码规则,就能够进行解码...
2019-05-07 23:50:13 420
原创 编码、摘要和加密(二)——信息摘要
文章目录0. 前言1. 相关代码2. 用途2.1 计算字符串2.2 计算文件3. 总结0. 前言信息摘要,英译 Message Digest 。看见首字母这么大的 M 、D有没有立即联想到 MD5 算法。其实 MD5算法只是目前比较流行的信息摘要算法,在它之前,还出现过 MD2 MD4,以及目前仍然在用的安全散列算法(Secure Hash Algorithm) SHA1 和 SHA256都属...
2019-04-29 22:25:55 1114
原创 编码、摘要和加密(一)——字节编码
文章目录0. 前言1. 编码介绍2. 十六进制编码2.1 概念2.2 换算2.3 代码实现3. Base64 编码3.1 概念3.2 换算3.3 代码实现0. 前言之所以取这个题目,是因为在面试的过程中,许多求职者对问题“请列举常用的加密算法”给出了比较普遍的回答:“用过 MD5 和 Base64 ”,更有甚者说,“ Base64 是对称加密, MD5 是非对称加密”。那么,通过接下来的三篇文...
2019-04-28 23:25:10 945
原创 Activity 专讲
0 前言作为 Android 开发中的四大组件之一以及 Android 设备与用户交互的媒介, Activity 的相关用法应作为 Android 开发入门学习的重要知识点。1 注册 Activity在创建HelloWord 工程时, AndroidStudio 会生成一个 AndroidManifest.xml 文件。并添加了类似于下面的代码。<activity android:n...
2019-02-24 18:14:20 200
原创 Android 数据存储——SQLite
文章目录0 前言1 创建数据库1.1 create1.2 openDatabase1.3 openOrCreateDatabase1.4 SQLiteOpenHelper1.5 使用场景2 插入数据3 删除数据4 更新数据5 查询数据6 事务7 结束语0 前言SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的...
2019-01-31 15:43:54 957
原创 使用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.xml2.6 启动OpenGrok3 添加源码目录0 前言打算本周再写一篇关于Android的文章,...
2019-01-20 14:53:40 1286 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年前,使用so文件的时候了解到NDK技术,并且C语言一直是强项,就鼓捣起NDK开发。在AndroidS...
2019-01-13 17:24:20 1614
原创 使用Android Profile做性能分析及优化
前言做Android开发五年,开发工具从最初的eclipse+ADT插件到AndroidStduio。Google更是在新版的AndroidStudio中集成了Android应用性能分析利器——Profile。本文基于AndroidStudio 3.2.1 正式版进行分析并定位问题原因。附上下载地址:Windows版下载Mac版下载Linux版下载概览在AndroidStudi...
2019-01-06 17:08:37 1225
原创 使用PlantUML绘制类图
本文基于sublime的PlantUML插件绘制类图。如需了解插件安装,请点击Sublime安装PlantUML插件类的UML表示使用UML表示一个类,主要由三部分组成。类名、属性、方法。其中属性和方法的访问修饰符用 - 、# 、+ 表示 private、protected、public。如图所示,表示A类有一个private属性,protected 构造函数和public方法。@sta...
2018-12-05 09:44:28 6756 1
原创 Sublime安装PlantUML插件
文章目录安装 graphviz安装Sublime Text安装PlantUml配置快捷键添加依赖jar验证安装 graphvizGraphviz的是AT&amp;amp;amp;T Labs Research开发的图形绘制工具,他可以很方便的用来绘制结构化的图形网络,支持多种格式输出,生成图片的质量和速度都不错。(摘自百度百科)Mac 安装 graphviz只需一条命令。brew install grap...
2018-12-04 19:53:13 2352
原创 给Android工程添加依赖
文章目录前言依赖jar依赖aar依赖module依赖外部module依赖远程库前言前一篇博客详细讲了怎样创建一个安卓工程,见从零构建Android工程,今天在它的基础上演示怎样对主工程添加依赖。进入主题之前,先声明下,build版本3.x以上已不在支持compile指令,使用implementation或api。假设有两个 module A 和 B,并且 A 依赖 B。如果在 B 中使用im...
2018-12-01 13:45:34 2414 1
原创 从零构建Android工程
文章目录新建工程目录新建主module目录添加启动Activity结束语新建工程目录新建文件夹Demo,用AndroidStudio打开。新建build.gradle文件,添加如下类容:buildscript { repositories{ jcenter() google() } dependencies{ // ...
2018-11-29 10:32:16 325
原创 Android实现水波浪效果
前言效果图原理实现自定义属性代码初始化参数测量高度绘制并刷新波浪叠加使用前言讲真,这不算一个新的课题。早在几个月之前就已经有大神开源了水波浪效果的代码。由于工作关系,一直未能拜读。直至近期公司项目有需要,才决定去接触下该效果。同时申明一下,在能力范围之内,楼主愿意不惜一切时间代价去造轮子,因为出现bug时,改自己熟悉的代码会很省事。同时也是对...
2018-07-14 18:34:29 4194 5
原创 自定义Android键盘
前言相关属性KeyboardRowKeyKeyboardView自定义键盘布局字母键盘布局数字键盘布局逻辑回显备选小键盘前言前段时间改造了公司的安全键盘,是基于Dialog和Button自定义的。也因此借机了解下 Android 平台提供的自定义键盘接口。主要有两个类:Keyboard和KeyboardView。很搞笑的是,百度出来自定...
2018-04-26 06:13:04 3591 4
原创 使用Shell批量删除AndroidStudio build目录
前言shell 脚本遍历目录脚本内容脚本测试删除build目录脚本内容脚本测试总结前言多数Android程序猿都有一个痛,使用AndroidStudio开发安卓项目时,build目录占用太多存储空间。在没有版本控制工具的情况下,一些没有经验的Android开发者会将自己的程序直接打包发送给别人。这样的代码包,少则几十兆,多则数百兆,其中多数都是b...
2018-04-12 16:25:37 1218
原创 仿QQ空间的透明标题头
目标思路实现结束语目标先看看QQ空间的样式。透明背景标题头白色背景标题头思路滚动页面时,当背景头部消失后,标题背景变成白色。即计算滑动距离,根据距离计算需要变更标题背景的时机,标题浮动在滚动视图上面。布局有两种设计方法:方案一:<RelativeLayout> <ScrollView> <!-- 滚动视图内容 --> <LinearLayout>
2017-11-03 23:55:53 659
原创 Java中的排序——高级用法
前言定义排序注解类定义通用排序器测试代码扩展前言上一篇文章中提到,怎样造一个轮子既适用于文件的排序又适用于商品的排序。Java给我们提供了两个很强大的功能:反射、注解。思路:用注解声明对象属性的排序要求,再用反射获取到对象属性的值,进行排序比较。定义排序注解类@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.FIELD)publ
2017-10-28 11:02:33 900
原创 浅谈 Java 中的排序
前言认识Comparable和Comparator认识Comparable认识Comparator例子使用Comparable使用Comparator 运行测试高级用法对单个字段排序介绍 hashCode抽象通用排序器对多个字段关联排序前言进来不要失望,这不是一篇讲排序算法的文章。而是简要介绍 Java 中排序相关的类Comparator、Comparable以及Coll
2017-10-28 11:01:28 430
翻译 Kotlin类和对象(四)——扩展和data类
扩展扩展函数静态解析扩展可空的接收者扩展属性扩展伴随对象扩展的域声明扩展做成员动机data类复制data 类与解构声明标准 data 类扩展与C#和Gosu类似,Kotlin提供既不使用继承也不使用任何类型的设计模式(如装饰者模式)扩展新功能类的能力。这种通过特殊声明的操作叫做扩展。Kotlin支持函数扩展和属性扩展。扩展函数为声明一个函数扩展,我们需要给函数的名称添加一个接
2017-10-23 23:59:08 1268
翻译 Kotlin类和对象(三)——接口与访问修饰符
接口实现接口接口中的属性解决重写冲突访问修饰符包类和接口构造函数局部声明模块接口Kotlin的接口和Java 8的接口很相似。它们可以包含抽象方法也可以包含方法的实现。与抽象类不同的地方在于,接口不可以存储状态。它们可以拥有属性,但是必须是抽象的或者提供访问器的实现。使用关键词interface定义接口:interface MyInterface { fun bar()
2017-10-22 17:05:49 438
翻译 Kotlin类和对象(二)——属性和字段
声明属性getter和setter幕后字段幕后属性编译时常量延迟初始化属性重写属性委托属性声明属性Kotlin中的类可以有属性,它们可以被声明成可变的var可以被声明成只读val的。class Address { var name: String = ... var street: String = ... var city: String = ...
2017-10-21 14:02:12 611
原创 Git 命令汇总
创建版本库把文件添加到版本库查看版本库版本回退撤销修改未提交暂存区已提交暂存区已提交版本库删除文件添加远程库克隆远程库创建分支合并分支强制合并分支保存工作现场强制删除分支合作开发创建标签操作标签配置别名创建版本库$ mkdir git_repo //创建文件夹git_repo,该文件夹作为git版本库$ cd git_repo // 切换到git_repo目录
2017-10-08 20:46:25 369
原创 程序猿必备资源清单(安卓居多)
## [Gota](https://github.com/alhazmy13/Gota)Android 6.0 动态权限适配。### 安装>Mavennet.alhazmy13.Gotalibary1.4.1>gra
2017-10-05 21:44:51 675
原创 Kotlin say Hello Android
前言试水Kotlin有一段时间了,纸上得来终觉浅,绝知此事要躬行。所以在继续翻译官方文档之前,先瞅瞅怎么用它进行Android开发。开发环境我就比较偷懒了,3.0版本已经集成了Kotlin语言的编译环境。这样省去好多麻烦。新建项目同建立Java版项目一样,只不过新版AndroidStudio已经支持添加Kotlin语言支持 ,勾上支持,那么everything is OK!!!
2017-09-11 14:50:37 533
翻译 Kotlin类和对象(一)——类与继承
类构造器创建类的实例类成员继承重写方法重写属性重写规则抽象类伴生对象类Kotlin中使用关键词class声明类。class Invoice{}类的声明有类名、类头(尤其是类型参数、主构造函数等等)、类体组成,用花括号圈起。类头和类体都是可选的,如果类体为空,那么花裤OAO可以省略。class Empty构造器每个类,有一个主构造函数和一个或多个次构造函数。主构造函数是类头的一部
2017-09-04 15:51:52 455
NDK 开发示例源码
2007-06-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人