Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1320347
  • 博文数量: 168
  • 博客积分: 2124
  • 博客等级: 大尉
  • 技术积分: 2590
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-16 23:51
文章分类

全部博文(168)

文章存档

2014年(6)

2013年(74)

2012年(71)

2011年(17)

分类: 嵌入式

2012-06-18 12:02:23

prelink-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 address ranges for different categories.

If you do not want to add, then just add:
LOCAL_PRELINK_MODULE := false
line in your Android.mk file


 动态链接和加载的过程开销很大,并且在大多数的系统上, 函数库并不会常常被更动, 每次程序被执行时所进行的链接 
动作都是完全相同的,对于嵌入式系统来说尤其如此。因此,这一过程可以改在运行时之前就可以预先处理好,即花一些时间 
利用Prelink工具对动态共享库和可执行文件进行处理,修改这些二进制文件并加入相应的重定位等信息,节约了本来在程序 
启动时的比较耗时的查询函数地址等工作,这样可以减少程序启动的时间,同时也减少了内存的耗用。 
        Prelink的这种做法当然也有代价:每次更新动态共享库时,相关的可执行文件都需要重新执行一遍Prelink才能保 
证有效,因为新的共享库中的符号信息、地址等很可能与原来的已经不同了,这就是为什么 android framework代码一改动, 
这时候就会导致相关的应用程序重新被编译。 


变量设置为false那么将不做prelink操作 
LOCAL_PRELINK_MODULE := false 
默认是需要prlink的,同时需要在 build/core/prelink-linux-arm.map 中加入 
libhellod.so      0x96000000 
这个map文件好像是制定动态库的地址的,在前面注释上面有一些地址范围的信息,注意库与库之间的间隔数, 
如果指定不好的话编译的时候会提示说地址空间冲突的问题。另外,注意排序,.从高地址向低地址排序


参考资料 http://androidforums.com/application-development/20932-prelink-linux-arm-map.html


阅读(2480) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~