- 博客(37)
- 资源 (1)
- 收藏
- 关注
原创 android4.0平台service程序分析
service程序源代码路径frameworks/base/cmds/service/service.cppint main(){ // 获得ServiceManager服务的接口sm, 通过这个接口客户获得其他服务信息 sp sm = defaultServiceManager(); // 使stdout清空,立刻输出所有在缓冲区中的内容 fflu
2014-11-28 23:54:55 358
原创 Preference实现自定义视图
public class CustomePreference extends Preference { private LinearLayout mAccountContainer = null; private Context mContext = null; private Activity mActivity ; pub
2014-01-10 19:25:00 547
原创 Android性能优化笔记
1. 静态方法代替虚拟方法 如果不需要改变某个变量的值, 可以直接将这个值设置为static, 这样在访问这个变量的时候可以加快速度。2. 访问本地变量(函数中)比访问类的成员变量要快很多。3. 对常量使用static final修饰符。4. 避免使用浮点数, 浮点数计算时间比其他类型的数计算时间长。5. 尽量使用系统中已经存在类和类库。
2014-01-05 11:44:32 476
转载 解包 boot.img 修改后,新生成 boot.img
1. 首先下载工具,split_bootimg.pl2. 执行命令将 kernel,ramdisk 提取出来。# ./split_bootimg.pl boot.img Page size: 4096 (0x00001000)Kernel size: 3038516 (0x002e5d34)Ramdisk size: 199185 (0x00030a11)Secon
2013-12-24 14:39:18 1382
原创 Android手机开发ubuntu系统中常用的搜索命令
ubuntu常用的搜索命令find通用命令find pathname -options [-print -exec -ok]在当前目录搜索SkCanvas.cpp文件find -name 'SkCanvas.cpp' 或 find . -name 'SkCanvas.cpp'在目录idh.code中查找带SkCanvas的文件find idh.code/ -name
2013-08-07 10:53:07 504
原创 Android上面打印函数堆栈
public static void log(String logMsg) { Thread current = Thread.currentThread(); long tid = current.getId(); StackTraceElement[] stack = current.getStackTrace(); String
2013-08-01 13:27:23 554
原创 标量数据
标量数据标量在大多数情况下不是数字就是字符串所有数字的内部格式都是一致的,不管是整数和浮点数, 在内部, perl均看成是 双精度浮点数来处理.字符串单引号字符串 和 双引号字符串单引号字符串中除了'和\之外均为字符串的内容, 要得到'和\可以使用反斜线\来进行转义'\'sdklsdjfd\\'双引号字符串在双引号字符串中,反斜线可以用来控制字符,或
2013-07-11 20:38:57 2396
转载 git服务器配置
服务器:ubuntu 12.04 (192.168.15.6)客户端:ubuntu 10.04 (192.168.15.5)Gitolite 搭建 Git 服务器,实现 Gitolite 服务器管理账户与普通用户无密码访问,且 Gitolite 管理员与普通用户在server上没有登录权限。 1.服务器端:1.1 创建 Git 服务器专用帐户 git
2013-07-11 11:46:48 649
转载 Makefile中的wildcard用法
在Makefile规则中,通配符会被自动展开。但在变量的定义和函数引用时,通配符将失效。这种情况下如果需要通配符有效,就需要使用函数“wildcard”,它的用法是:$(wildcard PATTERN...) 。在Makefile中,它被展开为已经存在的、使用空格分开的、匹配此模式的所有文件列表。如果不存在任何符合此模式的文件,函数会忽略模式字符并返回空。需要注意的是:这种情况下规则中通配符
2013-07-05 21:13:36 463
转载 JAVA wait(), notify(),sleep
在JAVA中,是没有类似于PV操作、进程互斥等相关的方法的。JAVA的进程同步是通过synchronized()来实现的,需要说明的是,JAVA的synchronized()方法类似于操作系统概念中的互斥内存块,在JAVA中的Object类型中,都是带有一个内存锁的,在有线程获取该内存锁后,其它线程无法访问该内存,从而实现JAVA中简单的同步、互斥操作。明白这个原理,就能理解为什么synchron
2013-07-05 19:10:49 421
原创 Makefile & Android.mk文件中如何输出打印信息
在makefile中打印输出信息的方法是:$(warning xxxxx)或者$(error xxxxx)输出变量方式为:$(warning $(XXX))
2013-07-04 20:36:58 1223
转载 Android 本地代码中的LIKELY和UNLIKELY宏
阅读Android Frameworks中的C++代码时,经常会碰到在条件判断语句中使用了LIKELY和UNLIKELY这两个宏,找到这两个宏的定义如下:#define LIKELY( exp ) (__builtin_expect( (exp) != 0, true )) #define UNLIKELY( exp ) (__builtin_expect( (ex
2013-06-27 17:01:02 472
转载 类型转换
static_cast用法:static_cast ( expression )该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法:①用于类层次结构中基类(父类)和派生类(子类)之间指针或引用的转换。进行上行转换(把派生类的指针或引用转换成基类表示)是安全的;进行下行转换(把基类指针或引用转换成派生类表示)时,
2013-06-27 15:56:14 438
转载 android 动态库跟踪的一个小办法
在android开发中,java的异常比较直观,但是动态库异常打印的都是地址,利用下面的方法可以锁定发生故障的函数。arm-eabi-addr2line -C -f -s -e 动态库 address可以解析出发生故障的地址信息。比如:Arm-eabi-addr2line –C –f –s –e libpcmhost.so 0c480打印出:_JNIEnv
2013-06-25 11:47:12 580
原创 pthread_once、pthread_key_create和pthread_getspecific和pthread_setspecific
NativeMessageQueue::NativeMessageQueue() { mLooper = Looper::getForThread(); if (mLooper == NULL) { mLooper = new Looper(false); Looper::setForThread(mLooper); }}s
2013-05-28 20:35:14 1888
转载 android IPC通信中的UID和PID识别
IPCThreadState对象维护了2个变量 pid_t mCallingPid; uid_t mCallingUid; 从变量名称来看,这2个变量保存了进程的PID和UID,并且由于这两个变量由IPCThreadState对象维护,可见它们是与IPC相关的。具体它们
2013-05-07 13:52:48 419
转载 Android中使用SDcard进行文件的读取方法
我们在使用SDcard进行读写的时候 会用到Environment类下面的几个静态方法 1: getDataDirectory() 获取到Androi中的data数据目录 2:getDownloadCacheDirectory() 获取到下载的缓存目录 3:getExternalStorageDirectory() 获取到外部存储的目录 一般指SDcar
2013-04-19 09:46:32 916
转载 Java中finalize的使用
java提供finalize()方法,垃圾回收器准备释放内存的时候,会先调用finalize()。 (1).对象不一定会被回收。 (2).垃圾回收不是析构函数。 (3).垃圾回收只与内存有关。 (4).垃圾回收和finalize()都是靠不住的,只要JVM还没有快到耗尽内存的地步,它是不会浪费时间进行垃圾回收的。 有时当撤消一个对象时,需要完成一些
2013-04-19 09:27:48 489
转载 android AsyncTask介绍
AsyncTask和Handler对比1 ) AsyncTask实现的原理,和适用的优缺点AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程.使用的优点:l 简单,快捷l 过程可控 使用的缺点:l
2013-04-18 15:45:31 391
转载 AtomicInteger介绍
AtomicInteger,一个提供原子操作的Integer的类。在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,不可避免的会用到synchronized关键字。而AtomicInteger则通过一种线程安全的加减操作接口。来看AtomicInteger提供的接口。//获取当前的值public final int get()//取当前的值,并
2013-04-18 15:33:19 620
转载 android:clearTaskOnLaunch
关于android:clearTaskOnLaunch,网上的资料很少,唯一有几个资料,还说得很含糊,看着让人摸不着头脑,今天硬着头皮看了下英文文档,再结合自己的尝试,终于是稍微理解了它的用处。 默认情况下,android:clearTaskOnLaunch的值是false 此时,比如你的应用里有N个Activity,其中有个是设置页面,你从主页面进入到
2013-04-18 15:24:19 1232
原创 c语言中常用算法
1. 整数的各位分离 void inte(int n) { int i; while(n) { i=n%10; n=n/10; } }2. C语言常考算法求最大、最小值
2013-02-19 09:43:43 419
原创 输入法框架
/frameworks/base/services/java/InputMethodManagerService.java这是整个系统当中,一切与输入法有关的地方的总控制中心。它通过管理下面三个模块来实现系统的输入法框架。1、/frameworks/base/services/java/WindowManagerService负责显示输入法,接收用户事件。2、/framew
2013-01-25 10:05:25 339
原创 Android.mk文件
LOCAL_PATH := $(my-dir) // 获得当前的目录include $(CLEAR_VARS) // 清空已设置的本地变量LOCAL_MODULE := EasyCamera // 模块的名称, 一般在编译共享库或静态库用到LOCAL_SRC_FILES := $(LOCAL_MODULE).apk // 需要编译的源文件列表LOCAL_MODULE_CLA
2013-01-25 10:02:21 207
转载 tar命令使用小结
-c : 建立一个压缩文件的参数指令(create的意思)。-x: 解开一个压缩文件的参数指令。-t:查看tarfile里面的文件。特别注意: 在参数的下达中, c/x/t仅能存在一个! 不可同时存在,因为不能同时存在压缩和解压缩。-z: 是否同事具有gzip的属性, 亦即是否需要用gzip压缩。-j:是否同时具有bzip2的属性, 亦即是否需要用bzip2压缩。-
2013-01-09 00:47:05 629
转载 Android中查看内存
Linux这种现代操作系统的内存使用是很复杂的,因此很难准确知道你的应用程序使用了多少内存。查看内存使用的方式有很多种,但是各个方式查看到的结果可能会有微略不同。1.Running services 通过手机上Running services的Activity查看,可以通过Setting->Applications->Running services。关于Running ser
2013-01-05 20:22:50 507
转载 Android内存泄漏总结与调试
Java 编程中经常容易被忽视,但本身又十分重要的一个问题就是内存使用的问题。Android应用主要使用Java语言编写,因此这个问题也同样会在Android开发中出现。本文不对Java编程问题做探讨,而是对于在Android中,特别是应用开发中的此类问题进行整理。 Android 主要应用在嵌入式设备当中,而嵌入式设备由于一些众所周知的条件限制,通常都不会有很高的配置,特别是内存是
2013-01-05 17:15:37 346
转载 Android之 BatteryService
电池的信息,电压,温度,充电状态等等,都是由BatteryService来提供的。BatteryService是跑在system_process当中,在系统初始化的时候启动,如下 在BatteryService.java中: Log.i(TAG, "Starting Battery Service."); BatteryService b
2013-01-05 14:16:37 349
转载 android JNI 学习笔记
JNI是Java Native Interface的缩写,译为Java本地接口。它允许Java代码和其他语言编写的代码进行交互。在android中提供JNI的方式,让Java程序可以调用C语言程序。android中很多Java类都具有native接口,这些接口由本地实现,然后注册到系统中。 主要的JNI代码放在以下的路径中:frameworks/base/core/jni/,这个
2013-01-05 14:06:25 326
转载 Android系统的reboot之我见
近段时间关注Android系统的reboot部分,在应用程序调用reboot函数可以实现重启。顺着流程看看reboot如何运作。在Watchdog.java文件里,有一例: void rebootSystem(String reason) { Slog.i(TAG, "Rebooting system because: " + reason);
2013-01-04 22:49:57 538
原创 HandlerThread用法小结
在文件SmsReceiverService.java文件中有这样一段代码 HandlerThread thread = new HandlerThread(TAG, Process.THREAD_PRIORITY_BACKGROUND); thread.start(); mServiceLooper = thread.getLooper();
2012-11-14 11:02:29 3084
原创 adb常用命令总结
adb命令的主要用途 1. 运行android设备的shell(命令行)。 2.管理模拟器或android设备的映射端口。 3. 安装和卸载应用程序。 4.计算机和android设备之间的上传和下载文件。关闭或开启adb服务 关闭adb服务 adb kill-server 开启adb服务 adb start-server查看当前连接的设备
2012-11-07 16:41:36 11387
原创 展讯平台Android(2.3)属性的访问与设置
在展讯6820代码中customize\customer_cfg\sp6820a\res\system.prop文件中添加ro.floatkey.show = true属性值, 最后编译完成后,在idh.code\out\target\product\hsdroid\system\build.prop会添加ro.floatkey.show = true属性值, 我们在android应用程序中如
2012-11-07 14:23:43 2785
原创 JAVA中的环境变量
JAVA_HOME:java的安装路径,在环境变量中的值为java的安装路径。例如"D:\Program Files\Java"。path:变量值为".;%JAVA_HOME%\bin"(%JAVA_HOME%表示上面设置的JAVA_HOME的值), 可以直接设置上面JAVA的安装路径("."表示当前的路径)。classpath:变量含义是为java加载类路径, 只有类
2012-03-31 15:50:42 304
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人