高通snapdragon平台下编译生成运行Android可执行程序小白教程

这里以高通msm8996为例:

1、源码准备

(1)在android目录下新建文件夹(这里为hello_test),将源代码(这里为hello.c)放入其中。

以最简单代码为例:


(2)新建一个Android.mk脚本文件,最简单的模板如下:

LOCAL_PATH:=$(call my-dir)

include$(CLEAR_VARS)

LOCAL_MODULE:=hello

LOCAL_SRC_FILES:= \

    hello.c

include$(BUILD_EXECUTABLE)

 

--------------------------------splitline------------------------------------

关于这几行代码的解释可以参看如下链接,写的很详细:

Android.mk文件语法规范及使用模板

2、执行编译

(1)回到android目录下,执行命令:

  source build/envsetup.sh

   #这个命令是用来将envsetup.sh里的所有用到的命令加载到环境变量里去

   再执行命令:

 lunch msm8996-userdebug

 #这个命令用来选择编译平台,平台的前半部分为产品名称,后半部分一般为以下四种类型,根据自己的板子类型选择:

eng: 工程机 user:最终用户机 userdebug:调试测试机 tests:测试机

(2)回到代码所在目录(hello_test),执行命令:

   mm

#这个命令为编译命令,常用的编译命令有:m、mm和mmm

m:编译所有的模块

mm:编译当前目录下的模块,当前目录下要有Android.mk文件

mmm:编译指定路径下的模块,指定路径下要有Android.mk文件

如果编译成功终端会显示:

(3)编译成功的可执行文件在目录android/out/target/product/msm8996/system/bin/下面,可用ls查看。

3、板子上执行

执行下列命令:

adb devices

 

adb remount

 

adb push hello  /storage

 

adb shell

 

 cd storage

 

  ./hello

这时候可在终端上看到:

至此,可执行程序运行成功!

p.s. 如果源码有所修改后想重新编译的话先在android目录下执行make installclean,否/home/shenqin/Coral/LINUX/android/kernel/include/media/v4l2-subdev.h则处理器会认为可执行程序存在而不做任何处理,直接默认编译成功。

 

 

 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