Android ndk 中使用STL_ryfdizuo的博客-程序员秘密

技术标签: C++  ndk  android  STL  移动开发  

ndk版本:android-ndk-r8d,基于ndk自带samples中的test-libstdc++工程进行修改。


1. 例子工程目录结构:

test-libstdc++ / jni / Android.mk

test-libstdc++ / jni / Application.mk

test-libstdc++ / jni / test-libstdc++.cpp


2. Android.mk文件:

# A simple test for the minimal standard C++ library
#
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE := test-libstl
LOCAL_SRC_FILES := test-libstl.cpp
LOCAL_LDLIBS    := -llog

include $(BUILD_EXECUTABLE)

include $(CLEAR_VARS)
LOCAL_EXECUTABLE := test-libstl


3. Application.mk内容:

APP_STL := stlport_static

4. test-libstdc++.cpp内容:

#include <iostream>
#include <string>
#include <vector>
using namespace std;

int main() {
	vector<string> contents;
	for (int i=0; i<5; i++) 
	{
		contents.push_back(string("vector"));
	}
	
	for (int i=0; i<5; i++) 
	{
		cout << contents[i] << endl;
	}
	
	cout << "hello, world\n";
	return 0;
}


5. 最后在test-libstdc++\libs\armeabi目录下面生成test-libstl 可执行程序。原理类似tcpdump工具使用,通过adb推到手机上,在shell模式下运行改可执行程序:

D:\android-sdk-windows\platform-tools>adb push test-libstl /data/local/
1341 KB/s (251396 bytes in 0.182s)

D:\android-sdk-windows\platform-tools>adb shell chmod 755 /data/local/test-libstl

D:\android-sdk-windows\platform-tools>adb shell /data/local/test-libstl
vector
vector
vector
vector
vector
hello, world


参考:http://tungchingkai.blogspot.com/2011/08/how-to-build-android-ndk-sample-using.html



版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/dizuo/article/details/9172881

智能推荐

浅谈游戏《神秘海域4:盗贼末路》_Lilith_99的博客-程序员秘密

序言在高清电视上给我带来身临大片般的游戏体验,一直以来是我的梦想,而这个寒假,《神秘海域4:盗贼末路》做到了。作为神秘海域系列(Uncharted)的最后一部作品,神秘海域4(以下简称神海4)叫好又叫座,时至今日也是吸引很多人购买PS4游戏机的原因。它使用扎实的技术,榨干PS4的机能,用顶尖的声画效果讲好了一个动人心弦的冒险故事。顽皮狗与神秘海域系列顽皮狗的最初...

【JAVAEE框架】MyBatis与Spring的整合(下)_Coder.追的博客-程序员秘密

在使用spring进行web开发时,虽然spring提供的注解方式可以方便的处理很多原来需要手动提交或回滚的事务,但是注解方式有自己使用的局限,比如在类的内部调用方法时,注解方式处理的事务就无法被触发,此时可能需要手动处理相关数据库的事务。本文记录在spring开发时使用Spring提供的DataSourceTransactionManager进行事务提交或回滚处理。

用TensorFlow搭建卷积神经网络识别数字图片_呱唧响的博客-程序员秘密

import tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_datadata_from_file=input_data.read_data_sets('MNIST_data',one_hot=True)batch_size=100n_batch=data_from_file.train.num...

基于单片机的简单的任务调度器_单片机任务调度器_不咸不要钱的博客-程序员秘密

近来工作之余,研究了一下APM的源码。APM源码连接https://pan.baidu.com/s/17Dg1oEJT_fj12DM1BmZWxA发现源码中有一个简单的任务调度器,不太重要的任务都在Scheduler中完成。为什么需要Scheduler呢??飞行器姿态信息需要角速度积分,位置信息也需要光流的积分,也就是需要获取精确的时间间隔,对时间敏感。Scheduler的主要作用是保证主函数运行的时间相同,什么原理呢?假设我们主循环中有6个任务, 每个任务执行时间为1ms,而我们的控制周期要求

2018-2-13-win10-uwp-获取指定的文件-AQS_lindexi_gd的博客-程序员秘密

title author date CreateTime categories win10 uwp 获取指定的文件 AQS lindexi 2018-2-13 17:23:3 +0800 2018-2-13 17:23:3 +0800 Win10 UWP 很多时候不需要获取整个文...

OpenDDS在windows下的安装教程(一)_opendds安装_nini_boom的博客-程序员秘密

OpenDDS虽然强大,但是安装使用起来却很让人头疼,这里是详解OpenDDS安装以及会出现的各种错误情况给予解决方案

随便推点

iPhone12详细拆解报告出炉!(附主要器件清单)_张巧龙的博客-程序员秘密

点击上方“大鱼机器人”,选择“置顶/星标公众号”福利干货,第一时间送达!10月25日消息,知名拆解机构iFixit今天第一时间送上了iPhone 12和iPhone 12 Pro的拆解,...

nyoj-158-省赛来了(组合数)_weixin_30906185的博客-程序员秘密

题目链接 1 /* 2 Name:nyoj-158-省赛来了 3 Copyright: 4 Author: 5 Date: 2018/4/25 17:07:22 6 Description: 7 暴力,秒天秒地 8 */ 9 #include &lt;iostream&gt;10 #include &lt...

redis主从复制配置+哨兵机制配置_keydous的博客-程序员秘密

redis主从复制准备:windows 10 环境https://github.com/microsoftarchive/redis/releases/tag/win-3.2.100解压:将三个redis文件名设置为master、slave-1、slave-2。redis配置三个redis中的redis.windows.conf和redis.windows-service.conf文件中的port设置成如下:master 对应 6379slave-1 对应 6380slave-2

Python并发编程之深入理解yield from语法_weixin_30815427的博客-程序员秘密

当你看到这一篇的时候,请确保你对生成器的知识,有一定的了解。当然不了解,也没有关系,你只要花个几分钟的时间,来看下我上一篇文章,就能够让你认识生成器,入门协程了。再次提醒:本系列所有的代码均在Python3下编写,也建议大家尽快投入到Python3的怀抱中来。本文目录为什么要使用协程yield from的用法详解为什么要使用yield from....

Flutter 中的按钮组件,RaisedButton,FlatButton,OutlineButton,IconButton,ButtonBar_flatbutton flutter_达帮主的博客-程序员秘密

Flutter 按钮组件Flutter里面有很多的Button组件很多,常见的按钮组件有:RaisedButton,FlatButton,IconButton,OutlineButton,ButtonBar,FloationActionButton等..组件 描述 RaisedButton 凸起的按钮,其实就是Material Design风格的Button FlatButton 篇平化的按钮 OutlineButton 线框按钮 IconButton

推荐文章

热门文章

相关标签