assetmanager如何将ass文件放入视频中? 安卓的

assetmanager  时间:2021-06-17  阅读:()

用AssetManager能不能通过代码在assets建文件啊?如不能,怎...

看不太明白,但感觉完全不是我想表达的意思。



我的需求是:apk在安装时就会在安装目录建立好一个默认的配置文件myoption.properties,里面存着众多配置,因为是properties文件,可用java提供的Properties类直接读写,而不用像普通txt那样需要自己写代码读写。

而后,程序打开时,都要先检测这个配置文件是否存在,如果发现被用户误删除,则再次生成默认参数的配置。



但现在,貌似这个需求不可能被满足如果eclipse,直接assets上放上默认的配置文件,那么安装后能自动释放此文件。

但问题是,assets目录只读,如果强制被用户删除了配置,那么程序会因为没法写入新的配置文件而彻底成了废物。

但是,如果往data/data/自己程序 写配置文件。

那么没法做到像assets,安装时自己释放原始配置文件。

并且,我在写程序时,也无法看到并编辑这个配置文件(如果放在assets,我在eclipse就能看到assets文件夹,并随意往里面拖放文件,修改文件)但我就不明白,难道前人就都没有遇到这个问题吗??目前市面所有App,完全都做到了,安装时自己释放原始配置文件,而后能修改、重建。



他们怎么做的?

为什么assetmanager取不到apk的资源

我们知道,在一个APK文件中,除了有代码文件之外,还有很多资源文件。

这些资源文件是通过Android资源打包工具aapt(Android Asset Package Tool)打包到APK文件里面的。

在打包之前,大部分文本格式的XML资源文件还会被编译成二进制格式的XML资源文件。

在本文中,我们就详细分析XML资源文件的编译和打包过程,为后面深入了解Android系统的资源管理框架打下坚实的基础。

在前面Android资源管理框架(Asset Manager)简要介绍和学习计划一文中提到,只有那些类型为res/animator、res/anim、res/color、res/drawable(非Bitmap文件,即非.png、.9.png、.jpg、.gif文件)、res/layout、res/menu、res/values和res/xml的资源文件均会从文本格式的XML文件编译成二进制格式的XML文件,如图1所示: 图1 Android应用程序资源的编译和打包过程 这些XML资源文件之所要从文本格式编译成二进制格式,是因为: 1. 二进制格式的XML文件占用空间更小。

这是由于所有XML元素的标签、属性名称、属性值和内容所涉及到的字符串都会被统一收集到一个字符串资源池中去,并且会去重。

有了这个字符串资源池,原来使用字符串的地方就会被替换成一个索引到字符串资源池的整数值,从而可以减少文件的大小。

2. 二进制格式的XML文件解析速度更快。

这是由于二进制格式的XML元素里面不再包含有字符串值,因此就避免了进行字符串解析,从而提高速度。

将XML资源文件从文本格式编译成二进制格式解决了空间占用以及解析效率的问题,但是对于Android资源管理框架来说,这只是完成了其中的一部分工作。

Android资源管理框架的另外一个重要任务就是要根据资源ID来快速找到对应的资源。

在前面Android资源管理框架(Asset Manager)简要介绍和学习计划一文中提到,为了使得一个应用程序能够在运行时同时支持不同的大小和密度的屏幕,以及支持国际化,即支持不同的国家地区和语言,Android应用程序资源的组织方式有18个维度,每一个维度都代表一个配置信息,从而可以使得应用程序能够根据设备的当前配置信息来找到最匹配的资源来展现在UI上,从而提高用户体验。

由于Android应用程序资源的组织方式可以达到18个维度,因此就要求Android资源管理框架能够快速定位最匹配设备当前配置信息的资源来展现在UI上,否则的话,就会影响用户体验。

为了支持Android资源管理框架快速定位最匹配资源,Android资源打包工具aapt在编译和打包资源的过程中,会执行以下两个额外的操作: 1. 赋予每一个非assets资源一个ID值,这些ID值以常量的形式定义在一个R.java文件中。

2. 生成一个resources.arsc文件,用来描述那些具有ID值的资源的配置信息,它的内容就相当于是一个资源索引表。

有了资源ID以及资源索引表之后,Android资源管理框架就可以迅速将根据设备当前配置信息来定位最匹配的资源了。

接下来我们在分析Android应用程序资源的编译和打包过程中,就主要关注XML资源的编译过程、资源ID文件R.java的生成过程以及资源索引表文件resources.arsc的生成过程。

