2011年5月28日

Android Prelink

摘要: 1.原理简介1)PrelinkPrelink即预链接技术是利用事先链接以代替运行时链接的技术,以加快共享库的加载速度,它不仅能加快程序启动时间,还可以减少部分内存开销(它能使KDE的启动时间减少50%)。每次程序执行时,进行的链接动作都是一样的,链接相对来说开销很大,尤其是嵌入式系统。2)普通Linux系统的PrelinkRedhat系统中prelink工具(/etc/cron.dialy/prelink)会修改可执行程序,把它与所需库的链接信息加入可执行程序。在程序运行时,使用glibc(glibc > 2.3.1-r2)中的ld-linux.so来进行链接。用此方式,每次更新动态库后 阅读全文

posted @ 2011-05-28 15:00 eustoma 阅读(339) 评论(0) 推荐(0)

Android筆記

摘要: 好一段時間,都在ARM basedRTOS通訊產品中開發,很難有機會回到Embedded Linux的領域,而Linux上所擁有的豐富資源,更是凡事都要親力親為的RTOS環境所不能比擬的.最近,有機會參與移植Android到新的晶片計畫,也藉此機會,把Android的基礎工程做一個Review.在平台正式取得前,我們可以透過QEMU的環境模擬出Google定義的goldfish處理器平台(核心為ARM926EJ-S ARMv5TEJ),並可以透過git://android.git.kernel.org/kernel/common.git下載Linux Kernel,編譯出基於這個處理器的核心I 阅读全文

posted @ 2011-05-28 14:53 eustoma 阅读(550) 评论(0) 推荐(0)

Android基础知识总结

摘要: ===================================================linux ,Android基础知识总结1. Android编译系统分析2. 文件系统分析3. 制作交叉工具链4. 软件编译常识5. 设置模块流程分析6. linux系统启动流程分析7. linux下svn使用指南8. LFS 相关9. linux 内核的初步理解====================================================================android系统开发指南(常用环境的搭建和使用)说明:有的步骤会用到脚本简化操作,脚本通过svn 阅读全文

posted @ 2011-05-28 14:51 eustoma 阅读(1624) 评论(0) 推荐(0)

Android prelink-linux-arm.map, LOCAL_PRELINK_MODULE

摘要: From http://androidforums.com/application-development/20932-prelink-linux-arm-map.htmlprelink-linux-arm.map is for providing addresses so that the loading of all the registered libraries can be done faster.If you want you can add address for your library.You can see on top of the file various addres 阅读全文

posted @ 2011-05-28 14:48 eustoma 阅读(344) 评论(0) 推荐(0)

Android平台上使用属性系统(property system)

摘要: 在使用Android的属性系统(property system)时遇到了一些问题,结合此次经历,对属性系统的使用做以简单介绍。一、Property系统简介属性系统是android的一个重要特性。它作为一个服务运行,管理系统配置和状态。所有这些配置和状态都是属性。每个属性是一个键值对(key/value pair),其类型都是字符串。从功能上看,属性与windows系统的注册表非常相似。许多android应用程序和库直接或者间接地依赖此特性,以决定它们的运行时行为。例如,adbd进程查询属性服务已确认当前是否运行在模拟器环境中。另一个例子是java.io.File.pathSpearator,其 阅读全文

posted @ 2011-05-28 14:29 eustoma 阅读(5392) 评论(0) 推荐(0)

浅析dev目录下设备文件mknod节点gid,uid和mode的如何方便设置

摘要: init=>handle_device_fd 收到uevent信息=>handle_device_event=>static void handle_device_event(struct uevent *uevent){ ... /* are we block or char? where should we live? */ if(!strncmp(uevent->path, "/block", 6)) { block = 1; base = "/dev/block/";//根据uevent路径改变该节点路径 mkdir(ba 阅读全文

posted @ 2011-05-28 07:54 eustoma 阅读(1006) 评论(0) 推荐(0)

bus,device,driver三者关系

摘要: bus,device,driver三者关系bus:总线作为主机和外设的连接通道,有些总线是比较规范的,形成了很多协议。如PCI,USB,1394,IIC等。任何设备都可以选择合适的总线连接到主机。当然主机也可能就是CPU本身。内存也是通过BUS连接到主机的,可内存使用的总线不是外设总线,因此和内存使用相同类型的总线的设备,谈及BUS比较含糊。一块网卡在嵌入式开发中,直接通过内存总线接入到CPU。我们在写网卡驱动时,要给该BUS定义就麻烦了。driver:驱动程序是在CPU运行时,提供操作的软件接口。所有的设备必须有与之配套驱动程序才能正常工作。一个驱动程序可以驱动多个类似或者完全不同的设备。d 阅读全文

posted @ 2011-05-28 07:51 eustoma 阅读(382) 评论(0) 推荐(0)

linux下的内存映射函数mmap详解及示例代码

摘要: 自:http://hi.baidu.com/flying5/blog 不错的博客,大家可以去看看Linux的mmap文件内存映射机制mmap: memory map在讲述文件映射的概念时, 不可避免的要牵涉到虚存(SVR 4的VM). 实际上, 文件映射是虚存的中心概念, 文件映射一方面给用户提供了一组措施, 好似用户将文件映射到自己地址空间的某个部分, 使用简单的内存访问指令读写文件;另一方面, 它也可以用于内核的基本组织模式, 在这种模式种, 内核将整个地址空间视为诸如文件之类的一组不同对象的映射. 中的传统文件访问方式是, 首先用open系统调用打开文件, 然后使用read, ... 阅读全文

posted @ 2011-05-28 07:49 eustoma 阅读(1447) 评论(0) 推荐(0)

在 Android 中调用二进制可执行程序(native executable)

摘要: 前几天有需要在java代码中调用二进制程序,就在网上找了些资料,写点东西记录下。 Android 也是基于linux 的系统,当然也可以运行二进制的可执行文件。只不过Android 限制了直接的方式只能安装运行apk文件。虽然有NDK可以用动态链接库的方式来用C的二进制代码,但毕竟不方便。至少我们可以调用linux的一些基本命令,如ls,rm等。第一种方法:Runtime.exec(String[] args) 这种方法是java语言本身来提供的,在Android里面也可以使用。args是要执行的参数数组。大概用法如下: String[] args = new String[2]; args[ 阅读全文

posted @ 2011-05-28 07:44 eustoma 阅读(414) 评论(0) 推荐(0)

Android电源管理

摘要: 研究了好几个月的Android电源管理了,有时间得自己写一些心得体会了,先转贴一份写得不错的文章吧[First written by Steve Guo, please keep the mark if forwarding.] Overview The above picture shows the overall architecture design of Android power management module. Android implements a very simple power management mechanism. Currently it only supp. 阅读全文

posted @ 2011-05-28 07:40 eustoma 阅读(394) 评论(0) 推荐(0)

导航