Created: September 2, 2021
作者: 秋水君

前言

怎么编写能在Android系统中运行的C/C++可执行程序,一般有一下两种方法:

1. 通过谷歌提供的JNI机制
2. 交叉编译(本文选用方式)

安卓一般搭载在ARM架构下,其文件格式与常规X86架构的电脑端有所不同,电脑端可运行的可执行文件无法在安卓端直接运行,这就需要进行交叉编译,将代码编译为ARM环境下能够运行的程序。交叉编译有更大的自由度,可以使用NDK里提供的交叉编译工具,例如 android-ndk-r13b中就有交叉编译器 arm-linux-androideabi-gcc。

注:作者编程环境为 X86-64架构下的Ubuntu系统

xml库

可选的库有libxml2等,我这里选用 mxml 。原因在于1.纯C语言开发,更小巧便捷 2. 其依赖的库更少,之后交叉编译更容易。具体过程如下:

1. 从[GitHub](https://github.com/michaelrsweet/mxml/releases)获取压缩包  mxml-3.2.tar.gz

注意mxml也要经过交叉编译,正常gcc编译的mxml库在主程序交叉编译时无法直接链接到主程序。

1. 下载后解压,运行 /.configure ,设定编译器选项  CC=arm-linux-androideabi-gcc     及  编译输出路径 —–prefix=XXX  
2. 运行命令 ./configure  得到Makefile。修改Makefile将 LIBS = -lpthre

C/C++程序读写Android中xml文件相关推荐

  1. android 表格xml,【Android】利用表格布局,Android中xml文件与java的交互制作登录界面...

    登录界面是图形编程.网页编程的一个经典而又基础的程序. 在安卓中,如图所示一个基本登录界面: 点击取消按钮就关闭这个程序,点击登录按钮则显示用户输入的用户名与密码. 一.基本布局 这个程序利用到安卓中 ...

  2. android中xml文件的生成与读取(Pull)

    1.android中是采用Xml文件序列化器生成Xml文件的, //1得到一个xml文件的序列化器(生成器) XmlSerializer serializer=Xml.newSerializer(); ...

  3. android中XMl文件的读取

    废话不多说了直接上代码: 新建一个Xml文件用于读取: test.xml <Languages cat="1"><lan id="1"> ...

  4. android的读取xml配置文件,android中XMl文件的读取

    废话不多说了直接上代码: 新建一个Xml文件用于读取: test.xml java Eclipse Swift Xcode C# Visual Studio 后台: import android.su ...

  5. android 中xml文件的各种样式的学习

    http://keeganlee.me/post/android/20150916 代码规范演示: <!-- 方法一 --> <?xml version="1.0" ...

  6. android 读写文件 简书,Android 中的文件操作

    Android 文件操作 概述 Android 中的文件操作主要涉及到两个部分,一个是内部存储的读写,一个是外部存储的读写两者的主要区别如下表: 内部存储 外部存储 始终可用 它并非始终可用,因为用户 ...

  7. OpenCV中XML文件和YAML文件的读写

    OpenCV中XML文件和YAML文件的读写 代码如下: #include <opencv2/core/core.hpp> #include <iostream> #inclu ...

  8. Android中的文件读写操作

    在android开发中文件操作使用的其实还是比较高频的,之前我遇到这种需求都随便写写,对此没有一个比较全面的认识,所以想借这篇文章来梳理一遍. 由于需要读写文件,这包含了读写外部sd card的文件, ...

  9. Android中XML数据解析

    转载请注明出处:http://blog.csdn.net/yegongheng/article/details/38296207 XML初步 今天我们来学习另一种非常重要的数据交换格式-XML.XML ...

最新文章

  1. java回顾之继承 二
  2. 安装deepin后桌面以及窗口特效美化:破碎效果
  3. DHCP服务和NIS服务
  4. python目录下的文件夹_Python列出当前文件夹下文件的两种方法
  5. 用Java排序的五种有用方法
  6. java map转json字符串_Java-Gso-json字符串解析-php后台返回字段类型可能为字符串(/空字符串)或者对象的情况...
  7. PHP在金山游戏运营中的应用
  8. java 6大原则_java 6大设计原则 一:观察者模式
  9. Solr 基础性能调优讲解
  10. 元素(HYSBZ-2460)
  11. 《Python编程从入门到实践》记录之第6章 字典操作知识总结——字典遍历、字典嵌套等(思维导图)
  12. 使用IOCP需要注意的一些问题~~(不断补充)
  13. 【Android开发】Android 颜色透明度换算
  14. C基础(41——45)
  15. 收藏几款好用的网页下载工具(网页下载器)
  16. linux dev 下放的什么意思,详解Linux系统下的/dev目录
  17. 计算机硬件的五大部分由谁提出,存储程序原理是由谁于1946年提出的,它明确了计算机硬件组成的五大部分() - 问答库...
  18. 【HTB系列】靶机Chaos的渗透测试详解
  19. 【JavaWeb】在office word中使用merge field出现空行问题
  20. 冲击港交所:百果园书写水果连锁运营默示录

热门文章

  1. Kylin BI工具集成(JDBC+Zepplin)
  2. Problem B: 第K位数字
  3. 关于FPGA中有符号数表示方法的一些认识
  4. IDEAL葵花宝典:java代码开发规范插件 FindBugs-IDEA
  5. 熊猫党是什么_被熊猫4.0击中是什么感觉
  6. 实验二 简单网络命令和wireshark捕获FTP用户名密码
  7. 达梦笔记1:达梦数据库安装
  8. 斗地主程序(集合和数组的使用)
  9. 关于ROC曲线画出来只有一个点
  10. 出身寒门,逆袭为身家过百亿的谷歌 CEO,劈柴哥传奇