Android资源打包工具在编译应用程序资源之前,会创建一个资源表。

这个资源表使用一个ResourceTable对象来描述,当应用程序资源编译完成之后,它就会包含所有资源的信息。

有了这个资源表之后, Android资源打包工具就可以根据它的内容来生成资源索引表文件resources.arsc了。

接下来,我们就通过ResourceTable类的实现来先大概了解资源表里面都有些什么东西,如图2所示: 图2 ResourceTable的实现 ResourceTable类用来总体描述一个资源表,它的重要成员变量的含义如下所示: --mAssetsPackage:表示当前正在编译的资源的包名称。

--mPackages:表示当前正在编译的资源包,每一个包都用一个Package对象来描述。

例如,一般我们在编译应用程序资源时,都会引用系统预先编译好的资源包,这样当前正在编译的资源包除了目标应用程序资源包之外,就还有预先编译好的系统资源包。

--mOrderedPackages:和mPackages一样,也是表示当前正在编译的资源包,不过它们是以Package ID从小到大的顺序保存在一个Vector里面的,而mPackages是一个以Package Name为Key的DefaultKeyedVector。

--mAssets:表示当前编译的资源目录,它指向的是一个AaptAssets对象。

Package类用来描述一个包,这个包可以是一个被引用的包,即一个预先编译好的包,也可以是一个正在编译的包,它的重要成员变量的含义如下所示: --mName:表示包的名称。

--mTypes:表示包含的资源的类型,每一个类型都用一个Type对象来描述。

资源的类型就是指animimator、anim、color、drawable、layout、menu和values等。

--mOrderedTypes:和mTypes一样,也是表示包含的资源的类型,不过它们是Type ID从小到大的顺序保存在一个Vector里面的,而mTypes是一个以Type Name为Key的DefaultKeyedVector。

Type类用来描述一个资源类型,它的重要成员变量的含义如下所示: --mName:表示资源类型名称。

--mConfigs:表示包含的资源配置项列表,每一个配置项列表都包含了一系列同名的资源,使用一个ConfigList来描述。

例如,假设有main.xml和sub.xml两个layout类型的资源,那么main.xml和sub.xml都分别对应有一个ConfigList。

--mOrderedConfigs:和mConfigs一样,也是表示包含的资源配置项,不过它们是以Entry ID从小到大的顺序保存在一个Vector里面的,而mConfigs是以Entry Name来Key的DefaultKeyedVector。

--mUniqueConfigs:表示包含的不同资源配置信息的个数。

我们可以将mConfigs和mOrderedConfigs看作是按照名称的不同来划分资源项,而将mUniqueConfigs看作是按照配置信息的不同来划分资源项。

ConfigList用来描述一个资源配置项列表,它的重要成员变量的含义如下所示: --mName:表示资源项名称,也称为Entry Name。

--mEntries:表示包含的资源项,每一个资源项都用一个Entry对象来描述,并且以一个对应的ConfigDescription为Key保存在一个DefaultKeyedVector中。

例如,假设有一个名称为icon.png的drawable资源,有三种不同的配置,分别是ldpi、mdpi和hdpi,那么以icon.png为名称的资源就对应有三个项。

Entry类用来描述一个资源项,它的重要成员变量的含义如下所示: --mName:表示资源名称。

--mItem:表示资源数据,用一个Item对象来描述。

Item类用来描述一个资源项数据,它的重要成员变量的含义如下所示: --value:表示资源项的原始值,它是一个字符串。

--parsedValue:表示资源项原始值经过解析后得到的结构化的资源值,使用一个Res_Value对象来描述。

例如,一个整数类型的资源项的原始值为“12345”,经过解析后,就得到一个大小为12345的整数类型的资源项。

ConfigDescription类是从ResTable_config类继承下来的,用来描述一个资源配置信息。

ResTable_config类的成员变量imsi、locale、screenType、input、screenSize、version和screenConfig对应的实际上就是在前面Android资源管理框架(Asset Manager)简要介绍和学习计划一文提到的18个资源维度。

前面提到,当前正在编译的资源目录是使用一个AaptAssets对象来描述的,它的实现如图3所示:

安卓中assets目录有什么作用

在数据传递过程中起到数据存储的作用!!!!!使用的比较多的数据结构有:list(列表),map<key , value>,array(数组),对这些数据结构的基本操作要熟练,例如存取,遍历。

、如果对你有帮助 希望采纳!!!!!!!!!

Monitor Asset Manager好不好

Monitor Asset Manager是一个运行在Windows 32位系统下的即插即用监视器信息实用程序。

