当前位置: 首页 > news >正文

ASfP: 增强AOSP平台开发的利器——Android Studio for Platform

ASfP: 增强AOSP平台开发的利器——Android Studio for Platform

Android Studio for Platform (ASfP) 是一个为使用 Soong 构建系统构建的 Android 开源项目(AOSP)平台开发者而设计的 Android Studio IDE 版本。与标准 Android Studio 不同,ASfP 具有多语言支持,可以在同一 IDE 中编写 C++、Kotlin 和 Java 程序语言,并且具有项目设置向导和配置 lunch 目标和平台模块等功能。

asfp安装配置

如果您是 AOSP 平台开发者并且需要进行大量的 C++ 编程工作,那么 ASfP 可能是您的首选开发环境。以下是一些使用 ASfP 的入门指南:

  1. 安装 Repo 客户端:在开始使用 ASfP 之前,您需要安装 Repo 工具。您可以在 Google 的开发者文档中找到官方的安装说明。

  2. 初始化 Repo 检出分支:初始化 Repo 后,您需要指定要检出的 AOSP 分支。这个过程可以在 Google 的开发者文档中找到。

  3. 下载并安装 ASfP:您可以从官方网站上下载 ASfP 的适用于 Linux 的 .deb 安装程序,并通过以下命令进行安装:

sudo dpkg -i /path/to/asfp-2023.1.1.19-linux.deb
  1. 打开 ASfP:通过在终端中切换到 ASfP 的 bin 目录,并运行 studio.sh 命令来启动 ASfP:
/opt/android-studio-for-platform/bin/studio.sh

配置快捷图标
使用.sh启动总是不很方便,那么配置一个快捷图标就方便多了
新建asfp.desktop文件,配置如下:

[Desktop Entry]
Encoding=UTF-8
Name=AndroidStudio                                     
Comment=AndroidStudio                                  
Exec=/home/cl/soft/asfp/bin/studio.sh 
Icon=/home/cl/soft/asfp/bin/studio.svg 
Terminal=false                                   
StartupNotify=true
Type=Application
Categories=Application;Development;

完成配置后,注意修改权限。快捷图标如下

  1. 导入项目:在启动 ASfP 后,您需要指向 Repo 检出目录,并配置 lunch 目标和要构建的模块。这将确保您可以正确地编译和构建您的项目。

ASfP 支持多种语言和平台,可以让开发者更轻松地在同一开发环境中进行多种编程任务。如果您是 AOSP 平台开发人员,ASfP 可以帮助您更快地迭代和测试代码,并让您更加高效地开发 Android 应用程序。现在,您可以尝试使用 ASfP 来提高您的 Android 平台开发效率了!

配置结构

导入AOSP工程,从File->Import Asfp Project可导入AOSP工程
Repo checkout为AOSP根目录
Lunch target为需要启动的目标,也就是我们通过lunch命令启动的项目列表中的选项
Module paths为需要调试的模块,例如framework、Settings等
Project name为工程名称
Location为工程配置及数据保存位置

根目录下asfp-config.json为项目全局配置

{"repoRoot" : "/home/cl/Code_extend/aosp","modulePaths" : ["frameworks","packages/apps/Settings","system/extras/su"],"lunchTarget" : "gxx5-userdebug","nativeConfig" : {"excludePaths" : [ ],"excludeGenPaths" : ["*"]}
}

工程不仅可以导入Java/kotlin工程,也可以导入C++工程
如下作者导入了system/extras/su模块

支持代码高亮,有些头文件没法直接跳转是因为引入了其他模块,所以需要增加所引入模块的导入

在Project Structure中可动态增减模块

Soong编译过程输出窗口

修改模块后执行Asfp->Sync soong project 后,soong窗口会重新执行编译,idea命令支持还是差一些,编译也慢,不如直接在shell窗口执行mm命令或者ninja快些。

相关文章:

ASfP: 增强AOSP平台开发的利器——Android Studio for Platform

