利用源码编译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
  • asp之家 软件编程 m.aspxhome.com