自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

技术笔记

生活工作中沉淀笔记,提升效率,自我成长

  • 博客(56)
  • 资源 (6)
  • 收藏
  • 关注

原创 Shell 脚本常用语法总结

计算机中 Shell 术语最早是在 1964 年 Multics 操作系统中定义的,作用是提供人机交互的操作界面,它会解释执行用户输入命令并输出结果。这篇文章主要介绍 Shell 脚本的语法,由于不同版本会有差异,本文采用的案例以覆盖最广泛的 Bash 为准,测试环境为 macOS 中的 Terminal。

2022-09-17 23:49:04 987 1

原创 Git 常用命令总结

Git 是一个开源的分布式版本控制系统,其本质上是一个内容寻址的 Key-Value 数据库。它有四种类型的存储对象:文件(blob)、树(tree)、提交(commit)、标签(tag),保存在 .git/objects/ 目录。如 Blob 对象会先添加头部信息 类型+内容字节数+空字节,然后计算 SHA 值作为文件名,使用 zlib 压缩成内容,每一次修改的文件都会完整的保存一份快照而非记录差异。这里列举常用的命令行,便于快速查阅使用。编辑文本文件后,在工作区可以看到修改的差异内容,将改动提交到暂存

2022-04-03 23:37:23 2055

原创 照片整理工具(日历相册, 重复文件清理, 手机照片同步, 图片尺寸缩减)

工具解决的问题:1. 根据照片的拍摄时间生成日历,用日期查看的相册;2. 根据 文件尺寸 + 文件名 + MD5 三个维度快速找出重复文件的工具;3. 使用 adb 同步手机照片,能快速进行增量备份和进度展示的工具;4. 可方便的修改图片压缩参数,且不丢失 EXIF 信息的缩减尺寸工具;

2022-03-20 23:51:00 2024

原创 Android 将多个模块生成一个 AAR 后提供 SDK

Android Gradle 打包每个库工程都会导出一个 AAR 文件。之前有尝试使用第三方插件 fat-aar 来合并打包,但打包时经常报错,合并时间也略长。此外此次导出的 SDK 需要做代码混淆,如果对每一个库都进行混淆文件非常麻烦,不便于统一管理,也不便于统一暴露接口。工程库之间的引用逻辑比较多,也增加了导包的配置成本,此外还要支持 AIDL 合并。GitHub源码地址:https://github.com/RuiRay/MergeModuleAAR这里选择将多个工程库合并到一个工程库后再打包的方

2022-03-15 00:32:21 3861

原创 Android 使用 ProGuard 代码混淆

ProGuard 是开源的优化 Java 字节码工具。官方称可用减少 10% 体积,并提升 20% 运行效率。将类名、方法名、变量名混淆成a、b、c基本字母,一定程度上提高了反编译的难度。压缩(Shrinking):从入口开始建立引用关系网,去除网外为使用的代码。优化(Optimization):对入口点以外所有的方法进行分析,将其中一部分方法变为 final的,static的,private的或内联的,从而提高执行效率。混淆(Obfuscation):将入口点以外的类、方法、成员重构为简

2022-03-14 23:52:40 3576

原创 透明度百分比对应关系表

百分比透明度与ARGB中的Alpha的16进制对应关系

2022-03-13 17:24:33 829 1

原创 重新认识 Gradle 打包

Gradle 是什么,Android 打包插件,AAR 文件,AS 如何快速打包...

2017-10-16 10:34:44 374

原创 Eclipse for Android 开发环境搭建及各种坑

Eclipse 下载、配置和其中遇到的异常...

2017-10-16 10:31:19 12014

原创 Kotlin 实践项目(密码本)

开源的项目,专治记不住密码...

2017-09-03 20:55:26 1572

原创 打包和依赖 AAR 文件

AAR 文件的单模块打包和多模块打包,以及引入到项目中的两种方式,以及常见遇到的问题

2017-08-01 14:02:02 1093

原创 Gradle 入门之 Groovy 语言详解

Gradle 核心是基于 Groovy 脚本语言,Groovy 脚本基于 Java 且拓展了 Java。因此 Gradle 需要依赖 JDK 和 Groovy 库。Groovy 语法详解(类型、运算符、程序结构、闭包)...

2017-08-01 00:01:14 3381

原创 Android 第三方推送整合文档

集成第三方推送笔记,应用未启动时点击通知栏执行的一连串打开页面操作...

