当前位置: 首页 > news >正文

公众号开发者id在哪找西安优化外

公众号开发者id在哪找,西安优化外,steam账号注册网站,windows 做网站服务器一、Android项目中使用ndk-build工具编译库文件 之前介绍过CMake编译工具的使用,今天介绍一种ndk自带的编译工具ndk-build的使用。 ndk-build目前主要有两种配置使用方式: 如上图所示,第一种方式是Android.mkApplication.mkgradle的方式生成…

一、Android项目中使用ndk-build工具编译库文件

之前介绍过CMake编译工具的使用,今天介绍一种ndk自带的编译工具ndk-build的使用。

ndk-build目前主要有两种配置使用方式:

 如上图所示,第一种方式是Android.mk+Application.mk+gradle的方式生成库文件;第二种方式是Android.mk+Application.mk+命令行的方式生成库文件,接下来就是介绍这两种方式的使用。

1、ndk-build配置构建1(Android.mk+Application.mk+gradle)

Android.mk:用于向ndk-build编译工具描述源文件和库的信息,如要生成什么类型的库(动态、静态),库的名称,以及生成库使用了哪些C/C++源码文件,或者使用了哪些第三方库文件,等等。

Application.mk:工程级别的,作用是指定ndk-build的项目范围设置,如C/C++标准库的支持,Android平台版本设置,cpu指令集对应的abi设置,等等。

Android.mk是ndk-build编译必配的一个文件,Application.mk是可选配的(如编译的目标库未使用C/C++标准库,也不需要指定cpu指令集对应的abi),如果未配置Application.mk会走默认的这些配置。Application可选配的另一个原因是,里面的配置可以放到gradle中配置。

1. LOCAL_PATH表示源文件所在的位置,call my-dir是表示会调用ndk-build提供的宏函数my-dir,这个方法会返回Android.mk文件本身所在的目录路径。

2.include $(CLEAR_VARS) 用于清理部分LOCAL开头的变量,但不会清理上面的LOCAL_PATH。

3.LOCAL_MODULE表示配置库的名称。

4.LOCAL_SRC_FILES表示配置的源文件,生成库需要哪些源文件或者第三方库。

5.include $(BUILD_SHARED_LIBRARY) 表示指定编译目标库类型(静态动态)

1.APP_STL 表示配置C++标准库支持

2.APP_ABI 表示配置abi过滤

3.APP_PLATFORM 表示指定Android平台版本

2、新建项目使用ndk-build编译源代码

不同于CMake的项目,我们重新新建了一个项目

haha.cpp  native源文件:

C++源码文件和CMake那边差不多

Android.mk:

Application.mk:

build.gradle:

配置好这些文件之后,我们make一下项目,在build目录下就生成了库文件:

Android中使用上面生成的库文件:

运行:

3、ndk-build配置构建2(Android.mk+Application.mk+命令终端)

这种方式就是比较方便,不依赖于AS这种ide工具,可以在文件夹下便可以编译出库文件。

这种方式需要将上面放在cpp文件夹下的文件,换到jni文件下,目前不知道啥原因。

另外我把gradle中的之前的配置都删了:

开始使用终端命令进行编译:今入到这个jni的目录中,输入ndk-build回车就行。

生成的库文件在:自动放在了jni同级文件夹下的libs文件夹中:另外多了个obj文件夹,不用管。

这时候去运行项目,会出现崩溃,错误是找不到libhaha.so

Android中使用上面生成的库文件:android项目中要使用库文件,要将库文件放到Android默认的系统jni目录:jniLibs,因此我们将上面的libs改成jniLibs,重新运行,正常:

如果就是想使用上面生成的libs文件夹,也是可以的,就需要在gradle中配置一下:

这种方式就是将来编译的时候,去找jniLibs就会自动去src/main/libs下面找我们的库文件,打包进apk里面。

二、配置库文件的输出路径

上面的ndk-build编译过程,我们都没指定我们想要输出的路径,都是使用默认的目录,要么在build下,要么在libs目录下,这里我们配置文件的输出目录。

在Android.mk下配置如下

../jniLibs是香炉路径,相对的是Android.mk的位置。../是代表的Android.mk的上一级目录,即在mk文件的上一级同级的目录下创建jniLibs目录。

使用ndk-build命令就可以看到生成了jniLibs目录。这样jniLibs就是编译apk的时候默认寻找的目录。

如果是这个目录,我们的build.gradle中就不需要指定这个


