- 博客(90)
- 资源 (1)
- 收藏
- 关注

原创 Android学习之ION memory manager
Updated: 2013/03/18, 刚有时间浏览了最新的Android builder submit 2013的相关slides,其中有关于最新的android 对kernel的upstream的状态的总结,大家可以看看http://events.linuxfoundation.org/images/stories/slides/abs2013_stultz.pdfION,
2012-05-21 16:21:23
21207

原创 玩转pandaboard之u-boot的编译及代码结构
本文以linaro提供的针对pandaboard的u-boot为例(之后用来加载Android),阐述u-boot编译及代码结构。 U-boot是神马简单说来就是嵌入式设备的BIOS, 用来初始化嵌入式设备上的各种硬件资源,并引导linux kernel的加载及启动。详细描述请从http://www.denx.de/wiki/U-Boot上获得你所想要的一切信息。另外, h
2012-05-03 12:49:04
6228

原创 喜迎下一个挑战WebRTC, 博客的内容会更新的慢一些, 当然还是会持续记录下去的:)
Updated(2012-9-24): 最近工作发生变动了,职业生涯会往更上层的技术有所偏移(android framework, html5, javascript等相关技术),希望能有时间保持对嵌入式底层设备相关技术的学习及积累:)以后会继续更新android及web runtime相关的技术学习心得!Updated(2013-03-27): 下个月工作的重心应该会转移到web
2012-04-12 10:43:38
2085

原创 Android学习之Service命令的妙用
Android系统不光在host上为我们提供了一些好用的命令, 同时device也有一些隐藏着的命令, 通常它是被系统调用,但是由于权限设置的原因, 普通的进程也能通过命令行去使用它们.比如,我之前提到的Android性能测试工具之dumpsys>及Android调试工具之adbs>在device中, 有一个service命令, 可以看到当前所有的service, 同时也可以使用它来往
2012-03-28 10:26:10
9223

原创 Android学习之OTA Update
之前需要处理一些应用程序用到的update相关问题, 了解到android build system会利用开源的bsdiff进行一些关于package的更新动作. 这篇文章就分析一下android系统的OTA update.首先,让我们来看看OTA的整体框架Build System Support, 用来创建需要的OTA update image(包括全部更新及部分更新)
2012-03-27 15:36:27
7167

原创 算法温故知新之排序
各种常用排序算法回顾, 有新的认识会次序更新。insertion sort小规模的数据,初始数据几乎是有序的。 如何定义这个“小规模”,这根机器及语言还有比较的类型都有关系。稳定的排序扩展: Shell sort -- 把数组分以h为单位的递减的子数组,然后对各个子数组进行insertion sort。即使对很大的数据,也有比较好的性能,且实现简单
2012-03-22 23:52:32
1587

原创 拜读大牛Ulrich Drepper大作之Security Enhancements in Red Hat Enterprise Linux
读大牛Ulrich Drepper 关于企业级Linux开发所使用到的一些安全增强功能关键点section 2 利用安全问题分为两类: 远程, 这需要黑客能够利用网络等手段来远程的进行破坏, 相对来说比较容易出现的就是利用有问题的网络服务进行破坏,比如臭名昭著的buffer flow.本地, 如果黑客已经可以在你的本地利用操作系统提供的各种接口去做一些恶意的
2012-03-21 18:43:23
1599

原创 kernel学习之ftrace环境搭设及使用(包括buildroot的使用)
Updated(2012/04/23): 刚看了elc2012的一篇关于使用ftrace调试性能问题的文章,也很不错https://events.linuxfoundation.org/images/stories/pdf/lf_elc12_kobayashi.pdf同时, 推荐下面这篇关于在ARM体系结构下使用Ftrace的文章http://elinux.org/Ftrace
2012-03-09 15:15:21
2993

原创 Android学习之Build环境初探
这篇文章简单阐述一下Android的发布工具,即如何把各种编译好的库,可执行文件,打包整理成能够烧录进手机中的rootfs。这里略过对android在手机上的文件系统框架的阐述(google或者baidu都能帮助你找到对应的信息),主要看google是如何把生成合适的rootfs的工作整合到它的build体系当中,同时,会顺带看一下CyanogenMod中对应各种机型的build机制。
2012-02-27 12:34:04
2692