2017-07-31 23:36:43 510

原创 Android 播放器通知栏样式适配

根据系统主题,适配不同手机的通知栏...

2017-07-31 23:32:12 1922

原创 Android 中使用 Kotlin 快速入门

Kotlin 的对象结构、函数,环境搭建,Anko Layout...

2017-07-31 23:25:53 1027

原创 Android 应用保活笔记

提高进程优先级降低被杀死,通过系统机制拉活应用...

2017-07-31 23:04:48 327

原创 Android 网络请求框架对比分析

一、网络框架的基本结构在分析其它框架之前,先做一个简易的网络请求框架。这里的结构和 Volley 一致,主要分为 4 部分,如图: 第一部分:各种请求类型,如 JsonRequest、StringRequest 等。 第二部分:消息队列,消息队列维护了提交给网络框架的请求列表,并且根据相应的规则进行排序。 第三部分:Executor,也就是网络的执行者。该 Executor 继承自

2017-02-28 13:57:01 7553

原创 Logger 日志打印库详解

一、基本使用Logger 是一款 Android 平台上的简单、优雅、强大的开源日志库。1,Logger 提供了以下方法:打印线程的信息打印类的信息打印方法的信息优雅的打印JSON数据优雅的打印换行符打印简洁的信息点击日志跳转至源码2,引入依赖库,在 app 根目录的 build.gradle 文件中加入如下代码:compile 'com.orhanobut:logger:1.15'

2017-02-28 12:54:44 7895

原创 Android 数据库对比

一、常见数据库介绍GreenDao 是为Android设计的对象关系映射(ORM)工具。它提供了对象到关系型数据库SQLite的相应接口。为了在Android工程中使用greenDao,需要创建另一个“生成器”工程,它的任务是在你的工程域里生成具体的代码。因此相比与其它ORM框架具有出众性能。 LitePal 是对象关系映射(ORM)模型。它使开发者使用SQLite数据库变得非常容易。 你可

2017-02-28 12:17:27 9129

原创 Android Todo MVP 框架分析和例子

项目的业务逻辑不断变更,需求也不断扩张,导致在原有代码基础上去处理也变得越来越繁琐,这时项目框架和代码规范就显得非常必要了。Google 在 GitHub 上的 Android Architecture Blueprints 提供了很多框架 Demo,现在对其中的 todo‑mvp 做一个简单的分析,并模仿写一个简单的 Demo。 一、MVP 基本结构MVP 从更早的 MVC 框架演变过来,

2017-02-28 12:10:49 610

原创 【Android Library】项目导入到Nexus私服

