我们在安装环境的时候安装了NDK,可以在eclipse下直接生成so文件。NDK的压缩包里面自带了一些sample工程,NDK的文件直接解压到某个目录下即可。
第一次生成so文件的时候,我们先使用NDK的sample下的hello-jni的例子。
1、启动eclipse,通过Create project from existing source,选择hello-jni的目录,按默认选...
分类:
系统相关 时间:
2014-11-27 12:45:49
阅读次数:
170
Java调用C有多种方式,本文介绍笔者最近的学习过程,避免今后再犯类似的错误。首先,Java肯定是调用C的动态链接库,即通过编译器编译后的dll/so文件。下面介绍gcc编译dll的方法。一般情况把主函数,子函数定义,子函数声明(全局变量,宏等)分别放在不同的文件中。我们主要对子函数编译生成可用的d...
分类:
编程语言 时间:
2014-11-25 22:53:35
阅读次数:
216
比如在链接lib123.a库生成libabc.so库时经常会遇到这个问题,当链接libabc.so时出现以下错误:libabc.so: undefined reference to `XXX'在readelf -s lib123.a | grep "XXX"时,显示165: 000000000000...
分类:
系统相关 时间:
2014-11-25 14:20:38
阅读次数:
249
1. Shared Library的优势
共享库,又称动态库或so文件,顾名思义,它可以在可执行文件启动时加载或进程运行期被调用。使用共享库有很多好处,例如(包含但不限于下面提到的场景):
1) 减少了依赖共享库的模块的大小,因为它们不必把共享库提供的功能的实现代码静态编译到自己的模块代码中。
2)在同一台机器上运行的多个进程会在内存中共享同一份动态库,操作系统采用的这种内存布局方式可以极大...
分类:
系统相关 时间:
2014-11-24 15:27:52
阅读次数:
473
最新因为要调试USB OTG的东西,这样导致USB口被占用,这样,虽然我是工程版本,但是不能执行adb shell,导致无法debug了。
于是我现在了一个系统终端的apk,程序 http://download.csdn.net/detail/zangcf/8172151,解包提取so文件libExec.so,放到system/lib下面,源代码放到。./alps/vendor/mediatek...
分类:
移动开发 时间:
2014-11-19 01:50:06
阅读次数:
186
这篇是我对 @布加迪20 在安智写的一篇汉化so文件的心得>中的技术附件做的简洁性整理,原来的看起来不是很方便。一起分享学习..
正文
SO文件汉化心得
--By布加迪20 2014/08
我自己也是新手,研究了好久,网上也找不到相关教程,所以决定写一个比较...
分类:
其他好文 时间:
2014-11-18 14:50:49
阅读次数:
3748
测试环境:调试器: IDA6.5手机及系统版本:.SO层脱壳一:.如何到达壳入口点?1.我是通过对dvmLoadNativeCode函数下断,分析它执行流程最后到达壳入口(如果您有更好的办法还请告知,感谢中...),函数dvmLoadNativeCode是执行加载so文件的操作。(2.3系统是这个名...
分类:
其他好文 时间:
2014-11-17 22:28:24
阅读次数:
8122
dlopen()是一个强大的库函数。该函数将打开一个新库,并把它装入内存。该函数主要用来加载库中的符号,这些符号在编译的时候是不知道的。这种机制使得在系统中添加或者删除一个模块时,都不需要重新编译了。可以在...
分类:
系统相关 时间:
2014-11-14 14:22:50
阅读次数:
915
============问题描述============ 我本身有个现成的SO文件,想通过编译方式打包进APK里,不知道该怎么做? ============解决方案1============ libs/...
分类:
其他好文 时间:
2014-11-11 16:11:01
阅读次数:
176