您的位置:首页 > 编程语言 > C语言/C++

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

2016-12-02 20:15 369 查看
第一步,编写安卓应用程序并编译生成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



#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语言编写的安卓应用程序。

该应用程序直接穿越了普通安卓开发的JNI、Framework、APP等层级,对提高应用程序的运行效率意义重大
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: