Android开发-04-资源的生成

Ubuntu 22.04下3种安卓模拟器实战对比:Android Studio vs Anbox vs Waydroid 本文深度评测了在Ubuntu 22.04系统上运行安卓应用的三种主流方案:Android Studio官方模拟器、Anbox和Waydroid。通过对比安装部署、性能表现、资源消耗与桌面集成度,为不同用户提供清晰选择指南:专业开发首选Android Studio,日常应用和游戏推荐Waydroid,而Anbox因兼容性问题已不适用。 阅读详情

Android平台主要通过aapt工具来处理资源文件。


详细使用介绍可以参考:

http://elinux.org/Android_aapt


下面来研究aapt源代码。

参考:

http://www.cnblogs.com/dyllove98/archive/2013/06/19/3144950.html


目录结构:(frameworks/base/tools/aapt下输入tree)

├── AaptAssets.cpp  ※ 重要
├── AaptAssets.h
├── Android.mk
├── Bundle.h
├── CacheUpdater.h
├── Command.cpp       实现各种命令。
├── CrunchCache.cpp  实现CrunchCache类
├── CrunchCache.h
├── DirectoryWalker.h
├── FileFinder.cpp   实现SystemFileFinder,没什么好说的,对linux文件操作API不熟悉的建议回炉大名鼎鼎的APUE。
├── FileFinder.h
├── Images.cpp      封装libpng,实现png解码,也没啥好说的,不熟悉的话直接看libpng文档。
├── Images.h
├── Main.cpp            入口,检查参数,并解析执行相关命令。
├── Main.h
├── NOTICE
├── Package.cpp   ※ 重要 实现各种资源打包函数。
├── printapk.cpp    不清楚干什么,查看Makefile,好像也没使用。
├── pseudolocalize.cpp 
├── pseudolocalize.h
├── qsort_r_compat.c    封装qsort
├── qsort_r_compat.h
├── Resource.cpp          对资源进行解析
├── ResourceFilter.cpp  
├── ResourceFilter.h
├── ResourceIdCache.cpp      ResourceIdCache
├── ResourceIdCache.h
├── ResourceTable.cpp          ※ 重要 ResourceTable
├── ResourceTable.h
├── SourcePos.cpp       类SourcePos
├── SourcePos.h
├── StringPool.cpp          类StringPool
├── StringPool.h
├── tests     测试目录
├── WorkQueue.cpp    封装线程
├── WorkQueue.h
├── XMLNode.cpp     封装XML解析
├── XMLNode.h  
├── ZipEntry.cpp      
├── ZipEntry.h
├── ZipFile.cpp    封装zlib
└── ZipFile.h


待续...

最新《微专业Android安卓开发工程师课程》 1.Android应用界面开发 资源下载 001 Android开发简介.flv 002 开始第一个应用.flv 003 Activity你必须知道的那些事(上).flv 004 Activity你必须知道的那些事(下).flv 005 多姿多彩的控件.flv 006 常用控件讲解.flv 69.mp3 007 Android开发布局详解.fl... 阅读详情

相关推荐

安卓学习笔记04:安卓平台架构

安卓体系架构、安卓设备监视器、安卓调试桥ADB

howard2005的专栏 3328

Android多屏幕适配资源生成

内置了常用的分辨率,默认基准为480*320,当然对于特殊需求,通过命令行指定即可: 基准 1280 * 800 ,额外支持尺寸:1152 * 735;4500 * 3200; 生成命令: java -jar xx.jar width height width,height_width,height E:\TechFile_Andy\多分辨率生成工具>java -jar autolayout

to_cm的专栏 1897

安卓开发入门:HelloWorld项目实践

本文还有配套的精品资源,点击获取 简介:HelloWorld是安卓应用开发的入门项目,代表编程起点。它包括一个显示“Hello, World!”文字的简单界面,帮助初学者理解环境配置和基础代码编写。该项目通常涉及多个文件,包括主活动的Java源代码文件、布局文件及AndroidManifest.xml配置文件。通过学习这个项目,开发者可以掌握安卓开发的基础知识,如环境搭建、...

