红联Linux门户
Linux帮助

在ubuntu电脑上使用C语言编写Android应用程序

发布时间:2016-12-04 10:36:32来源:linux网站作者:ddway12
第一步,编写安卓应用程序并编译生成bin格式的可执行文件
1.编写代码
#cd /usr/MarsBoard-A20-Android-4.2.2-SDK-V2.0/android4.2/external //进入external路径 
#mkdir hello //创建hello文件夹 
#gedit hello.c //创建hello.c文件
#include <stdio.h>  
#include <stdlib.h>  
#include <fcntl.h>  
#define DEVICE_NAME "/dev/myfirstdriver"  
int main(int argc, char** argv)  
{  
int fd = -1;  
int val = 0;  
fd = open(DEVICE_NAME, O_RDWR);  
if(fd == -1) {  
printf("Failed to open device dddddddd %s.\n", DEVICE_NAME);  
return -1;  
}
printf("Read origindfasdfaal value:\n");  
read(fd, &val, sizeof(val));  
printf("%d.\n\n", val);  
val = 5;  
printf("Write value %d to %s.\n\n", val, DEVICE_NAME);  
write(fd, &val, sizeof(val));
printf("Read the value again:\n");  
read(fd, &val, sizeof(val));  
printf("%d.\n\n", val);  
close(fd);  
return 0;  
}
#gedit Android.mk //创建Android.mk文件
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := hello
LOCAL_SRC_FILES := $(call all-subdir-c-files)
include $(BUILD_EXECUTABLE)
2.编译生成
#cd /usr/MarsBoard-A20-android-4.2.2-SDK-V2.0/android4.2 //进入安卓源码跟目录
#source build/envsetup.sh   //环境设置
#lunch  //选择开发平台
#16  //选择 marsboard 开发平台
#mmm /usr/MarsBoard-A20-android-4.2.2-SDK-V2.0/android4.2/external/hello  //编译安卓程序
在如下目录下会生成hello的可执行文件 /usr/MarsBoard-A20-android-4.2.2-SDK-V2.0/android4.2/out/target/product/wing-marsboard/system/bin
 
第二步,将执行文件导入开发板平台
#adb devices   //查看ubuntu上挂载的安卓设备,开发板的设备号为20080411
在ubuntu电脑上使用C语言编写Android应用程序
#adb root
#adb remount //remount权限,否则无法导入到开发板的system/bin路径下
#cd /usr/MarsBoard-A20-android-4.2.2-SDK-V2.0/android4.2/out/target/product/wing-marsboard/system/bin
# adb -s 20080411 push  hello /system/bin//将可执行文件导入到安卓开发板的相应路径下
上面的的一步也可以通过编译生成刷机包Img格式的文件使用phoenixsuite工具对开发板进行刷机,也会在上面的路径下找到hello的可执行文件
#adb shell
#cd /system/bin
 
第三步执行程序并验证
#./hello
得到的输出结果如下(注意在上一个分享中已经执行的helloword.ko的驱动模块会在/dev目录下生成名为myfirstdrive的文件,并已经在文件中输入了信息,如果没有创建myfirstdrive文件,则会打印出“Failed to open device dddddddd  ...”)
在ubuntu电脑上使用C语言编写Android应用程序
至此实现了在ubuntu系统下使用C语言编写的安卓应用程序。
 
该应用程序直接穿越了普通安卓开发的JNI、Framework、APP等层级,对提高应用程序的运行效率意义重大。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/26564.html