自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

krubo的博客

不积跬步无以至千里 不积小流无以成江海

  • 博客(51)
  • 资源 (29)
  • 收藏
  • 关注

原创 关于Android Handler消息机制的理解

最近一段时间一直在扒拉Android源码,看了下Handler,Thread,Looper,MessageQueue以及Message相关源码,现在谈谈个人对于他们的理解。 我们经常听到Android消息机制,其实Android消息机制主要值得就是Handler运行机制,而Handler的运行需要MessageQueue和Looper的支持。 通俗的来说,Handler是线程间进行通讯的工具,...

2018-07-05 16:59:44 379

原创 AndroidStudio JNI开发,通过Cmake编译so文件

官方文档:https://developer.android.com/ndk/guides/cmake1、创建项目,在首界面勾选上Include C++ support,然后点击next,直至创建完成2、项目会默认生成jni事例代码,观察项目结构,在app/src/main下有个cpp文件夹,我们要写或者要添加的c/c++文件就写在该文件夹下。3、打开MainActivity.java...

2018-06-06 13:16:30 3440

原创 【读书笔记】设计模式(六)——抽象工厂模式

定义为创建一组相关或者是相互依赖的对象提供一个接口,而不需要制定它们的具体类。使用场景一个对象族有相同的约束时可以使用抽象工厂模式。简单实现/** * 抽象产品A */public abstract class AbstractProductA { /** * 每个具体的产品子类需要实现的方法 */ public abst

2018-01-31 17:01:49 305

原创 【读书笔记】设计模式(五)——工厂方式模式

定义定义一个用于创建对象的接口,让子类决定实例化那个类。使用场景在任何需要生成复杂对象的地方,都可以使用工厂方法模式。复杂对象适合使用工厂模式,用new就可以完成创建的对象无需使用工厂模式。简单实现/** * 抽象产品类 */public abstract class Product { /** * 产品类的抽象方法,有具体的产品去实现

2018-01-31 15:41:56 233

原创 CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I

2018-01-31 15:15:37 160

原创 【读书笔记】设计模式(四)——原型模式

定义用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。使用场景(1)类初始化需要消化非常多的资源,这个资源包括数据,硬件资源等,通过原型拷贝避免这些消耗。 (2)通过new产生一个对象需要非常繁琐的数据准备或访问权限,这时可以使用原型模式, (3)一个对象需要提供给其他对象访问,而且各个调用者可能都需要修改其值,可以考虑使用原型模式拷贝多个对象供调用者使用,即保护性

2017-09-19 16:41:39 591

原创 【读书笔记】设计模式(三)——建造者模式(Builder)

定义将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。使用场景(1) 相同的方法,不同的执行顺序,产生不同的事件结果时 (2) 多个部件或零件,都可以装配到一个对象中,但是产生的运行结果又不同时 (3) 产品类非常复杂,或者产品类中的调用顺序不同产生了不同的作用,这个时候使用建造者模式非常合适 (4) 当初始化一个对象特别复杂,如参数多,且很多参数都具

2017-09-01 15:01:53 309

原创 【读书笔记】设计模式(二)——单例模式

定义确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。使用场景确保某个类有且只有一个对象的场景,避免产生多个对象消耗过多的资源,或者某种类型的对象只应该有且只有一个。常见的实现方式1、懒汉模式public class People { private static People instance; private Peop

2017-08-31 17:17:39 353

原创 MAC上使用apktool进行反编译

本文参考http://blog.csdn.net/hanhailong726188/article/details/42368295一、准备工作工具准备,下载工具1.apktool 2.dex2jar 3.jd-gui 下载地址:戳我安装工具apktool安装解压下载的文件,进入apktool文件夹中,可以看到apktool,apltool.jar和aapt三个文件,将这三个文件拷贝到/us

2016-06-30 16:39:50 9599

原创 欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2016-06-08 16:14:04 335

原创 类似UC浏览器三个圆点加载控件

在UC浏览器上,我们能够看到这样效果的加载控件,三个圆点同时滑动更换位置,这篇文章将会讲解如何实现这种效果 分析点的运动轨迹根据效果我们可以看出三个点的轨迹都不相同,现在我们来逐一进行分析第一个点运动轨迹第一个点的运动轨迹是从初始位置向上运动,达到最高点后向下运动穿过第二个点的初始位置后继续向下运动,达到最低点后重新向上运动,最终抵达第三个点的初始位置,整个过程中,第一个点一直向右平行移动,并且颜

2016-04-26 17:30:17 1582

原创 Android右滑销毁Activity

参考http://blog.csdn.net/lmj623565791/article/details/46858663在很多应用中,我们都能看到右滑退出当前界面的功能,网上也有一些例子讲解如何去实现这样的操作,但是大部分的都是自己监听手势并进行处理,代码很多很复杂,所以我就在想,是否有更简单的方法去实现。前不久,在学习自定义ViewGroup的时候,看到了ViewDragHelper,就想到这个

2016-04-09 15:32:35 879

原创 自定义ViewGroup,流式布局FlowLayout

本文参考了【张鸿洋的博客】: Android 手把手教您自定义ViewGroup(一)和Android 自定义ViewGroup 实战篇 -> 实现FlowLayout在很多应用里面,我们能看到类似于这样的流式 用现有的控件我们实现这种动态适应的布局很麻烦,对于如何比较简单的去实现这种布局,就需要我们去自定义ViewGroup了实现步骤一、新建一个FlowLayout类,继承ViewGrou

2016-03-24 16:24:59 757

原创 OKHttp附件下载实现,进度监听

1.创建请求requestRequest request = new Request.Builder().url(url).build();2.获取response,由于是耗时操作,所以需要异步获取 new Thread(new Runnable() { @Override public void run() { ...

2016-02-24 14:32:29 658

原创 OKHttp上传图片实现,进度监听

1.为了实现图片进度监听,需要定义一个类,继承RequestBody/** * Created by krubo on 2016/2/17. */public abstract class CmlRequestBody extends RequestBody { private final RequestBody requestBody; private BufferedSink

2016-02-24 14:23:22 5714 1

原创 【读书笔记】设计模式(一)

单一职责原则——优化代码的第一步英文名称:Single Responsibility Principle,缩写SRP定义:一个类应该仅有一个引起它变化的原因,简单的来说,一个类中应该是一组相关性很高的函数、数据的封装单一职责所表达出的用意就是“单一”二字,如何划分一个类、一个函数的职责,每个人都有自己的看法,这需要根据个人经验、具体业务逻辑而定。但是它也有一些基本的知道原则,例如,两个

2016-02-17 20:39:07 783

原创 AndroidStudio 编译C/C++文件生成SO文件

之前写过一篇关于Eclipse生成SO文件的文章,里面有详细的步骤,有兴趣的同学可以去看看 【第一节】android增量升级之生成so文件 该篇文章主要讲如何用AndroidStudio生成SO文件新建一个Project新建一个JniExample Project,包名为com.jni.example,创建完成后里面有个app Module创建native方法新建一个NativeUti

2016-01-20 12:10:54 25595 19

原创 ImageView设置纯色图片颜色

我们在项目中会遇到各种各样的图标,有时候相同的图标需要换成不同的颜色,如果每种颜色都去做一套的话,不经费时费力,而且会使我们的APP变大。ImageView有一个属性可以去改变图片的颜色,特别是纯色图片,只要设置几套颜色值,就能根据颜色值改变界面中的图片颜色在代码中需要这样设置imageView.setColorFilter(Color.WHITE);或者在XML布局中这么设置android:tin

2016-01-19 16:48:23 13539

原创 AndroidStudio添加so文件

第一步在main文件夹下新建一个文件夹jniLibs,并经so文件拷贝到该文件夹下 第二步打开AndroidManifest.xml文件,在application节点内添加代码:<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_

2016-01-14 15:50:27 458

原创 Camera进阶,自定义拍照录像界面

Camera 官方指南,英语不太好,翻译有可能不准确,见谅 o(^▽^)o 自定义拍照,录像项目 下载地址 上一篇:初识Camera,调用系统拍照录像程序在项目中创建一个自定义拍照录像界面的一般步骤找到并使用摄像头 检查摄像头是否存在,并去使用它 创建一个预览类 通过继承SurfaceView类和实现SurfaceHolder接口去创建一个摄像头预览类,该类能实时的把

2016-01-08 09:18:40 5537

原创 拍照后无法在系统图库中找到该图片

有时候我们会遇到这种情况,当我们指定了图片存储位置,去调用系统照相机拍照时,当结束拍照后,我们能在指定位置上看到图片,却没法在系统图库中找到该图片,那么该怎么操作让我们拍的照片出现在系统图库中呢? 我们需要在拍完照后发一个广播去通知系统图库,具体代码如下/** * 保存图片后通知系统相册 * * @param context * @param file 图片文件 */ publ

2016-01-07 18:10:58 1581

原创 初识Camera,调用系统拍照录像程序

Camera 官方指南,英语不太好,翻译有可能不准确,见谅 o(^▽^)o关于拍照录像,有两种处理方式,一种是构建Intent调用系统或其他的APP,另一种是自定义自己的拍照或录像界面,下面就讲解一下这两种方式Manifest中Camera相关的配置摄像头权限<uses-permission android:name="android.permission.CAMERA" />ps:如果你通过In

2016-01-07 16:07:14 2747

原创 Android MVP架构的使用

前言在现实项目中,我们经常会遇到这样一种情况,就是一个Activity类不仅要处理几种业务逻辑,同时还要兼顾着数据的请求以及UI的操作,这样造成的后果就是整个类的代码会出现上千行,更有胜者是几千行。显而易见,这种处理方式是不妥的,不仅违反了面向对象中单一职责原则,而且对于整个项目来说,也不利于项目的扩展和维护。(单一职责原则:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。)那么

2016-01-06 13:57:21 471

原创 【第三节】android增量升级之提供服务端代码,整理项目

该篇文章从eoeAndroid搬迁过来的,原文地址:【第三节】android增量升级之提供服务端代码,整理项目前言在之前的两节中分别讲了 【第一节】android增量升级之生成so文件 和【第二节】android增量升级之使用so文件进行增量升级,没看的童鞋可以去看一下,这一节,我这边提供一个下载差异包的服务端,并且增加app中下载合并差异包的操作。一、ApkPatchServer项目该项目的使用

2016-01-05 15:58:56 775

原创 【第二节】android增量升级之使用so文件进行增量升级

该篇文章从eoeAndroid搬迁过来的,原文地址:【第二节】android增量升级之使用so文件进行增量升级前言在第一节中,我讲了如何生成增量升级的so文件,没看的童鞋点【第一节】android增量升级之生成so文件 ,在这一节中,我讲一下如何去使用so文件进行增量升级。第一步建立一个新项目,如SmartAppUpdate,包名命名为com.smartapp.update,为什么要这么命名包名,

2016-01-05 15:50:28 1290

原创 【第一节】android增量升级之生成so文件

该篇文章从eoeAndroid搬迁过来的,原文地址:【第一节】android增量升级之生成so文件前言对于android项目,我们常常会遇到这样一种情况,比如某一版本的线上应用,突然发现了一个BUG,修改后发现不值当为这个BUG进行一次版本升级,那么怎么去解决在同一版本上修改线上应用的BUG呢,Google给了我们一种解决方案 Smart App update,也就是应用增量升级。那么,何谓增量升

2016-01-05 15:29:46 2096 2

原创 学习之随堂笔记——屏幕适配

该篇文章从eoeAndroid搬迁过来的,原文地址:学习之随堂笔记——屏幕适配注:该帖子为本人学习时随手记录的,内容杂乱,敬请见谅 一、各种适配相关知识1.屏幕尺寸屏幕对角线的长度,单位英寸,1英寸=2.54厘米2.屏幕分辨率在纵横向上的像素点数,单位px,1px=1个像素点,一般以纵向像素*横向像素,如1920*10803.屏幕像素密度每英寸上的像素点数,单位dpi,屏幕的像素密度与屏幕尺寸

2016-01-05 14:52:08 644

原创 [Android实例] 拖动滑块进行图片拼合验证方式的实现

该篇文章从eoeAndroid搬迁过来的,原文地址:[Android实例] 拖动滑块进行图片拼合验证方式的实现现在网站上有各种各样的验证码验证方式,比如计算大小,输入图片内容等,今天在一家网站上看到这样的一种效果,感觉眼前一亮,验证方式是给出一张缺失一点的图片,然后在旁边有缺失部分的滑块,需要将该滑块拖动到图片缺失的地方补全才能验证成功,看到这种方式,我就想如何在android上去实现这种滑动验证

2016-01-05 14:04:14 12420 1

原创 [Android分享] 推荐几篇关于android Graphics Canvas介绍的博客

这几天在CSDN上看到了几篇关于Adroid Graphics的讲解,是一系列比较基础的教程,里面详细讲了Canvas绘图的方法,感觉不错,有兴趣的同学可以去看看。在此灰常感谢博主harvic880925无私的分享精神。 android Graphics(一):概述及基本几何图形绘制 android Graphics(二):路径及文字 android Graphics

2016-01-05 14:01:39 443

原创 [Android分享] DialogFragment初次了解学习

[Android分享] DialogFragment初次了解学习DialogFragment在android 3.0时被引入。是一种特殊的Fragment,用于在Activity的内容之上展示一个模态的对话框。典型的用于:展示警告框,输入框,确认框等等。在DialogFragment产生之前,我们创建对话框:一般采用AlertDialog和Dialog。注:官方不推荐直接使用Dialog创建对话框

2016-01-05 13:46:01 430

转载 [Android分享] Android性能优化之常见的内存泄漏

原文作者:u010687392 发表于2015/11/23 15:13:23 原文链接(http://blog.csdn.net/u010687392/article/details/49909477)前言对于内存泄漏,我想大家在开发中肯定都遇到过,只不过内存泄漏对我们来说并不是可见的,因为它是在堆中活动,而要想检测程序中是否有内存泄漏的产生,通常我们可以借助LeakCanary、MAT等工具来检

2016-01-05 13:41:16 423

原创 [Android算法] 解决ListView里嵌套CheckBox出现的数据刷新问题

该篇文章从eoeAndroid搬迁过来的,原文地址:[Android算法] 解决ListView里嵌套CheckBox出现的数据刷新问题问题:当ListView里嵌套CheckBox时,我们勾选当前页面的数据后,下拉刷新后下一页也会出现被勾选的现象解决:可以在数据源里面设置一个标记字段,如Flag=false,然后根据数据源判断CheckBox是否被点击,CheckBox的点击事件要写在Check

2016-01-05 13:30:45 1274

原创 [Android实例] 仿微信摇一摇功能实现

该篇文章从eoeAndroid搬迁过来的,原文地址:[Android实例] 仿微信摇一摇功能实现前段时间,由于换了新工作,参与到公司新项目里,很忙,也没时间去弄一些好玩的东西。这些天不算忙,突然想到我在项目里仿照微信做了摇一摇功能,也就吧该功能提取出来,共享给大家。 摇一摇功能其实很简单,主要用到了加速度传感器,因此需要加入权限<uses-permission android:name="a

2016-01-05 12:02:43 6969 1

原创 [Android实例] 水下气泡上升界面效果

该篇文章从eoeAndroid搬迁过来的,原文地址:[Android实例] 水下气泡上升界面效果 首先声明,该效果并不是用动画实现的,而是用自定义View实现的,在onDraw方法里面调用invalidate()函数,实现气泡上升效果气泡类:private class Bubble { /** 气泡半径 */ private int radius;

2016-01-05 11:50:20 4151 3

原创 [Android实例] 类似电表数字改变自定义控件

该篇文章从eoeAndroid搬迁过来的,原文地址:[Android实例] 类似电表数字改变自定义控件代码很简单,不做过多说明@Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub if(nowText==null || "".equals(now

2016-01-05 11:46:15 1307

原创 [Android实例] 类似地震波向外扩散的自定义控件

该篇文章从eoeAndroid搬迁过来的,原文地址:[Android实例] 类似地震波向外扩散的自定义控件主要代码是自定义View的onDraw方法:代码很简单,就没有过多注释和介绍@Override public void onDraw(Canvas canvas) { // TODO Auto-generated method stub super.on

2016-01-05 11:37:35 896

原创 [Android实例] 九宫格锁屏界面,自定义九宫格屏锁控件

》该篇文章从eoeAndroid搬迁过来的,原文地址:[Android实例] 九宫格锁屏界面,自定义九宫格屏锁控件最近忙着公司项目,也没有时间去做自定义控件这类的事,昨天刚把项目初步完结,今天玩着手机屏锁,突然想到是不是把九宫格屏锁给集成到项目中,做一个类似支付宝那样免登陆的模式,想到就立马开工动手做了一个九宫格的屏锁控件,感觉还不错,就在此奉献给大家。由于项目代码很简单,就在此不做复制粘贴工作了,

2016-01-05 11:29:55 1103

原创 [Android实例] 手写签名,画笔颜色选择器

该篇文章从eoeAndroid搬迁过来的,原文地址:[Android实例] 手写签名,画笔颜色选择器今天没事做,突然想做一下手写签名的东西,然后就开始行动了,然后做了一天,终于完善了Demo。 在这个手写签名demo中,有以下功能: 1.选择画笔的颜色 2.使用橡皮擦 3.清除或重头开始绘制图片 4.上一步或下一步绘制的效果 5.得到当前展示的绘制效果主要代码:手写绘制板:@Ove

2016-01-05 09:23:38 1041

原创 [Android实例] 两边都能滑动的数据间隔选择SpaceBar

该篇文章从eoeAndroid搬迁过来的,原文地址:[Android实例] 两边都能滑动的数据间隔选择SpaceBar前几天看汽车报价APP,突然发现一个很带感的效果,类似于seekbar,不过能够两边滑动,用处是能够在指定大小数据范围内进行选择你需求的范围,效果图如下,至于主要代码如下:@Override protected void onDraw(Canvas canvas) {

2016-01-04 18:04:58 783 1

原创 [Android实例] 仿Win8磁铁效果,能够拖动改变Merto位置

该篇文章从eoeAndroid搬迁过来的,原文地址:[Android实例] 仿Win8磁铁效果,能够拖动改变Merto位置最近公司一个同事让我做一个仿win8的效果,希望能够在固定的界面布局下进行拖动改变各个模块的位置,同时根据菜单内容数量不同展示相对应的Merto数量,就这样,我做了个Demo,可能有些粗糙,但是初步的功能都满足了,现在就把它贡献给大家,代码中不太规范的地方敬请见谅由于有不同的模

2016-01-04 18:03:42 1036

MAC使用apktool进行反编译

博客:http://blog.csdn.net/krubo1/article/details/51791535

2016-06-30

类似UC浏览器三个圆点加载控件

博客地址:http://blog.csdn.net/krubo1/article/details/51252308

2016-04-26

Android右滑销毁Activity

Android右滑销毁Activity,博客地址:http://blog.csdn.net/krubo1/article/details/51105427

2016-04-09

AndroidStudio 编译C/C++文件生成SO文件

博客地址:http://blog.csdn.net/krubo1/article/details/50547681

2016-01-20

Camera进阶,自定义拍照录像界面

自定义拍照,录像,博客参考:http://blog.csdn.net/krubo1/article/details/50480404

2016-01-12

【第三节】android增量升级之提供服务端代码,整理项目

博客地址:http://blog.csdn.net/krubo1/article/details/50463227

2016-01-05

【第二节】android增量升级之使用so文件进行增量升级

博客地址:http://blog.csdn.net/krubo1/article/details/50463146

2016-01-05

【第一节】android增量升级之生成so文件

博客地址:http://blog.csdn.net/krubo1/article/details/50462934

2016-01-05

[Android实例] 拖动滑块进行图片拼合验证方式的实现

博客地址:http://blog.csdn.net/krubo1/article/details/50462163

2016-01-05

[Android分享] DialogFragment初次了解学习

博客地址:http://blog.csdn.net/krubo1/article/details/50462048

2016-01-05

[Android实例] 仿微信摇一摇功能实现

博客地址:http://blog.csdn.net/krubo1/article/details/50461610

2016-01-05

[Android实例] 水下气泡上升界面效果

博客地址:http://blog.csdn.net/krubo1/article/details/50461528

2016-01-05

[Android实例] 类似电表数字改变自定义控件

博客地址:http://blog.csdn.net/krubo1/article/details/50461482

2016-01-05

[Android实例] 类似地震波向外扩散的自定义控件

博客地址:http://blog.csdn.net/krubo1/article/details/50461417

2016-01-05

[Android实例] MQTT协议,Android消息推送

博客地址:http://blog.csdn.net/krubo1/article/details/50461417

2016-01-05

[Android实例] 九宫格锁屏界面,自定义九宫格屏锁控件

博客地址:http://blog.csdn.net/krubo1/article/details/50461316

2016-01-05

[Android实例] 手写签名,画笔颜色选择器

博客地址:http://blog.csdn.net/krubo1/article/details/50460172

2016-01-05

[Android实例] 两边都能滑动的数据间隔选择SpaceBar

博客地址:http://blog.csdn.net/krubo1/article/details/50457622

2016-01-04

[Android实例] 仿Win8磁铁效果,能够拖动改变Merto位置

博客地址:http://blog.csdn.net/krubo1/article/details/50457550

2016-01-04

[Android实例] SlidingPaneLayout实现最新版QQ主页面效果

博客地址:http://blog.csdn.net/krubo1/article/details/50457382

2016-01-04

[Android实例] 波浪动画效果,正弦曲线绘制

博客地址:http://blog.csdn.net/krubo1/article/details/50457306

2016-01-04

[Android实例] ListView悬浮标题,类似QQ列表显示

博客地址:http://blog.csdn.net/krubo1/article/details/50457186

2016-01-04

[Android实例] 仿Easy Touch,实现Home键,锁屏,清理内存功能

博客地址:http://blog.csdn.net/krubo1/article/details/50456952

2016-01-04

[Android实例] MQTT消息推送,即时通讯

博客地址:http://blog.csdn.net/krubo1/article/details/50456847

2016-01-04

[Android实例] 仿微信通讯录,A~Z拼音侧边检索

博客地址:http://blog.csdn.net/krubo1/article/details/50456703

2016-01-04

[Android实例] 带clean按钮的输入框

博客地址:http://blog.csdn.net/krubo1/article/details/50456613

2016-01-04

[Android实例] 侧边字母滑动检索控件

博客地址:http://blog.csdn.net/krubo1/article/details/50456518

2016-01-04

仿IOS Switch控件

博客地址:http://blog.csdn.net/krubo1/article/details/50456421

2016-01-04

仿IOS分段控件SegmentConrtol

博客地址:http://blog.csdn.net/krubo1/article/details/50456237

2016-01-04

空空如也

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

TA关注的人

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