原创 Android学习之wakelocks
Updated: 2013/03/18, 刚有时间浏览了最新的Android builder submit 2013的相关slides,其中有关于最新的android 对kernel的upstream的状态的总结,大家可以看看http://events.linuxfoundation.org/images/stories/slides/abs2013_stultz.pdfWakel
2012-02-22 17:31:49
8058
1

原创 玩转pandaboard之linaro对于Android的编译上的一些优化
之前看ELC2011的video轮播, 其中有Linaro发表的关于android platform的section, 其中说到了linaro对于android做了一些优化,尤其是编译上的. 这里就总结下其中提到的内容及相关概念.首先,来看一下Linaro对AOSP的具体做了哪些优化:使用O3代替了O2 关闭了默认的-fno-strict-aliasing, 新增-fm
2012-02-20 15:42:46
3686

原创 拜读大牛Ulrich Drepper大作之Defensive Programming for Red Hat Enterprise Linux
读大牛Ulrich Drepper 关于写安全的代码的心得及记录。关键点Section 2 Safe ProgrammingC/C++的安全问题主要爆发在memory的管理上, 本节主要讲解如何避免这些经常被提及的内存问题1.1 关于处理C语言中对memory管理的问题memory的边界 提供了一个宏,来更好的防止调用malloc的指针错误#defin
2012-02-15 12:19:25
3033

原创 Android学习之Logger driver
Android logger System 由misc的logger driver和相关framework接口组成, 与syslog相比, 它区分了4种不同事件类型, 不同的事件类型有各自的kernel space的循环缓冲来提供, 这样的log更加清晰,对于user space端来说更加友好. 目前logger driver正在寻求被kernel main stream所接受, 不久的将来将会m
2012-02-09 09:54:25
2606

原创 玩转pandaboard之rootfs制作及启动
updated(2012/05/02): mainline的u-boot已经包含对pandaboard的支持, 其中x-loader已经被spl所取代. 相关介绍请参照我的另一篇博文<>本篇文章是参考了pandaboard官方wiki, TI的官方文档及linaro的相关image制作的工具总结而来.首先,来做些准备工作, 了解一下pandaboard启动所要用到的各种bo
2012-02-08 11:11:28
9574
2

原创 拜读大牛Ulrich Drepper大作之How To Write Shared Libraries
读大牛Ulrich Drepper关于如何写动态库的大作心得。原文地址:https://www.akkadia.org/drepper/dsohowto.pdf一些术语DSO, Dynamic Shared ObjectsPLT,Procedure Linkage Table关键点section 1 回顾a.out的历史,阐述它的优缺点, 引入COFF,...
2012-02-06 17:52:36
11069
1

原创 玩转pandaboard之初体验
刚拿到pandaboard, 照例对于这些开发板, 需要先准备需要用到的开发环境.下面以linaro上对于pandaboard的支持为例, 记录下如何把linaro提供的最新的android系统在板子上跑起来. 环境准备下载所需的资源及代码参照https://wiki.linaro.org/Platform/Android/GetSource编译源代码
2012-02-02 11:16:54
7196
1

原创 读书笔记 <Bootstrap Yourself with Linux USB Stack>
读书笔记 第一章 USB and Linux Introduction关于USB的硬件三种类型:USB Transceiver, 通常包含一个USB core在芯片上Standalone USB Controller, transceiver + digital portionIntegrated USB Controller, 第二章 USB:
2012-02-01 12:26:58
7190

翻译 Android学习之graphic rendering 那些事
原文地址:https://plus.google.com/105051985738280261832/posts/2FXDCz8x93s这篇文章是从google group中找到的, android的开发组的一员 Dianne Hackborn 对android中的graphic的机制的一个解释及释疑. 作为曾经接触过多媒体及图形图像处理的我(可悲的是为了生活,妥协的不能再从事这个领域的我)还
2012-01-16 16:17:10
3245

原创 如何制作android nexus one的内核
动手自己制作android device的内核! 主要是参考一些别人的经验. 有助于理解android中的image的format. !!!很厚颜的标注为原创!!!经过自己的验证,完全可行. 有问题的朋友,可以互相交流下:)原文地址:http://android-dls.com/wiki/index.php?title=HOWTO:_Unpack%2C_Edit%2C_and_
2012-01-11 09:10:47
3081

