能力值:
( LV2,RANK:10 )
|
-
-
2 楼
原生程序是没有加载dalvik虚拟机的。 所以需要自己手动加载~ 。 也就是类似于app_process做的事情。
相关代码可以参考android源代码。 我也木有干过
|
能力值:
( LV3,RANK:20 )
|
-
-
3 楼
谢谢, 要是需要把android源码相关的模块自己复制出来单独编译的话就太复杂
|
能力值:
(RANK:350 )
|
-
-
4 楼
dlsym libdvm.so JNI_CreateJavaVM &call 试试…
|
能力值:
( LV3,RANK:20 )
|
-
-
5 楼
谢谢,试试了
|
能力值:
( LV3,RANK:20 )
|
-
-
6 楼
你好
handle = dlopen("/system/lib/libdvm.so", RTLD_LAZY);
返回的是空指针。。。。 应该怎么加载才行
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
可以参考92cK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3u0D9L8$3N6Q4x3X3g2U0M7$3c8F1i4K6u0W2L8X3g2@1i4K6u0r3L8s2g2G2M7$3S2W2L8X3N6&6j5h3&6Y4i4K6u0r3j5i4u0@1K9h3y4D9k6g2)9J5c8X3c8W2N6r3q4A6L8s2y4Q4x3V1j5I4z5o6l9H3y4U0j5@1y4b7`.`.
具体的,AndroidRuntime中创建JniInvocation,来初始化jni环境。这个过程中加载libdvm.so。
与lz的对比了下,貌似人家用的是RTLD_NOW。
建议楼主可以看下源码。ps:上面链接中代码分析针对早期版本,后面新版代码略有变化。
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
JNI+NDK生成(armeabi.so)在Eclipse调用
|
|
|