weixin_36369848的博客 1649

交叉编译arm Linux环境下的android-tools-adb资源包介绍

交叉编译arm Linux环境下的android-tools-adb资源包介绍 【下载地址】交叉编译armLinux环境下的android-tools-adb资源包介绍 本资源包为开发者提供了一套完整的解决方案,用于在arm架构的Linux系统上交叉编译android-tools-adb工具。该工具是Android开发中...

gitblog_06783的博客 703

Ubuntu24.04 安卓模拟器安装指南

Waydroid是一款基于容器的开源工具,允许在Linux系统上运行完整Android环境。它利用Linux内核的命名空间和cgroups功能,相比传统虚拟机更加轻量高效,支持硬件加速和大多数Android应用。安装需Linux内核≥5.4,通过官方源下载镜像后初始化系统。启动时若遇Wayland兼容问题,可安装Weston合成器解决。默认网络配置需调整防火墙规则以启用联网。Waydroid适合开发测试、移动办公和游戏等场景,虽仍处活跃开发阶段,但为Linux用户提供了便捷的Android应用运行方案。

举世誉之而不加劝,举世非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。 6656

精通Java安卓开发:Android Studio飞机大战实战项目

Java是一种广泛使用的面向对象的编程语言,以其”一次编写,到处运行”的特性而闻名。它被设计为拥有尽可能少的实现依赖性,从而让程序能够在各种处理器上编译运行。Java的发展历程中衍生出了丰富的生态和工具集,为开发各种应用程序提供了强大支持。在深入Android开发前,理解SDK和NDK的区别尤为重要。SDK是Software Development Kit的缩写,指的是软件开发工具包,它包含了一系列开发特定软件所需的工具、文档、代码库等。

weixin_42476987的博客 813

Android Studio目录结构介绍, 安卓开发入门

安卓学习:Android Studio目录结构 刚刚开始学Android开发, 来分享一下Android Studio 项目的目录结构 这是刚刚创建完项目的样子 任何一个新建的项目都会默认使用Android模式的项目结构, 但这并不是项目最真实的目录结构, 而是被Android Studio转换过来的, 这种项目结构简洁明了,适合进行快速开发,但是对于新手来说可能并不易于理解。 点击图片中Android区域可以切换项目结构模式. 这里我们项目结构切换为Project, 这就是最真实的目录结构 这里开始

天行健 君子以自强不息,地势坤 君子以厚德载物。 5573

Android 9.04源码开发深度实战指南

本文还有配套的精品资源,点击获取 简介:本课程全面覆盖Android 9.04源码开发的各个方面,从系统架构到安全机制,帮助开发者掌握定制和优化Android系统的核心技能。通过深入分析源码,学习者将了解到如何使用Android Studio、Gradle、JNI等工具进行高效开发,以及如何通过调整系统服务和进行性能优化来提升应用体验。学习内容包括但不限于Linux内核、H...

weixin_34163588的博客 999

Ubuntu22.04中基于Qt开发Android App

使用Qt开发手机应用程序是一种高效且灵活的选择。Qt作为一个跨平台的开发框架,为开发者提供了统一的开发体验和丰富的功能库。首先,Qt的跨平台性让开发者可以使用相同的代码库在不同的操作系统上进行开发,包括Windows、macOS和各种移动设备平台,这极大地简化了多平台开发的复杂性。其次,Qt提供了强大的图形用户界面(GUI)工具,使得设计和构建各种吸引人的用户界面变得轻而易举。此外,Qt的功能库涵盖了从网络通信到数据库操作再到图形渲染等各个方面,为开发者提供了全面的支持。

无垠宇宙 3327

安卓平台小程序开发实战指南

安卓小程序,也称作Android应用程序,是一类运行在安卓操作系统上的软件程序。它们通过利用Android SDK提供的APIs,能够实现多功能、高性能的移动应用。与传统网页应用相比,它们通常能提供更丰富、更流畅的用户体验。在Android Studio中创建新项目是一个相对直观的过程。以下是创建新项目并介绍项目结构的步骤。创建新项目:1. 打开Android Studio。2. 在启动界面,点击“Start a new Android Studio project”按钮。