ASfP: 增强AOSP平台开发的利器——Android Studio for Platform Android Studio for Platform (ASfP) 是一个为使用 Soong 构建系统构建的 Android 开源项目(AOSP)平台开发者而设计的 Android Studio IDE 版本。与标准 Android Studio 不同,…...

【Html】用CSS定义咖啡 - 咖啡配料展示

显示效果 代码 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>CodePen - For The Love Of Coffee</title><link rel"stylesheet" href"./style.css">&l…...

Learn Prompt-Prompt 高级技巧:AutoGPT

AutoGPT 是一个由Toran Richards创建的流行开源项目。它利用GPT4作为大脑&#xff0c;结合langchain的链接思想&#xff0c;连接各种工具和互联网资源&#xff0c;来完成人类给予的任务。您只需要设定一个目标&#xff0c;AutoGPT就会自主规划并逐步执行任务。如果遇到问题&…...

IntelliJ IDEA - Maven 在控制台Maven编译正常,但是在IDEA中不正常,表现不一致

文章目录 现象原因解决验证 现象 一个Maven项目&#xff0c;当导入到IDEA后&#xff0c;无法在IDEA中正常的编译和下载jar依赖&#xff0c;类似下面的截图。 但是在Windows控制台却可以正常编译&#xff0c;类似下面的截图。 CMD执行&#xff1a;mvn clean install -Dmaven.te…...

list 用法与模拟

list 用法 list list 模拟 #pragma once #include <assert.h> namespace sjy {//链表节点template <typename T>struct __list_node{__list_node(const T& val T()):_prev(nullptr),_next(nullptr),_val(val){}/*成员变量*/__list_node<T>* _prev;__…...

【操作系统笔记】进程和线程

进程的组成 进程要读取 ELF 文件&#xff0c;那么&#xff1a; ① 要知道文件系统的信息&#xff0c;fs_struct② 要知道打开的文件的信息&#xff0c;files_struct 一个进程除了需要读取 ELF 文件外&#xff0c;还可以读取其他的文件中的数据。 进程中肯定有一个 mm_struct…...

一短文读懂编译型与解释型编程语言

在编程世界中&#xff0c;我们经常听到编译型语言和解释型语言这两个术语。它们是什么&#xff0c;有什么区别呢&#xff1f;让我们一起来探讨一下。 编译型语言 编译型语言&#xff0c;如C、Java等&#xff0c;是一种需要先被编译成机器代码&#xff0c;然后才能被执行的语言…...

修炼离线:(三)sqoop插入hbase 报错权限问题

一&#xff1a;报错现象。 二&#xff1a;解决方式。 方法一&#xff1a;修改文件所有者。 切换hadoop用户&#xff1a;export HADOOP_USER_NAMEhdfs hadoop fs -chown -R root:root /方法二&#xff1a;修改权限 切换hadoop用户&#xff1a;export HADOOP_USER_NAMEhdfs ha…...

【JavaEE】多线程(四)

多线程&#xff08;四&#xff09; 在开始讲之前&#xff0c;我们先来回顾回顾前三篇所讲过的内容~ 线程的概念 并发编程&#xff0c;多进程&#xff0c;比较重&#xff0c;频繁创建销毁&#xff0c;开销大 Thread的使用 创建线程 继承Thread实现Runnable继承Thread&#xff…...

第一章:最新版零基础学习 PYTHON 教程(第七节 - Python 中的语句、缩进和注释)

在这里,我们将讨论Python中的语句、Python中的缩进和Python中的注释。我们还将讨论 Python 语句、Python 缩进、Python 注释的不同规则和示例,以及“文档字符串”和“多行注释”之间的区别。 Python中的语句是什么 Python语句是Python 解释器可以执行的指令。Python 语言中…...

C++ 【2】

1.指针基础 字符&#xff1a;C 一个字符占一个字节 在C中 << 这个为插入运算符 >> 这个为提取运算符 一个变量的地址称为该变量的指针&#xff1b;如果在程序中定义了一个变量或者数组&#xff0c; 那么&#xff0c;这个变量或数组的地址&#xff08;指针…...

Java学习笔记40——Lambda表达式

