
Android framework
文章平均质量分 98
Android framework
chituhuan
这个作者很懒,什么都没留下…
展开
-
字符编码
写在前面: 平时在编辑的时候经常遇到一些编码的问题,出现乱码了就调整一下字符编码就没有问题了。最近做了recovery界面的汉化工作,对字符编码的问题有了更深入的了解。在网上搜集了很多资料,原始地址已经忘了,下面的大部分内容来自网络,谢谢大家的分享,由于原始的地址已经无法给出,有异议的请留言。一首先了解下字符集和字符编码的概念 http://www.cnblogs.c原创 2016-08-31 12:09:30 · 460 阅读 · 0 评论 -
android启动速度优化
Android 开机启动速度优化 一 在开机启动中,可以借助bootchart 工具分析android的启动过程。bootchart是一个用于linux启动过程性能分析的开源软件工具,在系统启动过程自动收集CPU占用率、进程等信息,并以图形方式显示分析结果,可用作指导优化系统启动过程。 1、UBuntu下安装bootchart工具 需要安装的原创 2016-08-31 12:08:54 · 438 阅读 · 0 评论 -
android_动画框架
Android 动画框架动画API介绍View动画 (tween animation)帧间动画(frmae animation)属性动画 (Property Animation)View 动画原理以 AlphaAnimation 为例,AlphaAnimation new 以后,通常要调用View的startAnimationstartAnimation来执行动画: alphaImageView.s原创 2016-10-27 21:19:25 · 483 阅读 · 0 评论 -
Android Surfaceflinger 的使用
最近在做一个android的新平台,涉及到了SurfaceFlinger的使用。又要在另外一个平台上实现一个抓屏的功能,被折磨的囧啊。最近终于能够闲下来整理一下这块的东西了。网上有很多讲解SurfaceFlinger的文章,但大部分都是原理分析,看的头大。下面是一个测试小例子,测试SurfaceFlinger的使用,并结合skia测试了软合成shotsceen的性能。点击(此处)折叠或原创 2016-08-31 12:11:29 · 1870 阅读 · 0 评论 -
Android 强弱指针分析
Android 强弱指针分析在C C++ 语言中,内存的管理历来是一个比较难的问题,在java 中内存new 的对象由jvm 虚拟机自动回收。在Android 上面提供了sp 和wp 两种类型的指针,管理new 出来的对象,能够自动的回收对象,专业于业务减轻在内存管理上的负担。实现对对象的管理通常的做法是使用引用计数,每增加一次引用引用计数增加一,当引用计数为0时,销毁这个对象。引用计数可以原创 2016-12-02 21:11:31 · 1976 阅读 · 0 评论 -
android jni 的编写一(JNI的静态注册)
使用ndk开发需要编写jni.jni函数注册有两种方法。第一种静态注册,第二种动态注册。在NDK开发中使用第一种方法比较多,第二种方法在framework开发中使用的比较多,但是依赖android的一些特定的函数库。在ndk中不能使用。jni的静态注册需要生成对应的native头问题件,我们以ndk中hell-jni 为例进行说明:按照网上的攻略root@ubuntu12:/work/androi原创 2016-08-31 12:08:48 · 341 阅读 · 0 评论 -
android jni 的编写二 (NDK 开发中动态注册Jni)
NDK 开发中动态注册Jni.在framework开发中经常见到的是动态注册,但是这需要android的一些特定的api.最近看了一些jin文章觉得也可以NDK也支持动态注册。首先看一下头文件,在NDK中有jni.h参看jni.h 在后边有这两个函数,说明NDK是支持动态注册的。 点击(此处)折叠或打开/** Prototypes for functions exported by loadabl原创 2016-08-31 12:12:12 · 520 阅读 · 0 评论 -
ANDROID jni 中的事件回调机制JNIenv的使用
android framework 里java调用native,使用JNI机制,java如何调用native,在framework里面的例子很多,有很多参考,可以方便的使用。但是在一些native中如果涉及到了事件回调,需要在native里调用java对象,在framework 框架里也有这样的例子。在项目里用到了这一机制。在native 注册的时候首先保存java的调用方法:static voi原创 2016-08-31 12:12:09 · 3244 阅读 · 1 评论 -
ext4 文件格式 和android ota 流程
一 基本概念inode: 索引节点superblock: 超级块block: 文件系统块block group: 文件系统块组disk block: 磁盘块(512字节)block device: 块设备二 工具 block块位图 这个就是一个块使用情况记录表。记原创 2016-08-31 12:09:39 · 1484 阅读 · 0 评论 -
Android recovery.img 支持adb shell
android recovery 模式下出于安全的考虑,一般禁止adb 和adb shell 登陆。如果需要在recovery 模式下debug ,会带来很大的不方便。首先配置recovery 模式下adb 启动。检查 out/*/recovery/root/sbin 目录下是否有adbd 文件。然后检查init.rc 中是否有adb 配置:recovery 是否开启adb:原创 2016-08-31 12:09:27 · 5644 阅读 · 0 评论 -
android JNI
有关Android JNI开发中比较强大和有用的功能就是从JNI层创建、构造Java的类或执行Java层的方法获取属性等操作。 一、类的相关操作 1. jclass FindClass(JNIEnv *env, const char *name); 查找类 该函数可能做过Java开发的不会陌生,这个是JNI层的实现,需要注意的是第二个参数为const char*类型的,我们如果从J原创 2016-08-31 12:11:54 · 559 阅读 · 0 评论 -
Android AM命令行启动程序的方法
在Android中,除了从界面上启动程序之外,还可以从命令行启动程序,使用的是命令行工具am.启动的方法为wangwei@wwG41D3:~$ adb shell $ su# am start -n {包(package)名}/{包名}.{活动(activity)名称}程序的入口类可以从每个应用的AndroidManifest.xml的文件中得到,以计算器(calculator)为例原创 2016-08-31 12:11:19 · 4497 阅读 · 0 评论 -
android 的Makefile
(1)Android.mk文件首先需要指定LOCAL_PATH变量,用于查找源文件。由于一般情况下Android.mk和需要编译的源文件在同一目录下,所以定义成如下形式:LOCAL_PATH:=$(call my-dir)上面的语句的意思是将LOCAL_PATH变量定义成本文件所在目录路径。(2)Android.mk中可以定义多个编译模块,每个编译模块都是以include $(CLEAR_VARS原创 2016-08-31 12:11:14 · 306 阅读 · 0 评论 -
Android属性系统
属性(property)系统对Android来说是一个重要的功能。他作为一个系统服务管理着系统的配置和状态,所有的这些系统配置和状态都是属性(property)。属性(property)是一对键/值(key/value)组合,键和值都是字符串类型。总体感觉属性系统非常像Windows的注册表的功能。Androd中非常多的应用程序和库直接或者间接的依赖于属性系统,并由此决定其运行期的行为。例如:ad转载 2016-08-31 12:11:57 · 420 阅读 · 0 评论 -
android 的堆栈调试
最近调试android,kernel崩溃了,android的调试没有linux平台那么方便,google了一把,在网上发现可以借助堆栈信息确定出错的函数。下面是堆栈出错时的堆栈信息:I/HYJ***tUtility( 1050): #############get() media.maxVolumeI/DEBUG ( 661): *** *** *** *** *** *** *** ***原创 2016-08-31 12:11:16 · 564 阅读 · 0 评论 -
Linux 内存管理
Linux 内存管理Linux 内存管理1页的概念2内核虚拟地址分区和物理内存分区3伙伴系统算法1 简介2 伙伴系统算法分配函数3 get_free_pages与alloc_pages的差异4Slab 内存分配算法1Slab 内存分配算法2Slab 内存结构3slab 着色区和slab 结构4Slab 内存函数5slabinfo对象5kmalloc 和 vmalloc1k原创 2017-03-29 10:05:54 · 786 阅读 · 0 评论