android
文章平均质量分 78
chenzujie
这个作者很懒,什么都没留下…
展开
-
android Activity之间跳转。
1、首先得有两个Activity,假设为Class A和Class B。2、(这里假设从A跳到B),Class A 和B必须在Manifest.xml注册过 若A B中有一个为首Activity,则会被自动注册。类名前的“.”表示当前包3、在A中使用Intent: Intent intent = new Intent原创 2012-03-28 23:36:10 · 1160 阅读 · 0 评论 -
MuPDF for Android编译过程小结
最近使用mupdf在自己的app上用来打开pdf类型的文件,把自己编译的过程在这里做个小小的记录源码下载首先需要把mupdf的源码下载下来为后续编译出so文件做准备,这里推荐官方的下载地址MuPdf官网,里面提供了git地址,这里还推荐另一个地址GITHUB地址 GITHUB地址,而且GITHUB上还有比较详细的文档说明。源码编译在编译前,GITHUB上的文档说了我们还需要下载一份原创 2015-12-10 19:06:26 · 10216 阅读 · 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 · 4082 阅读 · 0 评论 -
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 · 7897 阅读 · 10 评论 -
OKHttp源码解析(二)
上一篇文章里我们大致分析了OkHttp整个请求的流程,重点分析了具体发送请求前都做了哪些操作,这篇文章我们将继续上篇的内容,看看在发送请求过程中做了什么,看了上篇文章的应该都知道,我们将从HttpEngine的sendRequest入手看是如何操作的public void sendRequest() throws RequestException, RouteException, IOExcepti原创 2015-07-29 23:22:33 · 9463 阅读 · 10 评论 -
OKHttp源码解析(一)
在上一篇博客中,我们介绍了OKHttp的基本用法,这一篇我们将从源码角度来看下OKHttp是如何完成一些列的网络的操作的。 我们知道在okhttpclient同步请求和异步请求调用的接口不一样,但它们最后都是殊途同归地走到Call里面的private Response getResponseWithInterceptorChain(boolean forWebSocket) throws IOEx原创 2015-07-27 23:14:45 · 31016 阅读 · 10 评论 -
Android推送进阶课程学习笔记
Android推送进阶课程学习笔记今天在慕课网学习了Android进阶课程推送的服务器端处理回执的消息 。这集课程主要介绍了,当服务器往客户端推送消息的时候,客户端需要发送一个回执回来确认收到了推送消息才算一次完整的推送过程。 具体的实现方法为服务器推送一个消息到客户端的时候,会生成一个相应的uuid标识这个消息,并把这个消息以及uuid存储到数据库中,客户端收到消息后,取出其中的uuid并将这个原创 2015-06-28 23:26:33 · 2357 阅读 · 1 评论 -
利用Recycleview水平平移并自动挪动Item位置(仿Instagram效果)
先来看看Instagram在编辑图片水平挪动的过程中的效果图原创 2015-04-11 16:02:36 · 12494 阅读 · 2 评论 -
编译Android源码与内核总结
这些天花了些时间自己下载了android源码来编译,其中走了一些弯路导致耗了些时间,现在重新梳理总结下,让有相同想法的人自己编译的时候能少走些弯路,官方指导文档在http://source.android.com/source/initializing.html。1、安装linux环境我是windows系统,安装了Vmware虚拟机,在虚拟机上装了ubuntu-12.04,我的这个版本是3原创 2014-10-20 22:35:08 · 4442 阅读 · 20 评论 -
仿QQ聊天列表界面demo
先看下今天要实现的demo的效果图 大体分解下主要要如下需求: 1、聊天列表有个会伸缩的头部,伸缩过程中列表不可滑动 2、列表项可以向左滑动拖出删除功能,并且点击删除该列表项,滑动列表时有处于删除功能态的列表想需先重置列表状态 3、列表项右侧有代表未读条数的小圈,拖动可删除。列完需求之后,我们再来看如何一步步实现。先看第一个需求点,大致看需要一个头部View加ListView构成。publi原创 2015-12-24 16:57:09 · 9288 阅读 · 2 评论 -
Android WebView保存登陆cookie
最近给H5部门做一个app,需求比较简单,就是用webview直接loadUrl去加载网页,但做的时候遇到一个小需求,网上找的答案都不是很让人满意,感觉好多复制黏贴,所以想想,还是自己写一篇吧。 遇到的需求是H5网页里有让用户登陆的界面,用户登陆成功后,退出app,下次要能记住登陆状态,不需要再次登陆,简单说就是要在app本地保存登陆cookie。 没做过这方面需求,网上找找资料,发现大部分讲的原创 2016-02-27 17:12:12 · 10005 阅读 · 9 评论 -
Zxing之Android移植篇
目前二维码扫描功能在app上已经非常成熟了,而zxing项目也是目前可以说是最流行的二维码扫描方面的开源项目了,今天介绍下,怎么把zxing移植到我们android工程项目,最近做这方面的工作,发现网上这方面的介绍比较少,今天整理一篇。 zxing github网址 github项目代码很多,刚开始看的时候我看得有点懵逼,其实移植到android上只需要三个目录 上面用红色圈圈画出的三部分有需原创 2017-02-08 17:43:33 · 6484 阅读 · 3 评论 -
Zxing之Android源码解析
上一篇文章中Zxing项目介绍之移植篇我们介绍了如何将Zxing项目移植到自己的项目,并且简化了大量的代码只剩下基本的扫描功能,这篇文章将针对前一篇文章的简化后的Demo解析Zxing二维码解析的大致过程。原创 2017-02-13 15:25:23 · 3811 阅读 · 1 评论 -
sqlcipher加密数据库
今天介绍一个在之前公司用到的技术(发现文章一直在草稿箱里没发,今天发了),觉得还不错,分享出来。在android开发中有时候需要对数据库进行加密处理,不管这个数据库是我们程序自己创建的还是我们自己从外部导入的已经存在的数据库,我们都有可能需要对它进行加密。加密方式无非两种,一种是对读写的内容进行加密,另一种就是对数据库整个文件进行加密。第一种方式就非常多了,这里不做介绍,今天主要介绍第二种方式——原创 2017-02-13 15:32:17 · 1544 阅读 · 0 评论 -
原生接入React-Native实战之配置篇
最近工作上的项目要接入react-native技术,因此需要把原生项目接入到rn的配置环境中,整个过程遇到了不少坑,rn以后会是个趋势,也许慢慢会有越来越多的人需要将现有项目接入rn,估计在配置的时候都会遇到一些坑,这篇文章记录下整个配置的过程,既为提自己做个记录,也希望能帮到有同样项目需求的人。搭建开发环境开发环境的搭建 这部分只要跟着官方文档里就行,一般都会比较顺利。完成rn环境配置进入项目跟目原创 2016-11-13 17:07:05 · 5696 阅读 · 0 评论 -
拆轮子之热修复框架AndFix
这一两年各种热修复框架风起云涌,各种优秀开源框架不断推陈出新,今天就来介绍一下AndFix,虽然这套框架不是能解决所有问题,但其中的思想精髓还是很值得研究一下的。使用方法1、从AndFix 官网下载最新的AndFix代码,导入到Demo工程里作为library,也可以用添加依赖的方式compile 'com.alipay.euler:andfix:0.3.1@aar'这里我们要对源码进行分析,因此使原创 2016-09-27 14:38:58 · 1366 阅读 · 0 评论 -
拆轮子之动态加载DynamicLoadApk
本篇文章demo地址动态加载是什么应用在运行的时候通过加载一些本地不存在的可执行文件实现一些特定的功能,Android中动态加载的核心思想是动态调用外部的Dex文件,极端的情况下,Android APK自身带有的Dex文件只是一个程序的入口(或者说空壳),所有的功能都通过从服务器下载最新的Dex文件完成。动态加载技术的运用1、可以缩小apk体积,比如一个app的一些不常用但又不得不要的模块可以采用放原创 2016-08-26 16:30:57 · 4394 阅读 · 0 评论 -
Android Ui卡顿检测
好久没来写技术博客了,惭愧惭愧,因为前段时间在忙其他一些事情,这段时间稍微时间松了点,赶快来补写下技术博客,可不能荒废了。 今天介绍的技术是一个很简单,但是确实有用的东西。众所周知,做android开发的应该都知道UI线程这个东西吧,UI线程顾名思义就是用来执行渲染UI相关操作的,为了良好的用户体验,在UI线程上的任何操作就是要快,不然操作5s就会anr哦。从代码级别来说,UI线程的快速响应可以简原创 2016-07-12 16:59:08 · 3844 阅读 · 0 评论 -
OKHttp使用简介
现在android网络方面的第三方库很多,volley,Retrofit,OKHttp等,各有各自的特点,这边博客就来简单介绍下如何使用OKHttp。梗概OKHttp是一款高效的HTTP客户端,支持连接同一地址的链接共享同一个socket,通过连接池来减小响应延迟,还有透明的GZIP压缩,请求缓存等优势 OKHttp官网配置环境支持Android 2.3及其以上版本,要求java JDK1.7以上j原创 2015-07-22 11:16:12 · 87525 阅读 · 34 评论 -
Android版百度地图MapView维护
最近项目工程使用百度地图,功能确实强大,但就像论坛里很多人提的那样,在MapView的刷新问题上,百度地图还有一定bug,比如在一个dialog中放一个MapView,却发现dialog中的MapView展现效果很差,很多地图上的标志没有刷新出来。比如下图我们可以看到整个地图完全乱套了,现在我贴在这个dialog的代码,然后一起分析下问题package baidumapsdk.de原创 2013-12-06 22:18:50 · 9855 阅读 · 0 评论 -
Android之PowerManager电源管理
翻译来源PowerManager这个类让你拥有控制设备状态的权利。使用这个api类会很明显地影响设备电量的使用时长。除非你确实需要PowerManager.WakeLock否则不要轻易使用它们,并尽量使用低等级功能,并确保在你不使用它们的时候立即释放PowerManager.WakeLock。你可以通过使用Context.getSystemService来获取这个类的实例。翻译 2013-10-23 23:39:42 · 11891 阅读 · 1 评论 -
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 · 5070 阅读 · 0 评论 -
android之Http使用简介
我们做android开发免不了要向后台服务器获得数据,一般情况下,都是使用http协议进行获取。1、什么是http协议:简单来说,我们上网在浏览器地址栏输入地址相当于告诉浏览器(客户端)我要浏览哪个网页,浏览器根据你输入的地址里获取你要访问的具体服务器及内容并显示出来。Http协议就是一个规范,客户端和服务器端都认同的规范,客户端根据这个规范把要请求的数据按照一定格式组织好发送出去。而服务原创 2012-09-01 23:45:01 · 1133 阅读 · 0 评论 -
Android之AIDL使用解析
我们都知道android程序内的数据共享比较容易理解,毕竟在一个程序内。但如果android程序与程序之间应该如何共享并传递数据呢?毕竟一个程序不能访问另一个程序的内存空间,因此android提供了AIDL工具来将对象分解成操作系统可以理解的基本单元,并且有序的通过进程边界,在不同程序间传递。具体使用方法如下:(一)创建服务器端程序,发送数据的一方。1、创建.aidl文件I原创 2012-07-27 10:43:25 · 3985 阅读 · 1 评论 -
Android之Failed to install *.apk on device 'emulator-5554!
有时候启动模拟器运行程序的时候会遇到如下问题:现在提供解决方法如下:删除掉bin文件夹中的.apk文件,然后重新启动模拟器,就可以正常启动了最后得到效果图:原创 2012-07-25 12:25:14 · 1755 阅读 · 1 评论 -
Android之Activity生命周期
大家好,今天给大家详解一下Android中Activity的生命周期,我在前面也曾经讲过这方面的内容,但是像网上大多数文章一样,基本都是翻译Android API,过于笼统,相信大家看了,会有一点点的帮助 ,但是还不能完全吃透,所以我今天特意在重新总结一下.首先看一下Android api中所提供的Activity生命周期图(不明白的,可以看完整篇文章,在回头看一下这个图,你会明白的):转载 2012-07-24 10:50:03 · 780 阅读 · 0 评论 -
[转自]同步/异步与阻塞/非阻塞的区别
我喜欢用自己的语言通过联系现实生活中的一些现象解释一些概念,当我能做到这一点时,说明我已经理解了这个概念.今天要解释的概念是:同步/异步与阻塞/非阻塞的区别.这两组概念常常让人迷惑,因为它们都是涉及到IO处理,同时又有着一些相类似的地方.首先来解释同步和异步的概念,这两个概念与消息的通知机制有关.举个例子,比如我去银行办理业务,可能选择排队等候,也可能取一个小纸条上面有我的转载 2012-07-24 09:33:32 · 753 阅读 · 0 评论 -
解决 emulator-5554 disconnected
使用Android模拟器经常遇到连不上、连一次掉一次等诸多问题 在此种情形下,重启ADB即可:在eclipse下:window -> Show Views -> device -> view menu -> Reset adb或者在命令行状态下:adb kill-server---再adb start-server;转载 2012-06-08 19:53:09 · 968 阅读 · 0 评论 -
android Handler解析
android中的Handler类可以用来执行Runnable类的run方法,它不同于java常用的两种线程调用方法(1、将Runnable类放入Thread构造函数中,然后调用start方法执行;2、扩展Thread类,覆写run方法,并调用start方法执行),此两个方法会创建一个新的进程执行run方法,handler大部分则是在创建它的线程里直接运行run方法。handler可以分发Me原创 2012-05-13 20:09:18 · 1094 阅读 · 0 评论 -
ListView遍历每个Item出现NullPointerException的异常
在使用ListView过程中我们有时候需要遍历取得每个Item项中的一些数据(比如每个Item里面有TextView,需要获取它的文本等等),但是我们在遍历过程中经常会遇到NullPointerException的异常,其实这不过是listview中getCount()和getChildCount()这个两个函数的一些使用上的不同导致的。getChildCount():这个函数是获取ListV原创 2013-03-16 12:20:51 · 12104 阅读 · 21 评论 -
SQLite数据库不同时间精度查询注意事项
SQLite数据库在存储时间时提供了多种格式可供存储,不同存储方式对查询有啥影响没?不同时间精度的存储又会对查询结果有啥影响,最近做项目碰到这个问题我做如下一个总结:在数据库表中,要表示一个时间信息,我们可以根据需要使用DATE,TIME,DATETIME或者VCHAR格式存储,不同的存储方式也会带来查询的不同结果,现在我们建一个表timetest并在其中插入四行数据原创 2013-06-14 22:20:07 · 5282 阅读 · 0 评论 -
Android之Touch事件分发机制
直接进入正题,在android开发中,手势触碰是经常使用到的。这两天刚好在看这方面的资料,在这里写篇文章做个小总结。首先必须知道五大布局Layout:LineaLayout,RelativeLayout,FrameLayout,AbsoluteLayout都继承自ViewGroup,而TableLayout继承LinearLayout,也相当于继承于ViewGroup。而ViewGroup原创 2013-10-27 23:35:32 · 11739 阅读 · 12 评论 -
Android之修改短信程序
今天搞了个小程序,可以修改你自己android手机的任何一条短信。直接进入正题,先放两张效果图:主界面就是四个按钮加一个显示短信的listview:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.and原创 2012-12-11 15:50:36 · 20737 阅读 · 57 评论 -
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 · 4988 阅读 · 0 评论 -
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 · 2150 阅读 · 0 评论 -
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 · 34555 阅读 · 10 评论 -
AsyncTask源码解析
上周在做项目过程中,发现使用了较多的Thread+Handler和AsyncTask的方式,这周抽空看了下AsyncTask源码(扣除各种注释,源码就剩三四百行非常简短),了解了AsyncTask的整个运行机制,现在分享如下:总体上来说AsyncTask1、使用Executor执行Callable和FutureTask的线程方法运行异步代码,并利用FutueTask的get()方法获取原创 2013-07-04 22:36:34 · 2584 阅读 · 0 评论 -
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 · 5513 阅读 · 0 评论 -
LeakCanary源码分析
内存泄漏是每个android app都应当重视的东西,在检测内存泄漏这块大家应该都用过LeakCanary这款神器,直接自动检测并形成报告,非常方便查看,github上有直接的使用方式github地址Demo使用介绍github上download下代码,直接运行 点击按钮,然后旋转屏幕,没一会就发现leakcanary弹内存泄漏的提示。 为什么内存泄漏了,看下demo代码就知道原创 2017-06-24 22:34:15 · 867 阅读 · 0 评论