利用源码编译Android系统的APK和可执行命令的方法
作者:喝醉的毛毛虫 时间:2023-12-22 13:09:46
编译Android系统APK
1、设置环境
export ANDROID_HOME=/home/administrator/soft/android
export PATH=$PATH:$ANDROID_HOME/out/host/linux-x86/bin
export ANDROID_PRODUCT_OUT=$ANDROID_HOME/out/target/product/generic
2、创建项目
android create project -t 1 -k com.lhw.led -a MainActivity -p ./led
Avd id: 1,It's get by command "android list"
Project Name: led
Package: com.lhw.led
Main Activity:MainActivity
Project Path: ./
接下来就是自己编写Android程序了。
3、编写Android.mk
Android.mk需要放在项目根路径下,即led下,内容:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_PACKAGE_NAME := led
LOCAL_JAVA_LIBRARIES :=
LOCAL_STATIC_JAVA_LIBRARIES :=
include $(BUILD_PACKAGE)
4、编译
在Android源码目录下执行:
./build/envsetup.sh
mmm /home/administrator/workspace/android_test/led/
执行结果:
Install: out/target/product/generic/system/app/led.apk
编译Android系统可执行命令
Android系统允许开发者,自己编写"ls"这样的命令放到Android系统中。
1、编写C文件:mycmd.c
#include <stdio.h>
int main(int argc, char **argv)
{
printf("This is my command!\n");
return 0;
}
2、编写Android.mk文件
LOCAL_PATH := $(call my-dir)
LOCAL_SRC_FILES := mycmd.c
LOCAL_MODULE := mycmd
LOCAL_MODULE_TAGS := mycmd
LOCAL_SHARED_LIBRARIES := libc
LOCAL_STATIC_LIBRARIES :=
include $(BUILD_EXECUTABLE)
3、编译
mmm /home/administrator/workspace/android_test/mycmd/
编译完成后信息:
Install: out/target/product/generic/system/bin/mycmd
标签:源码编译,Android
0
投稿
猜你喜欢
Android4.2中全屏或者取消标题栏的方法总结
2023-06-14 16:17:06
简单解析java方法在调用在内存中的执行过程
2022-04-12 15:46:26
IntelliJ IDEA(2020.2)的下载、安装步骤详细教程
2023-11-25 07:10:16
2022最新Java泛型详解(360度无死角介绍)
2022-03-08 15:13:42
关于Java中配置ElasticSearch集群环境账号密码的问题
2022-10-20 09:10:18
SpringBoot项目在IntelliJ IDEA中如何实现热部署
2023-10-29 13:30:22
RegexOptions.IgnoreCase正则表达式替换,忽略大小写
2022-05-03 17:25:45
SpringMVC路径匹配中使用通配符问题
2023-07-18 20:44:03
springboot实现配置两个parent的方法
2022-04-05 07:54:43
fastjson转换对象实体@JsonProperty不生效问题及解决
2023-10-07 00:13:51
Android 源码浅析RecyclerView ItemAnimator
2022-04-20 19:47:41
C#计算器编写代码
2022-12-28 02:57:25
java多线程Thread-per-Message模式详解
2022-12-23 16:55:00
Android App中使用ViewPager+Fragment实现滑动切换效果
2023-01-12 19:51:50
Java非侵入式API接口文档工具apigcc用法详解
2023-11-24 10:01:00
浅析Java中Split函数的用法技巧
2023-02-19 09:13:27
C++定义和初始化string对象实例详解
2022-08-05 06:03:00
Windows中使用C#为文件夹和文件编写密码锁的示例分享
2023-09-27 06:27:23
C#简单获取全屏中鼠标焦点位置坐标的方法示例
2023-09-14 16:18:04
C#虚方法的声明和使用实例教程
2022-09-26 16:07:55