Lambda表达式 Lambda表达式函数式编程思想概述Lambda表达式的标准格式Lambda表达式练习练习1练习2练习3 Lambda表达式的省略模式Lambda表达式的注意事项Lambda表达式与接口的区别 Lambda表达式 函数式编程思想概述 面向对象思想强调“必须通过对象的形式做事” 在函数式思想中…...

【考研数学】线性代数第五章 —— 特征值和特征向量(3,矩阵对角化理论)

文章目录 引言三、矩阵对角化理论3.1 一般矩阵的相似对角化3.2 实对称矩阵的相似对角化3.2.1 实对称矩阵相似对角化定理3.2.2 实对称矩阵相似对角化过程 写在最后 引言 承接前文&#xff0c;我们来看看矩阵的对角化理论。 我们前面提到对角化是在矩阵相似那里&#xff0c;若存…...

【计算机网络】IP数据报首部格式、最大传输单元MTU、最大分段大小MSS

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 更多计算机网络知识专栏&#xff1a;计算机网络&#x1f525; 给大家跳段…...

shell脚本之文件读写

shell脚本之文件读写 1、读取文件内容并打印2、将内容写入文件3、追加内容到文件末尾4、读取文件内容到变量中5、逐行读取文件内容并处理6、逐行追加内容到文件末尾7、获取文件行数8、获取文件最后一个单词 Shell 脚本读写文件的方法有很多种&#xff0c;下面是一些常见的方法&…...

SAP 刷新Fiori Apps缓存的方法(解决修改CDS后Fiori无法重载新配置)

1. 问题 修改CDS Annotation后&#xff0c;基于Fiori Element发布的Fiori App无法应用新的界面 2. 解决办法 2319491 - How to clean up the cache after applying changes that affect SAP Fiori apps刷新Frontend&#xff1a; SE38&#xff1a; /UI5/APP_INDEX_CALCULATE…...

如何在 Excel 中计算日期之间的天数

计算两个日期之间的天数是 Excel中的常见操作。无论您是规划项目时间表、跟踪时间还是分析一段时间内的趋势&#xff0c;了解如何在 Excel 中查找日期之间的天数都可以提供强大的日期计算功能。 幸运的是&#xff0c;Excel 提供了多种简单的方法来获取两个日期之间的天数。继续…...

Java高级-注解

注解 1.介绍2.元注解3.注解的解析4.注解的应用场景 1.介绍 注解 Annotation 就是Java代码里的特殊标记&#xff0c;作用是让其他程序根据注解信息来决定什么是执行该程序注解&#xff1a;注解可以在类上、构造器上、方法上、成员变量上、参数上等位置 自定义注解 /*** 自定…...

wabp.m 代码注释(便于算法快速理解)

