您的位置:首页 > 移动开发 > Android开发

android 中 c/cpp创建应用剖析(一)

2015-06-29 23:20 585 查看
我们一般都是用 JAVA 编写标准 APK,要知道在 android 系统中也是允许通过 CPP/C 来写应用的。那么如何实现呢?

下面写一个简单的示例:

test.c

#include <stdlib.h>
#include <stdio.h>
#include <utils/Log.h>
#define LOG_TAG "TEST"
#define ALOGE printf

void d(){
char *p = NULL;
ALOGE("test func d\n");
*p = 0x323;//make app crash
}

void c() {
int var4 = 6;
ALOGE("test func c\n");
}

void b() {
int var3 = 3;
ALOGE("test func b\n");
c();
d();
}

void a() {
int var1, var2;
ALOGE("test func a\n");
var1 = 1;
}

int main(int argc, char *argv[]){
int var0 = 4;
ALOGE("test func main\n");
a();
b();
return 0;
}


对应的 Android.mk 文件为:
LOCAL_PATH:=$(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES:=test.c
LOCAL_MODULE:=test
include $(BUILD_EXECUTABLE)

将这两个文件放在 ../system/test 目录下(test为手动创建)编译:
mmm -B system/test

得到编译结果:

Install: out/target/product/bbk6735_65c_l/system/bin/test

将这个结果push 到手机 system/bin 目录

$ adb push y:/project_code_mtk/MT6735_20150511/out/target/product/bbk6735_65c_l/system/bin/test system/bin

149 KB/s (5680 bytes in 0.037s)

成功后,添加可执行权限:

adb shell chmod 777 system/bin/test

然后就可以在命令行环境下执行该应用了:

adb shell system/bin/test

输出:

test func main

test func a

test func b

test func c

test func d

因为在函数d() 中人为设置了一个错让程序crash,所以运行到 d() 就结束了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: