自定义博客皮肤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)
  • 收藏
  • 关注

原创 LeakCanary源码分析

内存泄漏是每个android app都应当重视的东西,在检测内存泄漏这块大家应该都用过LeakCanary这款神器,直接自动检测并形成报告,非常方便查看,github上有直接的使用方式github地址Demo使用介绍github上download下代码,直接运行 点击按钮,然后旋转屏幕,没一会就发现leakcanary弹内存泄漏的提示。 为什么内存泄漏了,看下demo代码就知道

2017-06-24 22:34:15 852

原创 sqlcipher加密数据库

今天介绍一个在之前公司用到的技术(发现文章一直在草稿箱里没发,今天发了),觉得还不错,分享出来。在android开发中有时候需要对数据库进行加密处理,不管这个数据库是我们程序自己创建的还是我们自己从外部导入的已经存在的数据库,我们都有可能需要对它进行加密。加密方式无非两种,一种是对读写的内容进行加密,另一种就是对数据库整个文件进行加密。第一种方式就非常多了,这里不做介绍,今天主要介绍第二种方式——

2017-02-13 15:32:17 1496

原创 Zxing之Android源码解析

上一篇文章中Zxing项目介绍之移植篇我们介绍了如何将Zxing项目移植到自己的项目,并且简化了大量的代码只剩下基本的扫描功能,这篇文章将针对前一篇文章的简化后的Demo解析Zxing二维码解析的大致过程。

2017-02-13 15:25:23 3758 1

原创 Zxing之Android移植篇

目前二维码扫描功能在app上已经非常成熟了,而zxing项目也是目前可以说是最流行的二维码扫描方面的开源项目了,今天介绍下,怎么把zxing移植到我们android工程项目,最近做这方面的工作,发现网上这方面的介绍比较少,今天整理一篇。 zxing github网址 github项目代码很多,刚开始看的时候我看得有点懵逼,其实移植到android上只需要三个目录 上面用红色圈圈画出的三部分有需

2017-02-08 17:43:33 6433 3

原创 原生接入React-Native实战之配置篇

最近工作上的项目要接入react-native技术,因此需要把原生项目接入到rn的配置环境中,整个过程遇到了不少坑,rn以后会是个趋势,也许慢慢会有越来越多的人需要将现有项目接入rn,估计在配置的时候都会遇到一些坑,这篇文章记录下整个配置的过程,既为提自己做个记录,也希望能帮到有同样项目需求的人。搭建开发环境开发环境的搭建 这部分只要跟着官方文档里就行,一般都会比较顺利。完成rn环境配置进入项目跟目

2016-11-13 17:07:05 5672

原创 拆轮子之热修复框架AndFix

这一两年各种热修复框架风起云涌,各种优秀开源框架不断推陈出新,今天就来介绍一下AndFix,虽然这套框架不是能解决所有问题,但其中的思想精髓还是很值得研究一下的。使用方法1、从AndFix 官网下载最新的AndFix代码,导入到Demo工程里作为library,也可以用添加依赖的方式compile 'com.alipay.euler:andfix:0.3.1@aar'这里我们要对源码进行分析,因此使

2016-09-27 14:38:58 1274

原创 拆轮子之动态加载DynamicLoadApk

本篇文章demo地址动态加载是什么应用在运行的时候通过加载一些本地不存在的可执行文件实现一些特定的功能,Android中动态加载的核心思想是动态调用外部的Dex文件,极端的情况下,Android APK自身带有的Dex文件只是一个程序的入口(或者说空壳),所有的功能都通过从服务器下载最新的Dex文件完成。动态加载技术的运用1、可以缩小apk体积,比如一个app的一些不常用但又不得不要的模块可以采用放

2016-08-26 16:30:57 4343

原创 Android Ui卡顿检测