它具有多显示器监视功能,而不是简单的直接查询存储在注册表中的相关。

除了提供监视器颜色和时间特性,这个小巧的实用工具(213kb)是它的类型唯一的程序下完成的Windows NT 4.0的详细资料,提供企业与一个简单的跟踪监测序号工具管理人员清单。

  通过Monitor Asset Manager 生成的报告它所重视也提供详细的目标显示设备和有关技术信息系统的基本信息,.这个轻量级的工具企业授权版本可以设置为在后台运行,在那里可以静静地保存各种格式的报告 - 包括SMS兼容的MIF文件格式定期 到指定地点一个IS经理希望执行的SMS兼容的资产管理和库存的做法会发现,监控资产管理是一个完美的工具来赞美现有的管理能力。

  此外,最终用户感到困惑Windows对待他们的显示器和高清晰度显示设备可以洞察到正是拆开的播放方式:所有的显示系统提供的信息是可读的格式,包括DPMS和显示器的支持,色度值,建议的决议和精确时序要求,以及设备的最低要求和最高限额。

最新版本还提取物和解码EIA/CEA-861为高清电视等消费电子设备的扩展数据。

如何将ass文件放入视频中? 安卓的

assets文件夹里面的文件都是保持原始的文件格式,需要用AssetManager以字节流的形式读取文件。

assets的读取方式: 1. 先在Activity里面调用getAssets() 来获取AssetManager引用。

2. 再用AssetManager的open(String fileName, int essMode) 方法则指定读取的文件以及访问模式就能得到输入流InputStream。

3. 然后就是用已经open file 的inputStream读取文件,读取完成后记得inputStream.close() 。

4.调用AssetManager.close() 关闭AssetManager。

需要注意的是,来自Resources和Assets 中的文件只可以读取而不能进行写的操作

Dataideas:$1.5/月KVM-1GB/10G SSD/无限流量/休斯顿(德州)_主机域名

Dataideas是一家2019年成立的国外VPS主机商,提供基于KVM架构的VPS主机,数据中心在美国得克萨斯州休斯敦,主机分为三个系列:AMD Ryzen系列、Intel Xeon系列、大硬盘系列,同时每个系列又分为共享CPU和独立CPU系列,最低每月1.5美元起。不过需要注意,这家没有主页,你直接访问根域名是空白页的,还好他们的所有套餐支持月付,相对风险较低。下面以Intel Xeon系列共...

易探云韩国云服务器仅50元/月,510元/年起

韩国云服务器哪个好?韩国云服务器好用吗?韩国是距离我国很近的一个国家,很多站长用户在考虑国外云服务器时,也会将韩国云服务器列入其中。绝大部分用户都是接触的免备案香港和美国居多,在加上服务器确实不错,所以形成了习惯性依赖。但也有不少用户开始寻找其它的海外免备案云服务器,比如韩国云服务器。下面云服务器网(yuntue.com)就推荐最好用的韩国cn2云服务器,韩国CN2云服务器租用推荐。为什么推荐租用...

DediPath($1.40),OpenVZ架构 1GB内存

DediPath 商家成立时间也不过三五年,商家提供的云服务器产品有包括KVM和OPENVZ架构的VPS主机。翻看前面的文章有几次提到这个商家其中机房还是比较多的。其实对于OPENVZ架构的VPS主机以前我们是遇到比较多,只不过这几年很多商家都陆续的全部用KVM和XEN架构替代。这次DediPath商家有基于OPENVZ架构提供低价的VPS主机。这次四折的促销活动不包括512MB内存方案。第一、D...

assetmanager为你推荐
财务系统软件免费财务软件有哪些?mergefield邮件合并日期,想让电子表格中的日期格式与WORD中的日期格式一致旺旺群发软件旺旺群发器哪种好使用youtube创始人鬼步舞创作者是谁网络视频下载器那些视频下载器比较全而且好用?avc是什么格式手机avc格式怎么剪辑无处不在的意思人山无处不花枝的意思是什么sdfsdfsdfsdf世界上最大的一块金砖有多重?shoujiao手机电池突然充不上电,是怎么回事?该怎么办?shoujiao求【叫兽】的简介
什么是虚拟主机 sharktech 星星海 payoneer 52测评网 php空间申请 建立邮箱 ftp教程 jsp空间 169邮箱 南通服务器 网页提速 阿里云免费邮箱 游戏服务器出租 中国联通宽带测试 免费稳定空间 godaddy空间 中国电信宽带测速 hdroad 上海联通 更多