问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

安卓PREBUILT_SHARED_LIBRARY 与BUILD_SHARED_LIBRARY的区别

发布网友 发布时间:2022-06-09 12:19

我来回答

1个回答

热心网友 时间:2023-09-29 02:22

简单介绍一下怎么在android上开发基本的C程序。
如果做过ARM的C应用程序开发的话会发现,ARM一般情况下提供了十分完备的编译器,而android没有而已(android提供了完善的Java层开发工具,C的却不是那么完善)。

1 编写hello.c
这个太简单了,不是么?

#include <stdio.h>
int main(void)
{
printf("hello world!\n");
return 0;
}

4.2 编写Android的编译器配置文件make_android
在Android SDK中,并没有提供Android系统的C编译器。就算是在NDK中,也只是提供了ndk-build工具,用来编译native static/dynamic library。只有仔细翻阅NDK的手册(它的手册位于NDK根目录的doc/OVERVIEW.html,比较简略),才会发现有一个STANDALONE-TOOLCHAIN的页面,会提到单独编译C Level应用程序的方法。我这里提供一段简单的makefile,命名文件为make_android,用来配置CC宏:

# make_android: this is a sub makefile for android native compile
# you have to set ANDROID_VER and ANDROID_ROOT to your flavor to work
### these two things have to be set first!!!
ANDROID_VER=android-8
ANDROID_ROOT=/home/xzpeter/android PLATFORM_DIR=${ANDROID_ROOT}/prebuilt/ndk/android-ndk-r4/platforms
SYSROOT=${PLATFORM_DIR}/${ANDROID_VER}/arch-arm EABI_GCC=${ANDROID_ROOT}/prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin/arm-linux-androideabi-gcc
CC=${EABI_GCC} --sysroot=${SYSROOT}

这里,ANDROID_ROOT和ANDROID_VER是需要针对自己的android source目录地址和android API level修改一下的。这里的android source是我用repo sync从github上mirror下来的android源代码。

4.3 编写Makefile
利用上面的make_android,写Makefile:

# to make x86 version of code, run: "make X86=1"
ifdef X86
CC=gcc
CLFAGS=-g
else
include make_android
endif
default: hello
hello: hello.o
clean: rm hello *.o

4 编译
可以用make X86=1先在本地编译一下,并运行./hello试试看。如果想编译android版本,先make clean一下,然后直接make就可以了。

5 在模拟器中运行
利用shell命令启动emulator并将文件放到目标模拟器上去:

emulator -avd my_avd # my_avd is my config name of avd
# wait for some time to boot up
adb push ./hello /data/hello
adb shell chmod 0755 /data/hello
adb shell ./data/hello

可以看到返回的”hello world!”字符串了。

PS:这是我偶然看到的一篇文章,感觉如果不是搞低层的,不必过于深入
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
怀孕四个月补钙可以吗 孕妇吃什么时候钙片好 孕妇吃什么钙片最好 怀孕补钙是必须的吗?孕妇钙片品牌哪个好? ...在长高的黄金发育时期,会影响容貌五官的变化吗,不仅没有发育到变... 冬至吃饺子的诗词 立冬吃饺子的暖心诗词 宁波全封闭学校有哪些 宁波市北仑区小港镇会计学校在那? 或红联镇也可以 江南教育集团小港中心幼儿园园况介绍 红联哪里有报暑假班 android 为什么抛出:java.lang.NullPointerException at your.file.sd.FileSave.s 我只有 盐油酱醋味精鸡精 这些调味料,请问 茄子或包心菜或白萝卜怎么才能炒的好吃 android things 支持nb-iot吗 android things方案厂商有哪些 有一些白菜,茼蒿,茄子,白萝卜,瘦肉能做什么简单快捷好吃的菜 苹果手机有什么好用的美图软件吗?不要美图秀秀,美颜相机,要特别点的,实用的,又拍的好看的。 苹果手机软件中、要用来美化图片(照片),那一个软件最好用? android things到底有什么用 android things开源吗 2009发型的新股有哪些跌破发行价或快跌破 现在b站大佬都这么可怕吗 U盘用FAT格式好还是FAT32好? 我们要举办一个“勿忘昨天的苦难辉煌,无愧今天的使命担当,不负明天的伟大梦想”的歌咏比赛,求推荐歌曲 芝麻信用未通过授权什么意思? 怎么能瘦小腿 汤姆猫现在股票多少?汤姆猫原始股价是多少?汤姆猫现在涨势怎么样? 汤姆猫历史最高股价多小?汤姆猫 机构预测股价?汤姆猫涨停需要多少钱? 汤姆猫的行业前景?汤姆猫上市以来的股价?汤姆猫每日行情如何? 汤姆猫今天走势分析?汤姆猫同花顺行业个股分析?汤姆猫的发行价是多少钱? 汤姆猫最低价和最高价?从技术方面分析汤姆猫?汤姆猫最近一年几次涨停? http://www.vmovier.com/53421?_vfrom=android_app_t 同房一年多,一直没有怀孕,需要做什么检查 同居很久没有怀孕需要做什么检查 老北京养生排毒足贴贴上后脚底起泡怎么回事 刚搬新家,摆什么比较吉利,望大师指点迷津 android things 点灯为什么加电阻 物流的具体概念是什么呢? 求android牛人帮忙 : 想问一下自己电脑上用android虚拟机创建的数据库文件是在磁盘的哪个具体的位置?? 家里聚宝盆放那好 抬眉毛耳朵嘟嘟嘟噜响,而且眼疲劳时更为严重,怎么办? 我的微信双开后,原来的就不能用了,怎么办? 怎么样可以把身份证扫描件发到网上啊? 语文的语法是什么。 张柏芝和谢霆锋儿子最近几天如和 梦见给死去的奶奶办生日宴? 梦见死去的奶奶,给奶奶过八十二大寿是什么 借款100000元,每期利息290元,本金8334元,借12期,实际利率是多少? 编制会计分录 企业从银行借入为期一年的借款100000元,已存入银行 企业2010年7月1日借入一笔期限为6个月的短期借款,借款本金为100000元,年利率为6%,利息 借款100000分18期还,总还款额12783.78,请问利息去到多少厘?