算法效果: 波峰和起点检测效果: function [r,pk] = wabp(Araw, Offset,Scale, Fs) % r = wabp(Araw,Offset,Scale, Fs); % Input: Araw (125Hz sampled) waveform in wfdb-MIT format, % Offset, Scale % Araw = 血压波形 % Offset=偏移(信号减去或者加上偏移恢复成…...

数据库数据恢复-SQL SERVER数据库文件损坏的故障表现数据恢复方案

SQL SERVER数据库故障类型&#xff1a; SQL SERVER数据库MDF&#xff08;NDF&#xff09;或LDF损坏。 SQL SERVER数据库故障原因&#xff1a; 1、数据库正在操作过程中&#xff0c;机器突然断电。 2、人为误操作。 SQL SERVER数据库MDF&#xff08;NDF&#xff09;或LDF损坏的…...

3步实战指南:轻松搭建抖音直播间弹幕数据抓取系统

3步实战指南&#xff1a;轻松搭建抖音直播间弹幕数据抓取系统 【免费下载链接】DouyinLiveWebFetcher 抖音直播间网页版的弹幕数据抓取&#xff08;2024最新版本&#xff09; 项目地址: https://gitcode.com/gh_mirrors/do/DouyinLiveWebFetcher 想象一下&#xff0c;你…...

炸穿 2026 技术圈!AI Agent 从 0 到 1 商业落地全攻略,附 Python 可跑源码 + 双场景变现

引言:“AI Agent&#xff1a;程序员效率革命的最后一公里”前言&#xff1a;还在死磕 CRUD、熬夜改 BUG、被重复研发工作榨干精力&#xff1f;2026 年的技术风口早已彻底转向 ——AI Agent&#xff0c;从华为虚拟工程师、蘑菇物联工业智能体&#xff0c;到全行业自动化落地&…...

别再纠结了!用SpringBoot实战告诉你,图片上传选FastDFS还是MinIO(附完整代码)

SpringBoot实战&#xff1a;FastDFS与MinIO文件存储方案深度对比与选型指南 在当今数据驱动的互联网应用中&#xff0c;文件存储系统如同数字世界的基础设施&#xff0c;支撑着从用户头像到高清视频的各种数据存取需求。作为Java开发者&#xff0c;当我们面对"选择困难症&…...

二相四线步进电机驱动全解析:从原理到Proteus仿真避坑指南

二相四线步进电机驱动全解析&#xff1a;从原理到Proteus仿真避坑指南 在工业自动化与嵌入式开发领域&#xff0c;步进电机因其精准的位置控制能力成为不可或缺的执行元件。而二相四线制步进电机凭借结构简单、成本低廉的优势&#xff0c;尤其受到电子工程师和创客群体的青睐。…...

跨引擎资源无缝迁移:Unity到Godot的资产转换革新方案

跨引擎资源无缝迁移&#xff1a;Unity到Godot的资产转换革新方案 【免费下载链接】unitypackage_godot Import assets from UnityPackage files into Godot 项目地址: https://gitcode.com/gh_mirrors/un/unitypackage_godot 在游戏开发领域&#xff0c;引擎间的资源迁移…...

NaViL-9B多模态提示词工程:提升图文理解准确率的10个实用技巧

NaViL-9B多模态提示词工程&#xff1a;提升图文理解准确率的10个实用技巧 1. 认识NaViL-9B多模态模型 NaViL-9B是一款原生支持多模态交互的大语言模型&#xff0c;能够同时处理文本和图像输入。与传统的纯文本模型不同&#xff0c;它可以直接"看懂"图片内容&#x…...

OpenClaw技能扩展:用QwQ-32B实现公众号自动发布

OpenClaw技能扩展&#xff1a;用QwQ-32B实现公众号自动发布 1. 为什么需要公众号自动化发布 作为一个技术博主&#xff0c;我每周都要在公众号发布2-3篇技术文章。最让我头疼的不是写作本身&#xff0c;而是发布前的繁琐流程&#xff1a;手动调整Markdown格式、生成封面图、上…...

别再手动同步了!利用STM32定时器主从模式与ITR触发,实现硬件级精准定时联动

嵌入式系统中的定时器协同&#xff1a;STM32主从模式与ITR触发的硬件级联动 在工业控制、电机驱动和精密测量等场景中&#xff0c;多个定时器的精确协同往往是系统可靠性的关键。想象一下&#xff0c;当你的电机控制PWM需要与电流采样ADC严格同步&#xff0c;或者多个通信接口必…...

提示工程架构师实战手册:2025年基于最新趋势的AI项目设计指南

提示工程架构师实战手册&#xff1a;2025年基于最新趋势的AI项目设计指南 1. 引入与连接&#xff1a;从“写Prompt”到“设计提示系统”的认知跃迁 1.1 一个真实的AI项目痛点 2024年底&#xff0c;某头部电商公司的智能客服项目陷入瓶颈&#xff1a; 用户发“这件衣服洗了会缩水…...

3个实用技巧:让Mermaid图表创作效率翻倍的秘密武器

3个实用技巧&#xff1a;让Mermaid图表创作效率翻倍的秘密武器 【免费下载链接】mermaid mermaid-js/mermaid: 是一个用于生成图表和流程图的 Markdown 渲染器&#xff0c;支持多种图表类型和丰富的样式。适合对 Markdown、图表和流程图以及想要使用 Markdown 绘制图表和流程图…...