好久没来写技术博客了,惭愧惭愧,因为前段时间在忙其他一些事情,这段时间稍微时间松了点,赶快来补写下技术博客,可不能荒废了。 今天介绍的技术是一个很简单,但是确实有用的东西。众所周知,做android开发的应该都知道UI线程这个东西吧,UI线程顾名思义就是用来执行渲染UI相关操作的,为了良好的用户体验,在UI线程上的任何操作就是要快,不然操作5s就会anr哦。从代码级别来说,UI线程的快速响应可以简

2016-07-12 16:59:08 3772

原创 Android WebView保存登陆cookie

最近给H5部门做一个app,需求比较简单,就是用webview直接loadUrl去加载网页,但做的时候遇到一个小需求,网上找的答案都不是很让人满意,感觉好多复制黏贴,所以想想,还是自己写一篇吧。 遇到的需求是H5网页里有让用户登陆的界面,用户登陆成功后,退出app,下次要能记住登陆状态,不需要再次登陆,简单说就是要在app本地保存登陆cookie。 没做过这方面需求,网上找找资料,发现大部分讲的

2016-02-27 17:12:12 9967 9

原创 仿QQ聊天列表界面demo

先看下今天要实现的demo的效果图 大体分解下主要要如下需求: 1、聊天列表有个会伸缩的头部,伸缩过程中列表不可滑动 2、列表项可以向左滑动拖出删除功能,并且点击删除该列表项,滑动列表时有处于删除功能态的列表想需先重置列表状态 3、列表项右侧有代表未读条数的小圈,拖动可删除。列完需求之后,我们再来看如何一步步实现。先看第一个需求点,大致看需要一个头部View加ListView构成。publi

2015-12-24 16:57:09 9171 2

原创 MuPDF for Android编译过程小结

最近使用mupdf在自己的app上用来打开pdf类型的文件,把自己编译的过程在这里做个小小的记录源码下载首先需要把mupdf的源码下载下来为后续编译出so文件做准备,这里推荐官方的下载地址MuPdf官网,里面提供了git地址,这里还推荐另一个地址GITHUB地址 GITHUB地址,而且GITHUB上还有比较详细的文档说明。源码编译在编译前,GITHUB上的文档说了我们还需要下载一份

2015-12-10 19:06:26 10129 11

翻译 Fragment的展现与Activity状态丢失 IllegalStateException:Can not perform this action after onSaveInstanceState

Fragment的展现与Activity状态丢失 –java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState下面的异常信息自从Android Honeycomb问世后,在stackoverflow.com就不但出现,显然,它困扰了很多的开发者java.lang.IllegalState

2015-11-07 16:38:30 4053

原创 OKHttp源码解析(三)

