android通过C代码实现动态和静态链接
2014-04-04 23:12
239 查看
ANDROID中静态链接C文件:
0,首先安装gcc相关的编译器,具体不详述,笔者用的是mingw,也可以用其他的编译器,网络上很多安装详解,本文不做叙述。
1,创建C代码,命名为hello,编写内容:
#include<stdio.h>
int main(){
printf("hello c!!!");
return 0;
}
2,进入c文件指定的目录中比如:d:\test中,通过gcc hello.c 或者gcc hello.c -static -o hellostatic命令生成可执行的exe文件。
注意:如果有no new line end the file的警告,在你编程的末尾敲一个回车就可以
3,启动模拟器,通过adb命令(首先adb命令必须配置好,否则会有不支持命令错误),adb shell -->> cd data -->> mkdir c创建c文件夹
4,进入c文件指定的目录中比如:d:\test中,执行D:\test>adb push hellostatic.exe /data/c,将文件载入到c文件中,
5,通过adb shell 命令,进入到c文件中,如:adb shell-->>cd data-->> cd c -->ls 执行chmod 777 hellostatic.exe 如# chmod 777 hellostatic.exe (设置权限)
6,继续通过 ./hellostatic.exe命令执行程序,将会出现;'hello c!!!‘
总结:对于静态链接生成的可执行文件比较大,不需要依赖任何系统库,一切都是自包含的。
动态链接:
1,同上执行命令:D:\test>gcc -c Hello.c -o hello.o
因为使用的是动态链接,所以链接时候必须用到ANDROID下Linux的libraries。此类库位于/system/lib 目录下,
2, 进入system文件夹下,执行ls列出文件,其中有个是lib的目录,进入并将其内容列出。各种so文件,同样也有hw等文件夹,为了能正确的链接程序,我们将此目录(system/lib)中的所有库文件复制到本地文件夹中,通过adb pull命令,如C:\Users\Administrator>adb pull
/system/lib d:\LIB\android_lib
3
4,通过上面的图片执行后,接下来的步骤如静态链接相似,执行命令(安装)adb push->(控制权限)adb shell chmod 777->(运行)adb shell /data/c/hello.exe
0,首先安装gcc相关的编译器,具体不详述,笔者用的是mingw,也可以用其他的编译器,网络上很多安装详解,本文不做叙述。
1,创建C代码,命名为hello,编写内容:
#include<stdio.h>
int main(){
printf("hello c!!!");
return 0;
}
2,进入c文件指定的目录中比如:d:\test中,通过gcc hello.c 或者gcc hello.c -static -o hellostatic命令生成可执行的exe文件。
注意:如果有no new line end the file的警告,在你编程的末尾敲一个回车就可以
3,启动模拟器,通过adb命令(首先adb命令必须配置好,否则会有不支持命令错误),adb shell -->> cd data -->> mkdir c创建c文件夹
4,进入c文件指定的目录中比如:d:\test中,执行D:\test>adb push hellostatic.exe /data/c,将文件载入到c文件中,
5,通过adb shell 命令,进入到c文件中,如:adb shell-->>cd data-->> cd c -->ls 执行chmod 777 hellostatic.exe 如# chmod 777 hellostatic.exe (设置权限)
6,继续通过 ./hellostatic.exe命令执行程序,将会出现;'hello c!!!‘
总结:对于静态链接生成的可执行文件比较大,不需要依赖任何系统库,一切都是自包含的。
动态链接:
1,同上执行命令:D:\test>gcc -c Hello.c -o hello.o
因为使用的是动态链接,所以链接时候必须用到ANDROID下Linux的libraries。此类库位于/system/lib 目录下,
2, 进入system文件夹下,执行ls列出文件,其中有个是lib的目录,进入并将其内容列出。各种so文件,同样也有hw等文件夹,为了能正确的链接程序,我们将此目录(system/lib)中的所有库文件复制到本地文件夹中,通过adb pull命令,如C:\Users\Administrator>adb pull
/system/lib d:\LIB\android_lib
3
4,通过上面的图片执行后,接下来的步骤如静态链接相似,执行命令(安装)adb push->(控制权限)adb shell chmod 777->(运行)adb shell /data/c/hello.exe
相关文章推荐
- 通过代码动态实现和模拟Android手机上的back键
- 通过JQuery实现win8一样酷炫的动态磁贴效果(示例代码)
- Android手机客户端通过JSP实现与Tomcat服务器端通信(Msql数据库,Json作为载体)--客户端代码
- android之通过java代码实现PreferenceActivity
- Android设置默认Launcher(源码实现和动态代码实现)
- Android通过代码实现虚线或者虚线框shape
- android通过代码动态添加和删除控件
- Android通过动态加载Fragment实现TabActivity效果
- Android中通过代码实现文件权限的修改(chmod)
- android 通过代码实现屏幕旋转
- android中通过contentprovider访问通讯录代码实现(两种方法实现)
- android实现代码的动态加载
- Android 通过java代码实现修改指定路径文件的读写权限。
- android中通过代码实现文件权限修改(chmod)
- 【Android应用实例之四】计时器之通过Service&BroadcastReceiver实现UI动态更新
- 通过Spring Boot配置动态数据源访问多个数据库的实现代码
- android中通过代码实现文件权限修改(chmod)
- Android通过手势实现的缩放处理实例代码
- Android社交类APP动态详情代码实现通用模板
- Android 通过代码设置、打开wifi热点及热点连接的实现代码