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 中的文件只可以读取而不能进行写的操作

MineServer:香港CMI/洛杉矶GIA VPS,2核/2GB内存/20GB NVME/3.5TB流量/200Mbps/KVM,288元/年

mineserver怎么样?mineserver是一家国人商家,主要提供香港CN2 KVM VPS、香港CMI KVM VPS、日本CN2 KVM VPS、洛杉矶cn2 gia端口转发等服务,云服务器网(yuntue.com)介绍过几次,最近比较活跃。现在新推出了3款特价KVM VPS,性价比高,香港CMI/洛杉矶GIA VPS,2核/2GB内存/20GB NVME/3.5TB流量/200Mbps...

bgpto:BGP促销,日本日本服务器6.5折$93/月低至6.5折、$93/月

bgpto怎么样?bgp.to日本机房、新加坡机房的独立服务器在搞特价促销,日本独立服务器低至6.5折优惠,新加坡独立服务器低至7.5折优惠,所有优惠都是循环的,终身不涨价。服务器不限制流量,支持升级带宽,免费支持Linux和Windows server中文版(还包括Windows 10). 特色:自动部署,无需人工干预,用户可以在后台自己重装系统、重启、关机等操作!bgpto主打日本(东京、大阪...

虎跃云-物理机16H/32G/50M山东枣庄高防BGP服务器低至550元每月!

虎跃科技怎么样?虎跃科技(虎跃云)是一家成立于2017年的国内专业服务商,专业主营云服务器和独立服务器(物理机)高防机房有着高端华为T级清洗能力,目前产品地区有:山东,江苏,浙江等多地区云服务器和独立服务器,今天虎跃云给大家带来了优惠活动,为了更好的促销,枣庄高防BGP服务器最高配置16核32G仅需550元/月,有需要的小伙伴可以来看看哦!产品可以支持24H无条件退款(活动产品退款请以活动规则为准...

assetmanager为你推荐
旺旺群发淘宝怎样旺旺群群发dnf装备代码DNF代码,装备,不是EX短信营销方案有谁实验过短息营销,这个方法好吗?大家可以试试啊!网络视频下载器谁能给我找个网络视频下载器和转换器?无处不在的意思人山无处不花枝的意思是什么刷ip流量免费刷流量软件有哪些?哪个免费刷流量工具最好?comexception5种常见的Exception!云输入法QQ云输入法的候选窗口是什么样的?腾讯合作伙伴大会如何成为腾讯渠道合作伙伴?za是哪个国家的IE是哪个国家的缩写
域名估价 合租服务器 新网域名管理 主机测评 virpus godaddy优惠券 php探针 最好看的qq空间 坐公交投2700元 七夕促销 卡巴斯基免费试用版 上海电信测速网站 河南移动梦网 什么是web服务器 网页加速 google搜索打不开 学生机 windowsserver2012r2 西部数码主机 以下 更多