1,在Android library中的Gradle中加入如下代码: apply plugin: 'maven' apply plugin: 'signing' signing { required { has("release") && gradle.taskGraph.hasTask("uploadArchives") } sign configura

2017-02-01 00:00:20 467

原创 Nexus 私服上传文件,并通过 Gradle 引用

一、上传文件到 Nexus1,进入 Nexus 仓库界面如果你电脑还没有使用 Nexus,需要先下载并启动 Nexus 私服。 在浏览器输入:http://127.0.0.1:8081/nexus/ 进入后看到如下界面就代表nexus已经启动成功。点击右上角的【Log In】登陆,初始用户名密码:admin/admin123 登陆后,点击右边导航栏的【Repositories】会看到

2017-01-31 23:56:44 5312

原创 RecyclerView 使用的简单封装

本 Demo 主要是对网络请求分页加载数据做的一个简易的封装,实现了如下功能: 1,RecyclerView 滑动到底部时加载下一页 2,ItemView 和它内部View的点击事件 3,Item 的选中效果如下: 使用方法: 1,继承 BaseNetFragment 2,实现 onLoadingData(int pageIndex),getRecyclerItemView(

2016-12-29 21:51:41 452

原创 用 PullToRefreshLayout 实现 RecyclerView 的下拉刷新

PullToRefreshLayout 原文链接:http://blog.csdn.net/zhongkejingwang/article/details/38868463在原 Demo 中找到了 ListView 的实现,但是缺少 RecylerView 的实现方式。 参照 PullableListView 的实现,发现只要实现 Pullable 接口,就能实现下拉刷新和上拉加载。 Pull

2016-12-28 13:02:25 2214

原创 Android 6.0 动态请求权限

Android 6.0 动态请求权限描述:*Android 应用在访问额外的资源或信息时,需要请求相应权限。根据权限的敏感性,系统可能会自动授予权限,或者由用户对请求进行许可。Android6.0及以上应用除了在清单文件中声明权限,敏感权限还需要在用户使用时动态授予。官方定义了普通和危险权限,经测试发现部分手机厂商的敏感权限会有所差异*。 问题:应用中用到 READ_PHONE_STATE 权限

2016-12-06 08:45:09 1647

原创 Android 命令过滤

Android 命令过滤在工作中遇到这样一个问题,当滑动 App 中的色盘时,被控制灯的颜色也要跟随变化。 最开始的做法是在 View 的 onTouch().ACTION_CHANGE 中直接调用发送命令给固件,然而由于 onTouch() 方法在单次滑动触发的 ACTION_CHANGE 事件过多,而固件那边的处理速度和资源有限,无法处理这么快的命令。这时就需要在 App 端做处理了。

2016-12-06 08:43:57 364

原创 Android BLE中心设备的onCharacteristicChanged()方法没有回调

描述:当设备为 Indication 模式时,设备的值有变化时会主动返回给App,App在 onCharacteristicChanged() 方法中能收到返回的值。 Indication: 从机会先向主机发送一条通知,主机接收到通知后去读取从机数据 Notification:从机直接发送给主机数据问题:在App中通过如下代码注册监听,注册成功后就能接收到设备主动反馈的值了。然而以下代码

2016-12-01 15:43:03 18814 14

原创 Android Studio打包APK是遇到的一些问题(Lint检查的错误)

一,Error* : expected resource of type drawable 原因:animation-list的文件放在anim文件夹下了 解决的两种方式:   1,移动文件到drawable文件夹下   2,替换      _loadigIcon.setImageResource(R.anim.loading_animation);   为      

2016-11-28 11:45:07 7535 2

原创 Eclipse转AndroidStudio项目(包含子工程)

一、在Eclipse中通过Export生成Gradle文件1,在Eclipse菜单中打开 File --> Export-->Generate Gradle build files2,选中你的项目工程,包括主工程和子工程(Library),然后点击Finish如果你的工程之前已生成过或包含Gradle文件,需要勾上左下角的“Force overriding of exi

2016-11-28 11:35:14 400

原创 引用Realm数据库后.so文件找不到(UnsatisfiedLinkError)

在使用Realm数据库后,遇到了如下错误:java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[...],nativeLibraryDirectories=[.../lib/arm, /vendor/lib, /system/lib]]] couldn't find "libxmediaplayer.so"是老司机,对这

2016-11-28 11:11:03 869

原创 打包依赖.aar文件以及坑总结

AAR 文件的单模块打包和多模块打包,以及引入到项目中的两种方式,以及常见遇到的问题...

2016-11-28 10:46:56 13151

原创 如何查看Android的ANR(无响应)异常

