Android init.rc BOOTCLASSPATH
来源:互联网 发布:淘宝上的diy耳机 编辑:程序博客网 时间:2024/06/05 15:22
BOOTCLASSPATH 不添加jar包路径,系统启动后将无法找到自定义JAVA层系统服务的相关类,这是由于自定义系统服务jar包是Dalvik所需的基本库文件。如果不添加相关路径会报如下错误:
W/dalvikvm( 2582): Unable to resolve superclass of Lcom/android/server/yourdir/yourService; (1633)
W/dalvikvm( 2582): Link of class 'Lcom/android/server/yourdir/yourService;' failed
D/dalvikvm( 2582): DexOpt: unable to opt direct call 0x276b at 0x258 in Lcom/android/server/ServerThread;.run
三篇必看原理文章:
Android 类实现探索-系统基础类
Dalvik 分析之准备篇
Dalvik 分析 - Class加载篇
init.rc:
export BOOTCLASSPATH /system/framework/core.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/core-junit.jar
BOOTCLASSPATH=/ango/system/framework/core.jar:/ango/system/framework/bouncycastle.jar:/ango/system/framework/ext.jar:/ango/system/framework/framework.jar:/ango/system/framework/android.policy.jar:/ango/system/framework/services.jar:/ango/system/framework/core-junit.jar
d:/linux/linuxkernel/WORKING_DIRECTORY/android-omap-20111108-gingerbread/dalvik/vm/Init.c
//getenv of classpath and BOOTCLASSPATH configed by init.rc
static void setCommandLineDefaults()
putenv("BOOTCLASSPATH=/ango/system/framework/core.jar:/ango/system/framework/bouncycastle.jar:/ango/system/framework/ext.jar:/ango/system/framework/framework.jar:/ango/system/framework/android.policy.jar:/ango/system/framework/services.jar:/ango/system/framework/core-junit.jar");
envStr = getenv("BOOTCLASSPATH");
if (envStr != NULL)
gDvm.bootClassPathStr = strdup(envStr);
else
gDvm.bootClassPathStr = strdup(".");
d:/linux/linuxkernel/WORKING_DIRECTORY/android-omap-20111108-gingerbread/dalvik/vm/oo/Class.c
/*
* Prepare a ClassPathEntry struct, which at this point only has a valid
* filename. We need to figure out what kind of file it is, and for
* everything other than directories we need to open it up and see
* what's inside.
*/
static bool prepareCpe(ClassPathEntry* cpe, bool isBootstrap)
/*
* Convert a colon-separated list of directories, Zip files, and DEX files
* into an array of ClassPathEntry structs.
*
* During normal startup we fail if there are no entries, because we won't
* get very far without the basic language support classes, but if we're
* optimizing a DEX file we allow it.
*
* If entries are added or removed from the bootstrap class path, the
* dependencies in the DEX files will break, and everything except the
* very first entry will need to be regenerated.
*/
static ClassPathEntry* processClassPath(const char* pathStr, bool isBootstrap)
/*
* Initialize the bootstrap class loader.
*
* Call this after the bootclasspath string has been finalized.
*/
bool dvmClassStartup(void)
0 0
- Android init.rc BOOTCLASSPATH
- Android init.rc BOOTCLASSPATH
- BootClassLoader BOOTCLASSPATH(init.environ.rc)
- Android 启动加载jar包 init.rc BOOTCLASSPATH
- Android init 进程 init.rc init.*.rc
- Android init 进程 init.rc init.*.rc
- Android init 进程 init.rc init.*.rc
- Android init.rc init.vendor.rc 介绍
- [init.rc] android init.rc 总结
- android init.c init.rc
- android init进程 init.rc
- android中的init.rc
- 转 android init.rc
- android init.rc 语法分析
- Android init.rc解析
- Android init.rc解析
- Android 修改init.rc
- Android init.rc解析
- n个节点能组成多少种二叉树
- iOS7开发学习之路:No.10:XCode手动Clean资源文件,xib文件autolayout,对某个特定文件关闭ARC
- js判断是什么浏览器
- 【跟我一步一步学Struts2】——Action
- LevelDb 资料整理
- Android init.rc BOOTCLASSPATH
- JAVA基础 (二)反射 深入解析反射机制
- 工作日志2014-08-27
- OpenGL学习脚印: 基本图形绘制方式比较(glBegin,glCallList,glVertexPointer,VBO)
- SQLite3的使用
- 增加录像时间戳水印、 camera框架介绍
- 全局变量与静态变量
- (室内GIS)脱离繁杂的地图开发,寻找最简单快捷的企业地图商业应用
- 通过Oracle sql developer工具从sqlserver迁移数据到oracle