C/C++编写Android系统应用程序模块

原创 2016年05月30日 15:25:18

1、在Android源代码工程环境中,可以用C/C++语言编写应用程序模块(可执行程序或者动态链接库so)。这些模块的源代码一般位于external目录下,编译结果一般位于/system/bin或者/system/lib目录下。

2、Hello Word程序示例

2.1、代码结构

源代码根--|

                   |--external--|

                                        |--hello_word--|

                                                                   |--hello.c

                                                                   |--Android.mk

2.2 hello.c

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char** argv){
printf("hello word");
return 1;
}


2.3 Android.mk

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := hello_word_test
LOCAL_SRC_FILES := $(call all-subdir-c-files)
include $(BUILD_EXECUTABLE)


2.4用mmm命令编译,用make snod打包

注意mmm命令不是直接可用的,必须先在 源代码根/build 下执行source envsetup.sh之后再使用。

在 源代码根下执行 mmm ./external/hello_word/

执行完mmm之后,就可以看到 源代码根/out/target/product/generic/system/bin 下有 hello_word_test 可执行文件。

在 源代码根下执行 make snod

在执行完make命令打包之后,这个可执行文件就打包进了 源代码根/out/target/product/generic/system.img 镜像文件中去了。


2.5验证

用模拟器加载打包好的镜像文件,启动模拟器,用adb shell连接上,在/system/bin里面执行 ./hello_word_test即可以看到运行结果。


2.6 C++语言


main.cpp文件

#include<iostream>
using namespace std;
int main(int argc, char *argv[])
{
cout<<"hello,this is my first linux test."<<endl;
return 1;
}

Android.mk文件

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := hello_word_cpp
LOCAL_SRC_FILES := $(call all-subdir-cpp-files)
include $(BUILD_EXECUTABLE)

版权声明:本文为博主原创文章,未经博主允许不得转载。

Android系统开发(5)——Eclipse for C/C++

一、下载JDK官方下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html二、下...

Android架构分析之基于Android系统的C应用程序开发

作者:刘昊昱  博客:http://blog.csdn.net/liuhaoyutz Android版本:2.3.7_r1 Linux内核版本:android-goldfish-2.6.29 ...

tiny210 hal 4 Android系统中编写JNI方法在应用程序框架层提供Java接口访问硬件

refer to 在Android系统中编写JNI方法在应用程序框架层提供Java接口访问硬件

tiny210 hal 6 Android系统中编写APP通过应用程序框架层访问硬件服务。

refer to 在Android系统中编写APP通过应用程序框架层访问硬件服务。

Android系统的RTC应用设计毕业论文

  • 2015年08月06日 19:41
  • 2.54MB
  • 下载

UEFI简单的应用程序模块MyHelloWorld:C源文件/INF工程文件源码/简析[6]

6. UEFI简单的应用程序模块MyHelloWorld:C源文件//INF工程文件源码/简析 ->6.1 MyHelloWorld.c源程序/简析 ->6.2 MyHello...

Android系统应用卸载demo

  • 2014年09月22日 15:21
  • 2.04MB
  • 下载

获取Android系统内的应用信息

  • 2017年06月22日 18:58
  • 197KB
  • 下载

Android源码开发----如何编写Android系统应用

上一篇博客已经完成了Android源码的编译工作,我们来看下源码目录(我的源码为三方移植包,所以目录会多了一点) 其中,package/app目录下放着我们的系统应用,也就是我们手机中出厂自带的,不能...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C/C++编写Android系统应用程序模块
举报原因:
原因补充:

(最多只允许输入30个字)