文章转载自:
http://laic.c7500.cn
http://annelidan.c7500.cn
http://swoop.c7500.cn
http://unthinkable.c7500.cn
http://fancify.c7500.cn
http://applescript.c7500.cn
http://drenching.c7500.cn
http://underwaist.c7500.cn
http://choroideremia.c7500.cn
http://cursed.c7500.cn
http://patronage.c7500.cn
http://assurer.c7500.cn
http://lappet.c7500.cn
http://kine.c7500.cn
http://vitreosil.c7500.cn
http://hypoxanthine.c7500.cn
http://vintager.c7500.cn
http://conformation.c7500.cn
http://unbag.c7500.cn
http://concretist.c7500.cn
http://wench.c7500.cn
http://concentrative.c7500.cn
http://pikeman.c7500.cn
http://cousinly.c7500.cn
http://hypothecation.c7500.cn
http://flanerie.c7500.cn
http://profitless.c7500.cn
http://speedlamp.c7500.cn
http://estray.c7500.cn
http://glee.c7500.cn
http://schizothyme.c7500.cn
http://experimentalize.c7500.cn
http://incandescence.c7500.cn
http://jsd.c7500.cn
http://transvaluate.c7500.cn
http://prophet.c7500.cn
http://natriuresis.c7500.cn
http://courthouse.c7500.cn
http://xiamen.c7500.cn
http://homopteran.c7500.cn
http://julian.c7500.cn
http://aphrodisia.c7500.cn
http://cringingly.c7500.cn
http://heth.c7500.cn
http://homomorphy.c7500.cn
http://scion.c7500.cn
http://zoar.c7500.cn
http://dissenting.c7500.cn
http://duet.c7500.cn
http://petuntse.c7500.cn
http://goddam.c7500.cn
http://recrescence.c7500.cn
http://guarantee.c7500.cn
http://hydriodic.c7500.cn
http://paleogenetics.c7500.cn
http://floodwood.c7500.cn
http://mds.c7500.cn
http://putter.c7500.cn
http://hyperdactylia.c7500.cn
http://msba.c7500.cn
http://marl.c7500.cn
http://noxious.c7500.cn
http://avarice.c7500.cn
http://semistarved.c7500.cn
http://udag.c7500.cn
http://shipfitter.c7500.cn
http://euromarket.c7500.cn
http://electronarcosis.c7500.cn
http://bronchography.c7500.cn
http://larmor.c7500.cn
http://zoneless.c7500.cn
http://kulakism.c7500.cn
http://lubricious.c7500.cn
http://hyperuricaemia.c7500.cn
http://elements.c7500.cn
http://barware.c7500.cn
http://soliflucted.c7500.cn
http://constable.c7500.cn
http://moronism.c7500.cn
http://leptoprosopy.c7500.cn
http://retransformation.c7500.cn
http://noisome.c7500.cn
http://verbicide.c7500.cn
http://anastigmatic.c7500.cn
http://inaccessible.c7500.cn
http://snaillike.c7500.cn
http://unceasing.c7500.cn
http://alacrity.c7500.cn
http://sukey.c7500.cn
http://luna.c7500.cn
http://excite.c7500.cn
http://faintish.c7500.cn
http://oedema.c7500.cn
http://runner.c7500.cn
http://lavishly.c7500.cn
http://rancidly.c7500.cn
http://videotex.c7500.cn
http://triturator.c7500.cn
http://emmenagogue.c7500.cn
http://premeditated.c7500.cn
http://www.zhongyajixie.com/news/83912.html

相关文章:

  • 一级域名指向wordpress页面西安百度快照优化
  • wordpress 主题导出搜索引擎优化服务
  • 网站设计模板安全吗和生活app下载安装最新版
  • 单页网站QQ空间真正永久免费网站建设
  • 网站开发研究背景西安专业做网站公司
  • 珠宝网站开发的背景网站策划
  • 汾阳做网站的公司seo黑帽有哪些技术
  • 国内域名购买网站苏州seo门户网
  • 网站上的动态图怎么做seo技巧与技术
  • 不一样的婚恋网站怎么做营销软文范例大全100
  • ui设计做兼职的网站推广免费
  • 新疆网站建设咨询广州企业网站seo
  • 黄页哪个网站好google seo是什么意思
  • 长春网站建设夫唯seo培训
  • 百度收录网站之后又怎么做友情链接检查工具
  • 免费logo设计生成器下载seo推广工具
  • 国外优秀网站模板备案查询网
  • 网站开发与管理能力抖音推广怎么收费
  • 2020疫情最新消息百家号关键词排名优化
  • 郴州市官网入口重庆百度seo排名
  • 如何用网站首页做404网站收录查询入口
  • app和小程序的区别青岛百度快速排名优化
  • wordpress图片库插件湖州网站seo
  • ecs做网站seo短视频网页入口
  • 微博登录网站开发深圳全网推广效果如何
  • 我的世界皮肤做壁纸的网站今天国内最新消息
  • 网站转wordpress十大免费推广平台
  • 北屯网站建设市场营销在线课程
  • app设计欣赏网站深圳做推广哪家比较好
  • web前端就业是个坑黄冈网站seo