weixin_42601608的博客 1120

Android屏幕尺寸适配资源生成

用于Android屏幕适配尺寸资源文件的生成

最新安卓版本对照表,API对照表(持续更新,更新到安卓17)

话不多说,直接上表,持续更新(更新到安卓16)。 列出了所有记录的可能会影响应用开发者的功能和行为变更。请使用此列表查找影响您的变更,然后点击相应的链接以阅读文档。下表列出了所有记录的可能会影响应用开发者的功能和行为变更。请使用此列表查找影响您的变更,然后点击相应的链接以阅读文档。Java 和 OpenJDK 是 Oracle 及/或其关联公司的商标或注册商标。

雨季余静的博客 9万+

实战详细讲解Qt插件plugin的编写与用法

qt插件的开发,可以说是动态库的开发,因为调用方式类似,多熟悉一下,利用Qt框架开发很简单的。在想想这种调用过程有的熟悉,比如公司买了一堆摄像头,公司要对摄像头进行二次开发,实现自己想要的功能,集成到一套设备里去,然后在卖给用户。此时厂商肯定会提供开发文档,并给你SDK包(软件开发工具包), 包里你会发现只有头文件和一堆库文件,没有源文件,因为实现的过程是产商公司保密的,给你看还得了。所以都封装成了库的形式给你调用,如静态库或者动态库。

qq_44667165的博客 1万+

自学android编程教程,安卓编程入门教程 安卓编程如何自学

安卓编程入门教程 安卓编程如何自学时间:2017-04-10来源:Android开发学习网安卓编程越来越火,发展前景无比诱人,越来越多的人加入了android开发者的行列。安卓编程入门很简单,今天小编给大家提供一份安卓编程入门教程,告诉大家安卓编程如何自学,希望能够给您带去帮助。安卓编程入门教程 安卓编程如何自学一、安卓编程开发基础知识1、Android应用程序是用java语言写的,通过...

weixin_36377785的博客 5688

AI报告撰写实战指南:从提示词工程到全流程优化的底层逻辑与实践突破

传统AI写作常被诟病为“信息拼贴”——模型虽能生成文本,却常出现逻辑断裂、数据矛盾、风格不符等问题。而“全流程优化”则是通过系统化设计,将报告生成拆解为需求解析→数据对齐→提示词设计→初稿生成→迭代优化→格式适配六大环节,每个环节均通过技术手段提升输出质量。提示词工程:本质是通过结构化指令(如角色设定、任务分解、格式约束、示例引导)精准控制模型输出方向,是连接用户需求与模型能力的“翻译器”。全流程优化。

2501_92808811的博客 884

RK3588上跑通Zipformer语音识别的3个坑与填坑实录(附完整编译命令)

本文详细记录了在RK3588开发板上部署Zipformer语音识别模型时遇到的三个典型问题及其解决方案,包括静态库版本冲突、编译脚本配置错误以及模型转换精度调优。文章提供了完整的编译命令和实战步骤,帮助开发者快速在边缘设备上实现高效的语音识别应用。

l6m7n8的博客 713

Android系统开发(一):AOSP 架构全解析:开源拥抱安卓未来

修改启动动画文件:替换目录下的启动图像资源。重建系统测试效果:将生成的 boot.img 刷入目标设备。Android AOSP 是系统开发者不可或缺的开源利器,它让开发者能够掌控从内核到应用的每一行代码。尽管上手可能有一定难度,但通过学习,你将解锁整个安卓技术栈的潜力,为未来的开发铺平道路。

刘 争 6410

重磅!Repo Wiki!

RepoWiki是Qoder平台的智能文档生成功能,通过静态代码分析自动提取项目架构、模块依赖和核心逻辑,并持续追踪代码变更保持文档同步。其工作流程分为四个阶段:1)代码扫描与AST解析;2)结构分析与依赖映射;3)文档智能生成;4)增量更新机制。支持多种编程语言,能识别设计模式并推断技术决策,适用于新项目搭建和遗留系统维护。优势在于降低理解成本和提高开发效率,但存在文件数量限制和依赖Git的局限性。典型应用场景包括自动生成架构图、API手册和团队知识沉淀。