public void readResponse() throws IOException { if(this.userResponse == null) { if(this.networkRequest == null && this.cacheResponse == null) { throw new IllegalStat

2015-08-04 09:29:48 7851 10

原创 OKHttp源码解析(二)

上一篇文章里我们大致分析了OkHttp整个请求的流程,重点分析了具体发送请求前都做了哪些操作,这篇文章我们将继续上篇的内容,看看在发送请求过程中做了什么,看了上篇文章的应该都知道,我们将从HttpEngine的sendRequest入手看是如何操作的public void sendRequest() throws RequestException, RouteException, IOExcepti

2015-07-29 23:22:33 9364 10

原创 OKHttp源码解析(一)

在上一篇博客中,我们介绍了OKHttp的基本用法,这一篇我们将从源码角度来看下OKHttp是如何完成一些列的网络的操作的。 我们知道在okhttpclient同步请求和异步请求调用的接口不一样,但它们最后都是殊途同归地走到Call里面的private Response getResponseWithInterceptorChain(boolean forWebSocket) throws IOEx

2015-07-27 23:14:45 30892 10

原创 OKHttp使用简介

现在android网络方面的第三方库很多,volley,Retrofit,OKHttp等,各有各自的特点,这边博客就来简单介绍下如何使用OKHttp。梗概OKHttp是一款高效的HTTP客户端,支持连接同一地址的链接共享同一个socket,通过连接池来减小响应延迟,还有透明的GZIP压缩,请求缓存等优势 OKHttp官网配置环境支持Android 2.3及其以上版本,要求java JDK1.7以上j

2015-07-22 11:16:12 87411 34

原创 Android推送进阶课程学习笔记

Android推送进阶课程学习笔记今天在慕课网学习了Android进阶课程推送的服务器端处理回执的消息 。这集课程主要介绍了,当服务器往客户端推送消息的时候,客户端需要发送一个回执回来确认收到了推送消息才算一次完整的推送过程。 具体的实现方法为服务器推送一个消息到客户端的时候,会生成一个相应的uuid标识这个消息,并把这个消息以及uuid存储到数据库中,客户端收到消息后,取出其中的uuid并将这个

2015-06-28 23:26:33 2344 1

原创 利用Recycleview水平平移并自动挪动Item位置(仿Instagram效果)

先来看看Instagram在编辑图片水平挪动的过程中的效果图

2015-04-11 16:02:36 12450 2

原创 编译Android源码与内核总结

这些天花了些时间自己下载了android源码来编译,其中走了一些弯路导致耗了些时间,现在重新梳理总结下,让有相同想法的人自己编译的时候能少走些弯路,官方指导文档在http://source.android.com/source/initializing.html。1、安装linux环境我是windows系统,安装了Vmware虚拟机,在虚拟机上装了ubuntu-12.04,我的这个版本是3

2014-10-20 22:35:08 4368 20

原创 Android版百度地图MapView维护

最近项目工程使用百度地图,功能确实强大,但就像论坛里很多人提的那样,在MapView的刷新问题上,百度地图还有一定bug,比如在一个dialog中放一个MapView,却发现dialog中的MapView展现效果很差,很多地图上的标志没有刷新出来。比如下图我们可以看到整个地图完全乱套了,现在我贴在这个dialog的代码,然后一起分析下问题package baidumapsdk.de

2013-12-06 22:18:50 9805

原创 Android之Touch事件分发机制

直接进入正题,在android开发中,手势触碰是经常使用到的。这两天刚好在看这方面的资料,在这里写篇文章做个小总结。首先必须知道五大布局Layout:LineaLayout,RelativeLayout,FrameLayout,AbsoluteLayout都继承自ViewGroup,而TableLayout继承LinearLayout,也相当于继承于ViewGroup。而ViewGroup

2013-10-27 23:35:32 11693 12

翻译 Android之PowerManager电源管理

翻译来源PowerManager这个类让你拥有控制设备状态的权利。使用这个api类会很明显地影响设备电量的使用时长。除非你确实需要PowerManager.WakeLock否则不要轻易使用它们,并尽量使用低等级功能,并确保在你不使用它们的时候立即释放PowerManager.WakeLock。你可以通过使用Context.getSystemService来获取这个类的实例。

2013-10-23 23:39:42 11813 1

原创 Android百度地图v.2.1.3申请key

1、申请地址http://lbsyun.baidu.com/apiconsole/key,自己自行注册一个百度账号2、进入如下图界面,点击创建秘钥3、点击新出现的密钥的设置,进入如下界面,并选择for moblie为类型4、填写安全码,安全码的构成为Android签名证书的证书指纹 (SHA1)值 + “;” + 你的

2013-10-10 22:07:33 4954

原创 编程珠玑第三章课后习题

3、编写标语函数,输入一个大写字母,输出一个字符数组,该字符数组用字符图形方式描绘该字母这题不大懂,百度了下答案,发现答案的重点在于将26个字母用特定的表示方式表示出来,可以考虑为字母的外形设计一个定制模板,自己规定一套模板编写的格式,然后写一个解析程序,每次打印字母时,只需解析字母对应的模板即可,这样主要的工作量就花在每个字母模板的编写上,当然模板的编写是相当简单的,将字母图形转化为相应的模

2013-09-20 18:01:35 3255

原创 Android ListView cotent of the adapter has changed but ListView did not receive a notification

Android ListView异步加载适配器内容时,经常遇到The content of the adapter has changed but ListView did not receive a notification.Make sure the content of your adapter is not modified from a background thread, but only from the UI thread. 该文对该问题做一定解释,主线程与非主线程应当各保存一份数据来保存适

2013-08-10 12:49:59 2136

原创 Android屏幕适配小技巧sw<n>dp

最近做一个项目需要适配到不同的平板和手持设备上,在屏幕适配上遇到了一些问题,查了Android官方文档了解了一些技巧的,现在总结如下:先解释几个概念:1、dpi(dot per inch),即每英寸像素,所有的android设备都会被分成120(low),160(medium),240(high),320(xhigh)四种,后来随着市场上android设备越来越多,google官方又增加了

2013-08-10 12:34:42 34515 10

原创 编程珠玑第二章习题

1、提供单词和词典,找到该单词的所有变位词,可以事先花时间和空间处理下该词典。因为要查找变位词,事先遍历词典,得到每个单词签名,并建立签名列表,签名列表的每个项包含了该签名的所有单词。有了这个列表,直接得到提供单词的签名去遍历签名列表就能找到所有变位词。2、给定一个4300000000个32位整数的顺序文件,请问你如何可以找到一个至少出现两次的整数

2013-08-10 11:57:05 3736 1

原创 编程珠玑第一章课后习题

1、使用库函数来进行排序这个不同语言有不同的库函数排序c有qsort,java有sort排序,具体就不贴代码了。2、用位逻辑实现位运算这个道题的核心就在于想要把某bit置0,将该位直接和0做与操作,想要保持某bit位不变,将该位与1做与操作,想要将某bit位置1,将该位与1做或操作。#define SHIFT 5#define MASK 0x1F#define N 10

2013-07-28 12:56:08 3953 1

原创 AsyncTask源码解析

上周在做项目过程中,发现使用了较多的Thread+Handler和AsyncTask的方式,这周抽空看了下AsyncTask源码(扣除各种注释,源码就剩三四百行非常简短),了解了AsyncTask的整个运行机制,现在分享如下:总体上来说AsyncTask1、使用Executor执行Callable和FutureTask的线程方法运行异步代码,并利用FutueTask的get()方法获取

2013-07-04 22:36:34 2575

原创 Android 百度地图v2.1.1在地图上绘制文字方法介绍

百度地图从v1.3.5到v2.1.1的升级过程中,由于原先的图层类Ovelay没有了draw(Canvas canvas, MapView mapView, boolean shadow) 方法,因此无法调用canvas.drawText去完成在地图上写字的功能,现在提供替代方法如下:1、自定义类继承View,在View中添加一个TextView或者复写onDraw方法在自定义View中添

2013-06-23 10:48:54 5469

原创 SQLite数据库不同时间精度查询注意事项

SQLite数据库在存储时间时提供了多种格式可供存储,不同存储方式对查询有啥影响没?不同时间精度的存储又会对查询结果有啥影响,最近做项目碰到这个问题我做如下一个总结:在数据库表中,要表示一个时间信息,我们可以根据需要使用DATE,TIME,DATETIME或者VCHAR格式存储,不同的存储方式也会带来查询的不同结果,现在我们建一个表timetest并在其中插入四行数据

2013-06-14 22:20:07 5218

原创 排序算法介绍

1、直接插入排序原理:将一数组values(长度为n)从values[i](i=1...n)开始将values[i]作为标志位pivot若pivotvalues[i-1]直接放在values[i]的位置,然后继续比较values[i-2]与pivot比较,若pivotvalues[i-2]直接放values[i-1]的位置。。。。依次类推,当某次比较的结果为pivot大或者i-k(k=1...

2013-06-02 16:21:02 1024

原创 生产者消费者问题

最近复习了下操作系统中相关内容,看到多线程同步问题,这个问题的典型案例的就是生产者,消费者问题,我昨晚利用了点时间写了个生产者消费者的小程序,权当自己复习一下基础知识。程序主要有两个线程,一个生产者线程,一个消费者线程,生产者负责生产产品(,每隔1s生产一个产品,最多生产20个),当当前未被消费者消费的产品满20个后,生产者就不会生产产品,直到有产品产品少于20个,消费者每隔3s消费一次产品,

2013-03-29 14:42:37 1445

原创 ListView遍历每个Item出现NullPointerException的异常

在使用ListView过程中我们有时候需要遍历取得每个Item项中的一些数据(比如每个Item里面有TextView,需要获取它的文本等等),但是我们在遍历过程中经常会遇到NullPointerException的异常,其实这不过是listview中getCount()和getChildCount()这个两个函数的一些使用上的不同导致的。getChildCount():这个函数是获取ListV

2013-03-16 12:20:51 12059 21

转载 HTTP协议详解

当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等。 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了Web应用程序的内部工作. 本文将对HTTP协议进行详细的实例讲解,内容较多,希望大家耐心看。也希望对大家的开发工作或者测试工作有所帮助。使用Fiddler工具非常方便地捕获HTTP Request和HT

2013-01-22 14:05:44 3903 3

原创 android手机与arm平台实现无线视频监控

最近弄毕设,利用arm平台和android手机实现监控功能,本意是想通过在arm板上用摄像头采集图像,然后传到云服务器端,android手机再从云服务器下载图片下来,形成一种智能监控,但由于种种原因,还没成型。后来百度了发现mjpg-streamer这东东,发现不错,就试了下用mjpg-streamer结合无线局域网的方法,试了下,果然行。不废话了,直接讲怎么操作。1、移植mjpg-str

2013-01-13 21:59:34 7271 8

原创 Android之修改短信程序

今天搞了个小程序,可以修改你自己android手机的任何一条短信。直接进入正题,先放两张效果图:主界面就是四个按钮加一个显示短信的listview:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.and

2012-12-11 15:50:36 20571 57

原创 Android之Fragment使用简介

Fragment是Android 3.0 (API level 11)后推出的新功能。Android3.0以前的版本也能用Fragment,不过得给工程导入一个android-support-v4.jar的包。Fragment是一个有点类似Activity的东西,因为针对安卓平板的相继推出,屏幕越来越大,在一个这么大的屏幕放一个Activity显得布局太大。因此你可以改成放两个或多个Fragmen

2012-09-13 22:41:36 5056

转载 访问者模式讨论篇:java的动态绑定与双分派

原文地址:访问者模式讨论篇:java的动态绑定与双分派java的动态绑定        所谓的动态绑定就是指程执行期间(而不是在编译期间)判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。java继承体系中的覆盖就是动态绑定的,看一下如下的代码:[java] view plaincopyclass Father {

2012-09-06 22:11:27 2109

原创 android之Http使用简介

我们做android开发免不了要向后台服务器获得数据,一般情况下,都是使用http协议进行获取。1、什么是http协议:简单来说,我们上网在浏览器地址栏输入地址相当于告诉浏览器(客户端)我要浏览哪个网页,浏览器根据你输入的地址里获取你要访问的具体服务器及内容并显示出来。Http协议就是一个规范,客户端和服务器端都认同的规范,客户端根据这个规范把要请求的数据按照一定格式组织好发送出去。而服务

2012-09-01 23:45:01 1117

自定义Recycleview

自定义Recycleview,加入根据当前位置滑动Recycleview的效果

2015-04-11

Android版百度地图MapView维护源码

使用百度地图中遇到的刷新问题的总结与反思,将源码提供在这里

2013-12-06

Android AsyncTask源码

Android AysncTask源码,用于作为博客文章的参考资料下载。

2013-07-04

BaiduMapDrawText.rar

在android使用百度地图v2.1.1版本绘制地图的方法。

2013-06-23

mjpg-streamer-mini2440-read-only.tgz

适用于mini2440上的mjpg-streamer的视频监控开发

2013-01-16

Android之AIDL工具代码实例

本代码详细介绍了安卓中AIDL的使用的代码,具体解析在本人博客有详解,有兴趣者可以前往阅读。

2012-07-27

空空如也

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

TA关注的人

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