自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 receiver执行后台任务

一个场景:定时处理一些数据,这个过程需要较长时间,而且app未必会是前端进程。如何来实现这样的功能?默认情况下,手机放置一段时间后,是会熄屏,然后停止cpu的。执行后台任务时,需要唤醒cpu。唤醒cpu可以使用闹钟(alarm),本文不做具体介绍,本文考虑的是接收到广播之后的处理。Receiver接收广播的回调是在主线程中实现的,当广播所驱动的行为耗时的话,可能

2016-05-02 18:22:01 1115

原创 闹钟(Alarm)

刚接触android开发的时候,我是用定时器(Timer)来实现定时任务,产品发布后,部分用户反馈定时任务没有执行。很长一段时间之后,才意识到cpu休眠之后,timer也是不起作用的。执行定时任务要用到闹钟(Alarm)。引用stackoverflow的回答A Timer will start a thread that will keep track of w

2016-05-02 16:42:47 737

原创 Activity的启动模式

背景介绍:Android是通过Task来管理Activity的,同一个时间内是可能存在多个Task的,每个Task都有自己的栈(Back Stack)来存储Activity。这样的话,启动 MyActivity 时的行为是怎么样子的?若是 Background Task 已经有 MyActivity 时,会发生什么?若是 Current Task 已经有 MyActivity时,会发生什么

2016-04-29 00:32:28 274

原创 图片加载的基本方式

图片很耗内存,同时了也是极其重要的一个模块。各种各样的色彩,让app更加酷炫。主要涉及到的类BitmapFactoryBitmapFactory.Options加载图片的方式BitmapFactory的一系列decode函数。通常,不直接加载图片,而是获取图片的大致信息。比如高度,宽度,图片类型,然后根据实际情况,获取缩放后的图片(试想,

2016-04-28 20:49:32 400

原创 Bitmap的存储发展

Android 2.2 (API level 8)及之前的版本,垃圾回收(gc)时,app线程是暂停的,这会影响app的性能体验Android 2.3修改了这个问题,gc变为并行发生的。对于Bitmap来说,当没有被引用时,内存是被回收的。Android 2.3.3(API level 10)及之前版本,Bitmap的图像像素点是存放在native memory中的,J

2016-04-28 20:47:00 366

原创 mk文件释义

背景IT行业变化很快,需要长期学习新的知识,记忆力有限,有些知识点长期没用,多少有点遗忘,做点记录。 一个小项目的jni目录结构.├── Android.mk├── Application.mk├── kesyPrint.c├── kesyPrint.h├── rename.bat├── UninstalledObserver.c└── watc

2015-12-19 16:33:44 2067

原创 NDK和静态库

计算机领域有这静态库和动态链接库的概念windows系统动态链接库:windows编程里是 *.dll及其引入库静态库:*.lib类unix系统动态链接库:*.so静态库:*.a为什么要静态库?1. 模块化及代码复用2. 可执行文件在链接的过程中只会打包使用到的函数,这样可以减小包的大小。举个例子,有这

2015-12-19 15:01:35 688

原创 NDK C层代码崩溃定位

Pro Android C++ with NDK读书笔记 之 NDK层崩溃定位环境win7ADT版本Build: v22.6.2-1085508NDK版本  android-ndk-r9d-windows-x86genymotion模拟器获取崩溃堆栈编译时碰到个问题:APP_PLATFORM andro

2015-12-19 13:44:05 993

原创 NDK下断点调试

NDK下断点调试Pro Android C++ with NDK读书笔记背景早期我在写Android C层的代码都是直接在subline Text中编写的,个人觉得eclipse对ndk层的支持并不那么美。老家伙了,又是个做事严谨的人,代码崩溃,直接查看logcat日志,看看代码基本都能知道哪里出错,并不需要借助ide来调试。当然,这个只限于个人开发者。团队开发是另一种情况,而且运

2015-12-18 22:02:31 584

原创 为什么需要ndk

既然谈到ndk,就顺便谈谈对C++的看法吧。关于语言之争一直存在。也有人用刀做对比,凸显出C++的复杂性。C++复杂?或许吧。我记得以前的一个总监提过,我们只是用C++的一部分。的确,我们常用的仅仅是C++的一个小小的子集,并不需要什么都掌握的,更何况,一个项目中能用到多少特性了。很久以前我在做pdf文档解析的时候,时间关

2015-12-18 21:58:19 1172

原创 crash反馈-----ACRA使用验证经历

ACRA是什么?ACRA是一个用来反馈崩溃日志的android库。崩溃日志发送到哪里?ACRA支持多种后台方式,也支持自己定制后台https://github.com/ACRA/acra/wiki/Backends我个人是使用email的方式怎么使用?官方介绍了网址https://github.co

2015-12-06 14:30:28 1449

原创 volley解惑

volley是什么?volley是2013年Google I/O大会上推出了一个新的网络通信框架,封装了http网络请求的通信细节,能够简单的进行http请求,简单地处理网络图片。如何使用?a. 生成Request对象b. 创建RequestQueuec. 将Request加入到RequestQueue中,网络请求完成后,会有调用Request对

2015-11-29 22:16:23 549

原创 greenDao---orm框架

想找个android上的数据库框架,一开始接触了XUtils,没什么文档,代码看着也别扭,不知从何下手,直接放弃,google搜索后,对比了下,选择了greenDao(为何?看着那牛逼的对比报表,以及官网简单易懂的使用介绍)。greenDao会为我们生成一些必要的类,这要求创建一个独立的java工程,定义好表格格式,运行java工程,生成相应的类

2015-11-23 21:06:37 858

原创 Relinker解惑

Relink是什么?Relink是一个加载Android so文件(shared library)的一个库。为什么要使用Relink库?载入so库的传统做法是使用System.loadLibrary(library);但是有时会出现UnsatisfiedLinkError,Relink库能大幅减小报错的概率出现Un

2015-11-20 18:57:23 6453

原创 Android使用特殊权限的一种代码实现

android编程中有时候需要用到一些特殊的权限,这些权限正常情况下是不对普通的第三方app开发商开放的。举个例子 WRITE_SECURE_SETTINGS,android sdk文档是这么解释的public static final String WRITE_SECURE_SETTINGS Added in API level 3Allows an application to

2015-11-19 15:04:47 1113

原创 使用AsyncTask的常见问题及解决方式

Configuration Changes(旋转屏幕是其中一种)时,会销毁并重建Activity,使用AsyncTask常出现的问题有,AsyncTask还在运行,但是屏幕一旋转,Activity销毁并重建,这样的话很可能导致崩溃。解决方式一. 使用worker fragment老外有篇博文介绍了这个的实现,我把它称为worker fragment将As

2015-11-19 14:05:20 1064

原创 AsyncTask解惑

AsyncTask作为执行后台操作常见的一种实现方式,还是有必要阅读下源码,了解其实现机制的。这里是使用Android4.4的源码使用AsyncTask的规则(这几点sdk文档都有说明)1. AsyncTask的类必须在UI线程加载(从4.1开始系统会帮我们自动完成)2. AsyncTask对象必须在UI线程创建3. execute方法必须在UI线程调用4. 不

2015-11-19 13:16:49 360

空空如也

空空如也

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

TA关注的人

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