如何在Android系统源码中添加C项目
发布网友
发布时间:2022-04-23 12:48
我来回答
共1个回答
热心网友
时间:2023-06-30 11:31
以hello_android为例,步骤如下:
1、在external目录下创建hello_android目录,然后在hello_android目录中编写hello_android C语言实现文件hello_android.h,hello_android.c:
(注:hello_android目录可以放置在Android系统源码下的任意目录中,并非一定要在external下。)
hello_android.h
#include<stdio.h>
#include<stdlib.h>
void makePrintf(char *str)
{
printf("%s", str);
}
hello_android.c
#include <stdio.h>
#include <stdlib.h>
#include "hello_android.h"
int main(int argc, char** argv)
{
makePrintf("hello, android!\n");
return 0;
}
2、编写负责编译的Android.mk文件:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := hello_android.c
LOCAL_C_INCLUDES += $(LOCAL_PATH)
LOCAL_MODULE := hello_android
LOCAL_MODULE_TAGS := eng
include $(BUILD_EXECUTABLE)
3、利用mm编译生成hello_android二进制可执行文件;
4、将helllo_android文件复制到/system/bin目录下执行:
#./hello_android
hello, android!
5、代码结构
$ pwd
external/hello_android
$ tree
如何在Android系统源码中添加C项目
1、在external目录下创建hello_android目录,然后在hello_android目录中编写hello_android C语言实现文件hello_android.h,hello_android.c:(注:hello_android目录可以放置在Android系统源码下的任意目录中,并非一定要在external下。)hello_android.h include<stdio.h> include<stdlib.h> void makePrintf(...
如何在Android系统上运行C语言的程序
1. 查看可执行文件xlisten-arm所需要的动态链接库:执行语句:2. 将程序编译的时候选择静态编译,即使用选项 -static 对Makefile文件中的CFLAG变量进行修改:CFLAGS = -Wall 改为:CFLAGS = -Wall -static 3. 在Makefile中,修改LIBS变量:LIBS = -lsqlite3 -lm -lcrypt 改为:LIBS ...
手机如何运行c需要代码
对于 Android 系统的手机,我们可以通过安装 Termux 应用程序来获得命令行环境。在 Termux 中,我们可以使用命令:pkg install clang 来安装 C 语言编译器。2. 编写 C 代码 安装好 C 语言编译器之后,我们就可以在手机上编写 C 代码了。在 Termux 中,可以使用 Vim 或者 Nano编辑器来编辑 C 代码文...
Android 文件系统中添加文件及添加系统属性
android是linux系统,文件系统有很严格的权限设置,如果你的apk没有root权限那么你只能在有限的地方如sdcard目录下读写文件 至于读写文件的方法,最简答的在java上直接用FileInputStream类就可以 如果是ril层用c/c++的话,在ndk下直接用fopen fwrite就行了 所以核心问题是你的apk应用有没有权限来读写sys...
怎么在Android.mk里面添加大量的源文件
我们可以使用通配符来解决大量的源文件添加到Android.mk的问题:第1行是使用GNU Make函数wildcard来查找所有目录下面的文件,这里查找的是"当前项目路径/foo"目录下面的所有的“.c”文件,第2行会把所有找到的文件名中的$(LOCLA_PATH)路径给去掉,只剩下foo/*.c类似的名字。MY_FILES := $(wildcard...
如何单独编译Android源代码中的模块
一. 首先在Android源代码目录下的build目录下,有个脚本文件envsetup.sh,执行这个脚本文件后,就可以获得一些有用的工具:USER-NAME@MACHINE-NAME:~/Android$ . ./build/envsetup.sh 注意,这是一个source命令,执行之后,就会有一些额外的命令可以使用:- croot: Changes directory to the top of ...
使用C语言开发跨平台(win/android)应用(PainterEngine 快速入...
在Android环境中,使用Android Studio进行开发。创建新项目,复制PainterEngine的AndroidManifest.xml和CMakeList到项目目录下,将平台框架代码复制到指定文件夹中,并在CMakeLists.txt中配置PainterEngine路径、工程代码路径等信息。通过Link C++ Project With Gradle连接C++项目,选择CMakeLists.txt文件,然后运行...
如何在android的源代码中添加persist属性
需要import android.provider.Settings;android源码开发中,常常要用到一些全局标志或者说变量,这时候我们可以给android系统添加自己想要的属性。1.Settings.system 这种系统属性我们经常用到,例如飞行模式的开启和关闭,我们就是去改变Settings.system.AIRPLANE_MODE_ON 的值。下面就介绍下我们怎样去定义一个...
如何在android源代码中打印出日志
1:在编译so文件的c或cpp文件之前中加入以下代码,就可以在android中的log显示日志内容 include define LOG_TAG "show infomation"define LOGW(a ) __android_log_write(ANDROID_LOG_WARN,LOG_TAG,a)2:就可以在c或cpp中加入LOWG(str) 就可以在android中的log中显示打印的内容 3.这样写完以后,...
如何为Android系统添加一个新的资源包
通过为Android添加一个新的独立的资源包,可以将厂商定制资源独立出来,可移植、可维护性非常好。具体做法可以分为以下几个步骤:1. 修改build/core/clear_var.mk LOCAL_USE_LETV_FRAMEWORK_RES:= true 2. 修改build/core/package.mk 以下脚本可以加在 $(R_file_stamp): $(framework_res_package_...