原创 Android学习之Ashmem driver
参照init/Kconfig中对于ASHMEM的说明:它是一由android的提供的新的共享内存分配器, 类似于POSIX的SHM,但是拥有不同的一些行为同时引入了简单的基于文件的API.Dave Sparks对ashmem和pmem的解释:1. ISurface是对应于SurfaceFlinger的远程接口.当你调用类似postBuffer的ISurfac
2012-01-05 15:29:03
2930

原创 重读<Understanding The Linux Virtual Memory Manager>笔记
重读笔记 (转自自己的google doc)第二章 物理内存的描述 区分NUMA和UMA 这牵涉到所谓的内存划分与相关的CPU之间访问的代价 内核中关键的描述内存块的几个关键结构:node: 内核对内存块的称呼,两者都由同一个数据结构描述pglist_data, 所有的块都由一个单链表管理.如果是UMA那么只会有pglist_data的一个
2011-12-30 14:57:35
3034

原创 Android学习之lowmemorykiller driver
这是android对于linux原生的oom机制的改良,期望其能更有效的处理手持设备的oom. 它通过暴露出两个关键的接口/sys/module/lowmemorykiller/parameters/adjwrite /sys/module/lowmemorykiller/parameters/minfree来控制oom的行为,使得系统在oom的时候,能够按照android的定义,选择
2011-12-26 16:28:50
2561

原创 Android学习之扩展android的权限管理
Android学习之扩展android的权限管理以CyanogenMod中关于动态开启/关闭APK的指定权限功能为例来分析CyanogenMod在7.0的时候提供了revoke permission的功能, 可以从设置->CM设置->通用设置->权限管理, 打开这个功能. 从而可以动态的管理应用程序的权限.具体介绍参见http://wiki.cyanogenmod.com/wiki
2011-12-26 12:14:03
2229

原创 浅析Kernel中的cache机制
浅析Kernel中的cache机制内核中的各个子系统都有cache的身影,这篇文章尝试分析一下常用的子系统中所使用的cache机制及实现.首先,来看一下slab cache: Android 2.X系列的kernel里默认使用的slab allocation.slab cache的思想最初由Jeff Bonwick早Sun OS中诞生(可敬的SUN, 可悲的SUN,
2011-12-22 15:43:08
2951

原创 Android学习之开源项目分析--screencast
Update: 最近观看了ELC2011的关于android的一个视频, 里面提到了Android System Test Environment Runtime这么一个可以在PC端控制并执行一些定制的script测试脚本的测试框架, 其中PC与Device之间的UI同步用的就是screencast类似的机制--不停的传递screenshot, 而不是hack fbdev driver来传递实时的
2011-12-20 16:43:48
3146

原创 Android学习之Alarm driver
Updated: 2013/03/18, 刚有时间浏览了最新的Android builder submit 2013的相关slides,其中有关于最新的android 对kernel的upstream的状态的总结,大家可以看看http://events.linuxfoundation.org/images/stories/slides/abs2013_stultz.pdfAlarm
2011-11-21 23:17:38
9286

原创 Android调试工具之adbs
这两天在看Android的编译及制作rootfs工具的相关流程,无意中在mydroid/build/tools/中发现了它——adbs!adbs是一个用python写的命令行工具,利用了adb,addr2line, objdump这三个工具,大家看了这三个工具,可能就能猜到,adbs是用来分析应用程序尤其是与函数库相关的crash问题:)具体的代码就不多看了,无外乎是一些运
2011-11-02 17:45:07
3706

原创 DalVik学习之利器篇--如何使用smali
相关工具:smali是一个开源并且注释清晰的反编译的java工程apktool是基于smali开发的帮助反编译apk的利器dedexer是独立与smali又一个反编译apk的工具而dexdump就是android自带的c语言实现的dump dex文件的工具可供参考的文档:Practice of Android Reverse Engine
2011-10-26 11:57:43
10895