ayusong870的博客 4020

Android开发中的R文件

一、R文件 当 Android 应用程序被编译,会自动生成一个 R 类,其中包含了所有 res/ 目录下资源的 ID,如布局文件,资源文件,图片(values下所有文件)的ID等。在写java代码需要用这些资源的时候,你可以使用 R 类,通过子类+资源名或者直接使用资源 ID 来访问资源。 PS:添加资源的命名规则:资源文件只能以小写字母和下划线做首字母,随后的名字中只能出现 [a-z0-9_...

JUN_LLLL的博客 1万+

基于深度学习的AI生成式人脸图像鉴别

AIGC(AI内容生成)技术的快速发展确实为创作者提供了高效生产力工具,但同时也引发了一些问题和挑战。这些技术可以生成以假乱真的图像、视频换脸等,给不法分子提供了滥用的机会。其中,一些不法分子可能利用AIGC技术制造虚假新闻、违反版权、绕过活体身份验证、散布谣言和诽谤他人、进行敲诈勒索等非法活动,以谋取不当利益。这些行为给社会造成了严重的负面影响,破坏了信息的真实性和可信度。因此,我们需要认识到AIGC技术的潜在风险,并采取相应的措施来应对。

mingo_敏 4494

FM收音机调试-RDA5807M

收音机调试 IC型号:RDA5807M

mangofu的博客 6163

基于i.MX8开发板进行安卓Android9.0编译、烧录和使用

安卓 Android 凭借其丰富的生态环境,以及快捷的应用开发和分发,获得了广泛的市场关注。米尔最新基于 NXP iMX8 处理器的MYD-JX8MX核心板及开发板也提供了Android 9.0支持。下面我们将介绍如从源码开始编译安卓Android 9.0。 i.MX8开发板介绍http://www.myir-tech.com/product/myc-jx8mx.htm 部署开发环境 开发...

u011837423的专栏 3357

Pointnet++改进91:2025最新改进模块-RepMBConv模块

本文提出了一种改进PointNet++网络的方法,通过在特征提取模块中引入RepMBConv结构来提升模型性能。主要内容包括:1)理论部分介绍了RepMBConv的设计原理,包含自监督学习框架、动态上下文建模等创新点;2)详细给出了三步修改步骤:创建包含RepMBConv的Python模块、在pointnet2_utils.py中添加注意力机制、修改pointnet2_sem_seg.py主网络结构;3)代码实现展示了如何将RepMBConv集成到PointNetSetAbstraction模块中,形成Po

AIcurator的博客 274

9成Android开发者必须收藏的80个开源库,安卓开发面试宝典

你需要知道的 Android 拍照适配方案 https://www.jianshu.com/p/f269bcda335f 你所不知道的Android Studio调试技巧 https://www.jianshu.com/p/011eb88f4e0d 一份系统、全面的安卓进阶学习指南 https://github.com/iwannabetop/Awesome-Android-Learning-Guide 性能优化 Trinea - 性能优化系列总篇 http://www.trinea.cn/a

m0_64314318的博客 2269

C#利用最小二乘法拟合任意次函数曲线

给出一组离散点,确定一个函数逼近原函数,插值是这样的一种手段。在实际中,数据不可避免的会有误差,插值函数会将这些误差也包括在内。因此,我们需要一种新的逼近原函数的手段: ①不要求过所有的点(可以消除误差影响);②尽可能表现数据的趋势,靠近这些点。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小 [1],其他一些优化问题也可通过最小化能量或最大化熵用最小二乘法来表达,具体可以查阅相关资料。最小二乘法(又称最小平方法)是一种数学技术。

qq_30725967的博客 3755

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Android Studio 学习笔记-安卓平台架构04

Android Studio 安卓平台构架

HTML778的博客 1327

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

上一篇: Android开发-03-资源的制作
下一篇: Python -01 入门
levinjoe
博客等级 码龄25年 66粉丝 122原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值