在Android开发中,当程序发生异常时会抛出异常信息,可以通过如下代码来获取异常信息,然而在ANR时我们在Logcat中并看不到异常信息。Thread.setDefaultUncaughtExceptionHandler(new Thread. UncaughtExceptionHandler() { public void uncaughtException(Thread t, Thr

2016-11-14 10:28:42 16287

原创 限制Edittext输入的字节长度

在给设备重命名时,设备对名字的存储空间一般都是多少字节,而并非多少字,并通常都是采用utf-8的编码。那问题来了,utf-8的编码是1-6个字节的不等长度,如何获取将一个超过30字节的文本转换到30字节以内?Java中获取utf-8文本的字节长度很简单,如下:text.getBytes("utf-8").length但是在把超过30个字节的字符串截取到30个字节

2016-10-15 13:09:09 3832 1

原创 自定义View总结

在开发中对自定义View的使用非常的普遍,对Android的深入理解这也是必须了解的知识点。以下总结了一些常用的知识点,更多内容待补充。。。一、 View的生命周期onFinishInflate() 当View中所有的子控件均被映射成xml后触发onMeasure( int , int ) 确定所有子元素的大小onLayout( boolean , int , int ,

2016-10-14 12:28:13 292

原创 HSV色盘详解

由于公司目前是做智能音乐灯的,由于控灯需要绘制了各种各样的取色器,现在可以已一个老司机的身份来分析一下HSV的取色盘。HSV模型了解它是一个倒锥子模型,这个模型就是按色彩、深浅、明暗来描述的。H是色彩,范围0° ~ 360°,红(0°)、绿(120°)、蓝(240°);S是深浅, S = 0时,只有灰度,越往圆心的位置越偏白;V是明暗,表示色彩的明亮

2016-10-14 10:43:58 9637 1

原创 自定义滚动按钮(滚轮)进度调节器

在开发中遇到一个类似鼠标滚轮效果的UI,在这里写下我的实现思路,希望对你有所帮助。效果图如下:一个滚动条,通过上下滚动来调节进度。这里的难点是滚动时的动画效果,下面一一说来。实现思路1,绘制一组动画图片,从第一个小横杠开始到第一个小横杠结束滚动的这一过程我们用20帧来表示绘制中间的滚动轴用得到的滚动轴与一个比背景圆略小的圆合成,插入滚轴Y

2016-10-13 20:06:38 737

原创 调用系统相机/相册获取图片的完美解决方案

调用系统相机/相册获取图片的事,在百度上找一下能搜到一大堆文章,然而拿过来在真机上跑一下大部分都有问题,根本达不到想要的效果。为什么会拿不到想要的图片呢,最主要的原因是因为图片太大,而获取的图片数据是放在Intent中的。而现在手机的像素普遍都是800W+,一张普通的尺寸为3200*2400px的照片要消耗30MB的内存空间,而一个Intent能传递的数据怎么可能支持这么大的空间,我测试过一些手机

2016-10-13 19:31:48 2247

原创 让按钮在输入法之上显示,实现一个优雅的登陆界面

在做登录界面时,“登录”按钮总是会被输入法挡住,要点击登录需要先收起输入法才能点击,这么多余的操作身为一个有强迫症的程序猿怎么能忍。在做这个之前,首先想到的肯定是设置android:windowSoftInputMode属性,然而并不能达想要的效果,果断放弃。解决办法是给rootView设置一个OnGlobalLayoutListener的监听事件,当布局发生改变时改变控件位置的方式来实现。实

2016-10-13 18:30:45 566

原创 Android M(6.0)扫描不到蓝牙设备的处理办法

在Android6.0手机上扫描不到蓝牙设备(如Nexus6),并会抛出一个异常: java.lang.SecurityException: Need ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission to get scan results

2016-10-13 18:00:05 19070 3

原创 自定义View中文本居中显示

在开发中遇到一个这样的需求,在选择星期时设计狮想要这个这样的效果:看到效果,想当然应该是用CheckBox实现吧,选中时背景蓝色文字白色,未选中时背景透明文字黑色。那最方便的实现方式应该是直接给切图,然而这种用切图,除了因为要做国际化图片量会很大外,另一个原因就是显示效果也不是非常好。另外一种就给CheckBox定义样式,实现思路应该是下面这个样

2016-08-27 16:50:26 14048

原创 自定义TextView,设置Drawable图标居中显示

在Android中,有时需要图标和文字在布局中居中显示,比如这种场景:搜索图标和文字是紧挨着,点击整个白色区域会触发相应的事件,这种情况下如何只用一个View来达到这种效果呢。当然如果是以前就会用一个RelativeLayout来作为点击区域,再加上一个TextView来显示文本,然而我并不喜欢这种实现方式。看下对比效果图:代码实现:

2016-08-27 16:13:52 12307 4

Dlna音乐播放器

Dlna音乐播放器,实现了搜索DMR设备,DMC控制的功能,实现播放、暂停、音量、进度条更新、注册监听事件以及传输信息和状态。

2015-10-29

RadioButton和CheckBox自定义样式

Android自定义RadioButton和CheckBox样式,重写RadioButton的onDraw()方法,实现颜色选择器效果。

2015-10-20

可拖动的圆形进度条

Android定义View,实现的一个可拖动进度的圆形进度条。

2015-10-20

附近的人Apps

通过百度LBS开发,显示在附近用此软件的人。

2015-03-24

快递查询Apps

选择快递公司,扫一扫条形码再点击确定变可以查看到自己的快递。选择快递公司的界面采用PinnedHeaderListView + BladeView组合(通讯录界面效果)完成。扫一扫通过调用摄像头以及zxing的条形码或二维码解析包来解析。查询历史记录会保存在SQLite数据库中

2015-03-24

Android短信联系人备份并上传

短信 联系人和通话记录的备份 在AsyncTask内执行 实时显示备份进度 文件以XML格式保存 并上传到JavaWeb服务器 有Web端源码

2015-03-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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