原创 Android学习之--prelink
最近移植一些既存的c程序到android中,不可避免的需要了解ndk,jni之类的东西,编译体系,toolchain之类的东西。偶尔,发现了Android中的src中有一个叫做“LOCAL_PRELINK_MODULE”的参数,它是Android采用的加快一些系统的函数库加载速度的手段。因为对这个比较感兴趣,就稍微去了解了一下。首先,需要了解一下什么是prelink由Red
2011-10-25 18:04:50
3338

原创 浅析android中的权限管理--用户安装的apk的uid,gid是如何分配的
Android的开发者一般分为两类,一类是做framework开发,一类是做第三方APP开发。两者最大的区别就是能够使用到的系统权限不一样。网上也有好多关于如何获得root权限的讨论和文章。我这里就不讨论这些了。主要还是从Android framework的设计出发,从代码中看看Android是如何给各种用户设定不同的uid,如何管理它们的。当用户点击一个APK时或是从market
2011-10-21 11:50:59
4989

原创 android性能测试工具之dumpstate
dumpstate类似于dumpsys都是android提供给开发者的帮助了解系统运行状态的利器。从main函数看起:1. 设置执行dumpstate这个命令的进程的一些属性 使它不会占用过多系统资源,即利用setpriority来告知内核它可以
2011-10-19 15:30:48
13270

转载 如何分析Android的内存使用量
UPDATED: 根据google I/O 2011的一个section中关于dalvik讲解中,提到了MAT(memory analyze too),可以用它来分析android app的内存使用。goolge也用到它来进行java的相关内存分析。原文地址:http://elinux.org/Android_Memory_Usage#procrank向大家推荐elinux.o
2011-10-19 15:30:00
4480

原创 android性能测试工具之dumpsys
补记: MAT(memory analyzer tool )是google 推荐的进行内存使用量分析的工具. 功能全面而强大!!!首先看一下dumpsys有哪些功能:dumpsys 用来给出手机中所有应用程序的信息,并且也会给出现在手机的状态。dumpsys [Option] meminfo 显示内存信息
2011-10-19 10:19:07
8928

原创 Android基本框架学习之defaultServiceManager
Android基本框架学习之defaultServiceManager这两天看了一下dumpsys和dumpstate,对Android系统中各种系统Service的实现框架不是很明白,以下简单的描述了一下这两天关于Android的系统Service的一些
2011-10-12 12:07:53
3302

翻译 Kernel是如何管理你的内存 How The Kernel Manages Your Memory
原文作者:Gustavo Duarte转自:http://duartes.org/gustavo/blog/post/how-the-kernel-manages-your-memoryHow The Kernel Manages Your Memory内核如
2011-09-21 00:35:14
3418

转载 使用qemu + KGDB调试内核
转载自:http://www.kgdb.info/kgdb/use_kgdb/using_kgdb_base_qemu/测试环境在/home/luq/qemu下,自己调试通过。假设缺省工作目录为/usr/src/work?View Code BAS
2011-09-09 17:06:43
1866

原创 android的ant自动化编译环境配置理解
环境: ubuntu 10.10, android sdk 9, ant 1.8.0为什么要用ant来编译? 方便把整个项目与公司其它的项目编译环境整合, ......下面分析了下Android中的Ant编译环境1. Android为了方便
2011-09-05 13:12:28
2414
转载 Eclipse JDT之APT那些事之三
接第一篇 Eclipse JDT之APT那些事之二原文链接:http://deors.wordpress.com/2011/10/31/annotation-generators/Code Generation using Annotation Processors in the Java language – part 3: Generating Source CodeP
2013-05-10 09:02:14
2666
转载 Eclipse JDT之APT那些事之一
转载,翻译,批注原文链接:http://deors.wordpress.com/2011/09/26/annotation-types/献给天朝内非翻墙不能访问该网址的童鞋们。总共三篇,会陆续翻译并整理。Code Generation using Annotation Processors in the Java language – part 1: Annotation Type
2013-05-10 09:02:08
2984
转载 Eclipse JDT之APT那些事之二
接第一篇 Eclipse JDT之APT那些事之一原文链接:http://deors.wordpress.com/2011/10/08/annotation-processors/Code Generation using Annotation Processors in the Java language – part 2: Annotation ProcessorsPosted
2013-05-10 09:01:41
3191
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人