manifest相关知识
-
H5应用程序缓存 - Cache manifest一、作用离线浏览 - 根据文件规则把资源缓存在本地,脱机依然能够访问资源,联网会直接使用缓存在本地的文件。优化加载速度,节约服务器资源。二、适用场景正如 manifest 英译的名字:离线应用程序缓存,这项功能是设计给会有离线场景的应用来使用,例如:需要离线使用的手机APP/H5,亦或是PC端的纯静态页面。三、问题1.服务器资源更新后显示滞后需要多刷新一次页面首次在载入页面时,浏览器会判断是否引入了 manifest,若检测到引入,则下载并按文件规则缓存资源。再次载入页面时,便会根据 manifest 中规定的缓存文件使用本地缓存而不是请求服务器资源。当 manifest 文件更新时,页面加载已经进行,但是缓存更新尚未完成,便会先使用旧 manifest 所缓存的文件,同时浏览器会将新的 manifest 文件里的缓存文件下载下来,若想看到最新的静态资源需要刷新下页面重新加载一次。2.全量加载当 manifest 文件更新时,所有的资源都要全部被下载一次,并且其中一个出现异常会导致整个 manifest 运
-
HTML5开发manifest离线缓存示例详解使用缓存接口可为您的应用带来以下三个优势: 离线浏览-用户可在离线时浏览您的完整网站 速度-缓存资源为本地资源,因此加载速度较快。 服务器负载更少-浏览器只会从发生了更改的服务器下载资源。 应用缓存(又称AppCache)可让开发人员指定浏览器应缓存哪些文件以供离线用户访问。即使用户在离线状态下按了刷新按钮,您的应用也会正常加载和运行。 引用清单文件 要启用某个应用的应用缓存,请在文档的html标记中添加manifest属性: manifest属性可指向绝对网址或相对路径,但绝对网址必须与相应的网络应用同源。清单文件可使用任何文件扩展名,但必须以正确的MIME类型提供(参见下文)。 或 您应在要缓存的网络应用的每个页面上都添加manifest属性。如果网页不包含manifest属性,浏览器就不会缓存该网页(除非清单文件中明确列出了该属性)。 这就意味着用户浏览的每个包含manifest的网页都会隐式添加到应用缓存。因此,您无需在清单中列出每个网页。 清单文件必须以text/
-
通过Gradle动态修改Manifest文件1. GradleGradle是开源的自动化构建工具,基于JVM,有良好的扩展性和性能,对IDE支持,支持编写自定义任务,在Android领域,用于构建和编译应用的资源和源代码,然后将它们打包成可供您测试、部署、签署和分发的 APK,另外在插件化和热修复的领取中起重要的作用。gradle构建有三个阶段初始化分析哪些module将参与构建,settings.gradle文件会被解析。配置处理module的build脚本,处理属性和task的依赖关系,build.gradle文件会被解析配置执行按照配置过程处理的任务依赖关系相继执行task2. 通过Gradle动态修改Manifest文件例如:在release包manifest中动态添加标签为meta-data的渠道号channel<meta-data android:name=“channel" android:value=“1001" />思路在项目配置结束的task中,找到生成Release的manifest的task通过
-
扣丁学堂HTML5开发manifest离线缓存示例详解今天扣丁学堂HTML5培训老师给大家介绍一下关于HTML5开发manifest离线缓存示例详解,目前来说离线访问对基于网络的应用而言越来越重要。虽然所有浏览器都有缓存机制,但它们并不可靠,也不一定总能起到预期的作用。HTML5使用ApplicationCache接口解决了由离线带来的部分难题,下面我们一起来看一下吧。 使用缓存接口可为您的应用带来以下三个优势: 离线浏览-用户可在离线时浏览您的完整网站 速度-缓存资源为本地资源,因此加载速度较快。 服务器负载更少-浏览器只会从发生了更改的服务器下载资源。 应用缓存(又称AppCache)可让开发人员指定浏览器应缓存哪些文件以供离线用户访问。即使用户在离线状态下按了刷新按钮,您的应用也会正常加载和运行。 引用清单文件 要启用某个应用的应用缓存,请在文档的html标记中添加manifest属性: manifest属性可指向绝对网址或相对路径,但绝对网址必须与相应的网络应用同源。清单文件可使用任何文件扩展名,但必须以正确的MIME类型提供(参见
manifest相关课程
manifest相关教程
- 2.3 命令选项 以下命令说明按 subject 整理,并列出了每个 subject 适用的 verb 和选项组合。查看 APK 文件属性命令选项说明apk summary输出应用 ID、版本代码和版本名称。apk file-size输出 APK 的总文件大小。apk download-size输出 APK 的下载大小估计值。apk features输出 APK 用来触发 Play 商店过滤的功能。apk compare比较 apk-file 和 apk-file2 的大小。 --different-only:输出存在差异的目录和文件。 --files-only:不输出目录条目。 --patch-size:显示逐个文件的补丁程序大小估计值,而不是原始差异。**查看 APK 文件系统 **命令选项说明files list列出 APK 中的所有文件。files cat --file输出文件内容。必须使用 --file path 选项指定 APK 内的路径。查看清单中的信息命令选项说明manifest print以 XML 格式输出 APK 清单。manifest application-id输出应用 ID 值。manifest version-name输出版本名称值。manifest version-code输出版本代码值。manifest min-sdk输出最低 SDK 版本。manifest target-sdk输出目标 SDK 版本。manifest permissions输出权限列表。manifest debuggable输出应用是否可调试。访问 DEX 文件信息命令选项说明dex list输出 APK 中的 DEX 文件列表。dex references输出指定 DEX 文件中的方法引用数。dex packages输出 DEX 中的类树。在输出中,P、C、M 和 F 分别表示软件包、类、方法和字段。–defined-only:在输出中仅包含 APK 中定义的类。–files:指定要包含的 DEX 文件名。默认:所有 DEX 文件。–proguard-folder file:指定用于搜索映射的 Proguard 输出文件夹。–proguard-mappings file:指定 Proguard 映射文件。–proguard-seeds file:指定 Proguard 种子文件。–proguard-usages file:指定 Proguard 用法文件。dex code --class以 smali 格式输出类或方法的字节码。输出中必须包含类名,并且要输出完全限定类名以进行反编译。看存储在 APK 的资源命令选项说明resources packages输出资源表中定义的软件包列表。resources configs --type输出指定 type 的配置列表。type 是资源类型,如 string。resources value --config --name --type输出由 config、name 和 type 指定的资源的值。resources names --config --type输出属于某种配置和类型的资源名称列表。resources xml --file以简单易懂的形式输出 XML 二进制文件。
- 4.4 清单文件 需要注意的是,Service 是一个组件,凡是添加组件都需要在 AndroidManifest.xml 中注册(动态注册除外),否则无法使用:<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.emercy.myapplication"> <uses-permission android:name="android.permission.INTERNET" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <service android:name=".PlayerService" android:enabled="true" android:exported="true" /> </application></manifest>**注意:**如果你的音频文件是一个远程的 url,还需要增加网络权限: <uses-permission android:name="android.permission.INTERNET" />到此,整个初级的播放器就开发完成了。大家如果感兴趣还可以考虑增加其他的功能,比如快进、快退、切歌、增加通知栏、展示歌词等等。
- 2.2 链接 链接语法aapt2 link path-to-input-files [options] -ooutputdirectory/outputfilename.apk --manifest AndroidManifest.xml在以下示例中,AAPT2 将两个中间文件(drawable_Image.flat 和 values_values.arsc.flat)与 AndroidManifest.xml 文件进行了合并。AAPT2 会根据 android.jar 文件链接结果,该文件中包含了 android 软件包中定义的资源:aapt2 link -o output.apk -I android_sdk/platforms/android_version/android.jar compiled/res/values_values.arsc.flat compiled/res/drawable_Image.flat --manifest /path/to/AndroidManifest.xml -v链接选项命令选项说明-o指定链接的资源 APK 的输出路径。–manifest指定要构建的 Android 清单文件的路径。-I提供平台的 android.jar 或其他 APK(如 framework-res.apk)的路径。-A指定要包含在 APK 中的资产目录。-R传递要链接的单个 .flat 文件,使用 overlay 语义。–package-id指定要用于应用的软件包 ID。–allow-reserved-package-id允许使用保留的软件包 ID。–java指定要在其中生成 R.java 的目录。–proguard为 ProGuard 规则生成输出文件。–proguard-conditional-keep-rules为主 dex 的 ProGuard 规则生成输出文件。–no-auto-version停用自动样式和布局 SDK 版本控制。–no-version-vectors停用矢量可绘制对象的自动版本控制。–no-version-transitions停用转换资源的自动版本控制。–no-resource-deduping禁止在兼容配置中自动删除具有相同值的重复资源。–enable-sparse-encoding允许使用二进制搜索树对稀疏条目进行编码。-z要求对标记为“建议”的字符串进行本地化。-c提供以英文逗号分隔的配置列表。–preferred-density允许 AAPT2 选择最相符的密度并删除其他所有密度。–output-to-dir将 APK 内容输出到 -o 指定的目录中。–min-sdk-version设置要用于 AndroidManifest.xml 的默认最低 SDK 版本。–target-sdk-version设置要用于 AndroidManifest.xml 的默认目标 SDK 版本。–version-code指定没有版本代码时要注入 AndroidManifest.xml 中的版本代码。–compile-sdk-version-name指定没有版本名称时要注入 AndroidManifest.xml 中的版本名称。–proto-format以 Protobuf 格式生成已编译的资源。–non-final-ids使用非最终资源 ID 生成 R.java。–emit-ids在给定的路径上生成一个文件,该文件包含资源类型的名称及其 ID 映射的列表。–stable-ids使用通过 --emit-ids 生成的文件,该文件包含资源类型的名称以及为其分配的 ID 的列表。–custom-package指定要在其下生成 R.java 的自定义 Java 软件包。–extra-packages生成相同的 R.java 文件,但软件包名称不同。–add-javadoc-annotation向已生成的所有 Java 类添加 JavaDoc 注释。–output-text-symbols生成包含指定文件中 R 类的资源符号的文本文件。–auto-add-overlay允许在叠加层中添加新资源。–rename-manifest-package重命名 AndroidManifest.xml 中的软件包。–rename-instrumentation-target-package更改插桩的目标软件包的名称。-0指定不想压缩的文件的扩展名。–split根据一组配置拆分资源,以生成另一个版本的 APK。-v可提高输出的详细程度。
- 2.1 语法 apkanalyzer [global-options] subject verb [options] apk-file [apk-file2]subject 是我们要查询的内容,可以是整个 APK,也可以是 APK 的一部分。subject 可以是以下任意一项。apk:分析 APK 文件属性,如应用 ID、版本代码和版本名称。files:分析 APK 文件内的文件。manifest:分析 APK 文件内的清单的内容。dex:分析 APK 文件内的 DEX 文件。resources:查看文本、图片和字符串资源。以下示例会分析 apk (subject) 以获取其 file-size (verb),然后以简单易懂的格式(-h 选项)输出文件大小:apkanalyzer -h apk file-size myapk.apk
- 3. Camera 使用示例 使用 API 来拍照会相对比较麻烦一点,首先需要获取权限,那么对于 Android 6.0 版本以上的系统除了要在 Manifest 里面加入 Camera 权限之外,还需要动态获取权限,这个可能大家在用一些比较老的教程示例时会踩坑。获取到权限就可以打开 Camera 了,然后拿到 Camera 实例设置一个 SurfaceView 来渲染预览页面,在用户需要拍照的时候调用 Camera 的takePicture()方法获取当前帧,最后保存输出到文件中或者在新的 Activity 中展示,这样就算完成了一次拍照闭环。
- 3.3 照片回看页面 点击“拍照” Button 获取到当前画面之后,我们可以就可以按照自己的逻辑对图片进行操作了。比如可以通过 Http 上传、通过 Socket 发送给其他设备、保存到本地、或者传递给其他 App 等。本例子中将图片传递给另一个 Activity 专门用于查看图片,下面是 PhotoActivity 的代码:package com.emercy.myapplication;import android.app.Activity;import android.net.Uri;import android.os.Bundle;import android.widget.ImageView;import java.io.File;import static com.emercy.myapplication.MainActivity.CAMERA_PATH;public class PhotoActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ImageView img = new ImageView(this); String path = getIntent().getStringExtra(CAMERA_PATH); if (path != null) { img.setImageURI(Uri.fromFile(new File(path))); } setContentView(img); }}通过 Intent 接收图片路径,然后展示在 ImageView 上,需要注意的是PhotoActivity 中是直接将 ImageView 作为参数直接设置给了 SetContentView(),这样相当于布局文件中只有一个 ImageView 的写法。最后别忘了在 Manifest 当中添加权限: <uses-permission android:name="android.permission.CAMERA"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>编译运行效果如下:点击拍照进入 PhotoActivity,展示的就是我们拍照的画面。
manifest相关搜索
-
mac osx
machine_start
macox
magellan
malloc
manifest
manifest文件
map
map 遍历
mapreduce编程
maps google com
margin
margin bottom
margin left
margin right
margin top
marginbottom
marginheight
marginleft
margintop