首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何获得更小的应用文件尺寸?来了解下 Android App Bundle

对于手机用户来说,“存储空间不足” 警告有时会显得非常烦人。时至今日,手机存储容量仍然是有限的。...它包含应用支持的所有设备的代码和资源,例如 DEX 文件、本地代码、清单文件、各种资源文件等。...基本 APK 包含所有设备配置共有的文件清单文件。配置 APK 是为您生成的,每个之中都包含有特定设备配置的相关资源:语言、CPU 架构或屏幕像素密度。...安装早于 Android Lollipop 版本的设备也可以享受安装文件体积缩小的福利,但其 APK 中将包含所有语言。 在如今,很显然构建一个统一的臃肿的 APK 的做法已经过时了。...Bundletool 的 GitHub 地址: github.com/google/bund… 使用 bundletool ?

1.9K20
您找到你想要的搜索结果了吗?
是的
没有找到

iOS学习——iOS项目增加新的字体

下面是iOS项目增加新的字体的基本思路,基本上分为三步: 将字体添加到项目中 在info.plist中添加所需新字体, 同时也在target-->Build Phases-->Copy Bundle...Resources中将info.plist中添加的字体添加上(确保能找到资源) 找到真实可用的fontName, 代码中使用fontWithName: size: ....将字体添加到项目中 添加过程中一定要选中 copy items if needed,将文件copy到项目中。添加成功后的项目结构效果图如下图 ? ? Step2. 对字体进行配置。...配置有两步 第一是需要在info.plist中添加所需新字体,在 info.plist文件中添加一组键值对,Fonts provided by application,然后在下面的item对应的值填写就是我们添加的字体文件的名称...第二是需要在target-->Build Phases-->Copy Bundle Resources中将info.plist中添加的字体添加上(确保能找到资源) ?

59331

Android 进阶4:Service 的一些细节

在启动服务的组件中构建广播的 PendingIntent,以 bundle 的形式添加到 intent 中,然后启动服务 private void starServiceWithBroadcast(){...两种状态下服务的生命周期 官方图所示: ?...RemoteException ex) { } } startForeground() 接受两个参数: id:当前提示的表示,不能为 0 notification:要展示的提示 下面的代码演示了如何在...Service 中将自己提升为前台级别: PendingIntent contentIntent = PendingIntent.getActivity(this, 0, new Intent...比如当某些后台工作(例如文件下载已经完成)且用户现在可以对其进行操作时,状态栏通知是最佳方法。 当用户从展开视图中选定通知时,通知即可启动 Activity(例如查看已下载的文件)。

1.1K80

ASP.NET Core 中的捆绑和缩小静态资产

捆绑 捆绑将多个文件合并到单个文件中。 捆绑可减少呈现 Web 资产(网页)所需的服务器请求数。 可以专门为 CSS、JavaScript 等创建任意数量的单个捆绑。...因此,请求的资产( CSS、图像和 JavaScript 文件)的大小大幅减小。 缩小的常见副作用包括将变量名称缩短为一个字符、删除注释和不必要的空格。...第三方工具( Grunt 任务运行程序)以更复杂的方式完成相同的任务。 开发工作流需要捆绑和缩小之外的其他处理( linting 和图像优化)时,第三方工具非常适用。...CSS 缩小程序 JavaScript 缩减程序 HTML 缩小程序 -includeInProject:指示是否将生成的文件添加到项目文件的标记。...可选,默认值 - false sourceMap:指示是否为捆绑的文件生成源映射的标记。 可选,默认值 - false sourceMapRootPath:用于存储所生成的源映射文件的根路径。

4K20

基于 Go 语言开发在线论坛(八):消息、视图及日期时间本地化

我们接着上篇在线论坛的进度,由于之前所有页面和消息文本都是英文的,而我们开发的应用基本都是面向中文用户的,所以需要对项目进行本地化,今天正好借着这个入门项目给大家介绍下如何在 Go Web 应用中进行国际化和本地化编程...验证 goi18n 是否安装成功 通过 go-i18n 自动生成翻译文件 接下来,我们来编写消息文本模板用于生成翻译文件。...3:04pm") } 我们当然可以直接修改这里来实现类似 2006-01-02 15:04:05 的日期时间格式(该时间节点是 Go 语言元年),不过,学院君这里换一种复杂一点的实现,以便顺手介绍下如何在...将自定义函数应用到视图模板 打开 handlers/helper.go,新增一个格式化日期时间的函数 formatDate,然后在 generateHTML 方法中将这个函数通过 template.FuncMap...调用自定义函数格式化本地日期时间 然后我们在所有视图文件中将群组创建日期渲染调整为如下方式,即通过管道连接符的方式将 .CreatedAt 变量作为参数传入 fdate 并输出返回值: {{ .CreatedAt

1.9K20

使用 webpack 4 和 Babel 7 构建 React 应用及如何引入 Material Design

每当我们在应用程序中更改文件时,它会自动刷新浏览器页面 本文所用的版本是 3.1.8 看一下package.json文件,将看到这三个包被添加到这个文件中,如下所示: "devDependencies"...这是因为我们还没有配置 Webpack 配置文件。此外,由于我们还没有配置该文件,我控制台中将出现一些警告。...React代码,Webpack 会给我们一个错误,它不知道如何在bundle.js 文件中编译 React。...例如我们有一个 js 文件以 es2015 的语法进行编写(使用了箭头函数)。我们可以直接使用 babel-node es2015.js 进行执行,而不用再进行转码了。...现在,我们不能简单地将 src 文件夹从 Material Dashboard React 复制到我们的新项目中。 这会给我们带来很多错误, 缺少依赖关系的错误,找不到模块等。

9.3K60

Git LFS 好用的大文件储存工具?

在Linux上,可以通过软件包管理器(yum或apt)安装Git LFS。 Windows下使用Git LFS的安装示例 以下演示的是如何在Windows系统上安装和使用Git LFS。 1....git lfs install 运行以上命令,Git LFS 就被添加到了 Git 命令行中。 2. 大文件跟踪 需要将大文件添加到 Git LFS 跟踪列表中,才能对其进行跟踪。...Git大文件存储使用指针来引用文件,而不是将实际文件或二进制大对象(blobs,一种将二进制文件存储为一个实体的数据类型) 存储在Git存储本身中。...因此,大文件/二进制大对象不会被直接写入Git存储,而是被写入一个指针文件文件/二进制大对象本身会被写入一个单独的服务器,称为LFS存储。...这意味着每个存储都需要安装Git LFS,您还需要告诉LFS要跟踪的文件类型,然后将跟踪信息添加到存储中,以便在提交该类型的文件时,它将被放置在LFS存储中。

40520

何在Ubuntu 16.04上使用Concourse CI设置持续集成管道

在本教程中,我们将演示如何在将新更改提交到存储时使用Concourse自动运行项目的测试套件。...要创建存储的分支,请登录GitHub并导航到项目存储。单击右上角的Fork按钮,在您的帐户中制作存储的副本: 如果您是GitHub组织的成员,可能会询问您在哪里分叉存储。...选择帐户或组织后,存储的副本将添加到您的帐户中。...这就是所有数据进入持续集成系统以及如何在作业之间共享所有数据的方式。Concourse不提供任何在作业之间内部存储或传递状态的机制。...使Git改动生效 现在定义了持续集成过程,我们可以将它提交到我们的git存储并将其添加到Concourse。

4.2K20

Android入门教程 | Fragment 基础概念

当片段经历暂停或停止状态继而恢复后,如果希望保留此片段的基本组件,则应在实现中将其初始化。 onCreateView() 系统会在片段首次绘制其界面时调用此方法。...静态方式 在 Activity 的布局文件内声明片段。 在本例中,您可以将片段当作视图来为其指定布局属性。例如,以下是拥有两个片段的 Activity 的布局文件: <?...例如,以下示例说明如何将一个片段替换为另一个片段,以及如何在返回栈中保留先前的状态: // Create new fragment and transaction Fragment newFragment...如果向事务添加多个更改(又一个 add() 或 remove()),并调用 addToBackStack(),则调用 commit() 前应用的所有更改都将作为单一事务添加到返回栈,并且返回按钮会将它们一并撤消...与 Activity 一样,您也可使用 onSaveInstanceState(Bundle)、ViewModel 和持久化本地存储的组合,在配置变更和进程终止后保留片段的界面状态。

3.5K40

Vue.js中的延迟加载和代码拆分

输出包只是一个(或我们将在后面的部分中看到的多个)javascript文件,其中包含依赖图中的所有模块。 这个bundle包本质上是我们整个应用程序的JavaScript。...它将作为main.js的节点添加到依赖关系图中并与之捆绑在一起。 但是,如果我们仅在某些情况下需要我们的Cat模块,例如对用户交互的响应,该怎么办?...例如,作为对某个用户交互的响应(路由更改或单击)。...假设我们有一个非常小的网上商店,有4个文件: main.js 作为我们的主要bundle包 product.js 用于产品页面中的脚本 productGallery.js 用于产品页面中的产品 category.js...现在是时候看看我们如何在Vue应用程序中使用它了。 好消息是它非常简单,我们可以懒加载整个vue单一文件组件(SFC),vue文件语法和HTML, CSS一样。不熟悉的话,去看看官方文档。 ?

7.7K10

Git中的命令和操作

Git的目的是管理随着时间变化的项目或文件集。Git将此信息存储在称为Git存储的数据结构中。该存储是Git的核心。 ? 需要说明的是,Git存储存储所有项目文件和相关元数据的目录。...Git Status 该命令列出了所有准备好添加到本地存储的修改文件。 让我们输入命令以查看会发生什么: ? 这表明我有两个文件尚未添加到索引中。...现在,新文件添加到索引中,您可以提交它们了。 提交内容 它是指在给定时间记录存储的快照。除非明确完成,否则已提交的快照将永远不会更改。让我解释一下commit如何与下图一起工作: ?...您在上面看到的,git commit命令已经在本地存储中的四个文件中提交了更改。...当您要将文件发送给未在计算机上安装Git的客户端进行审核时,这非常方便。 打包存储它将存储转换为单个文件。 使用以下命令- git bundle create ..

1.8K10

Lottie-让动画实现更简单

生命不是苦中醇蜜,烦中取乐,不是看花绣花,不能雾中看花,游戏生命;生命是由铁到钢的锻造过程,生命是走向人生辉煌的风帆;生命需要道路高天,智者流云。...apps开源动画读取这份JSON文件进行解析和渲染。...(官方文档有提到,masks 和 mattes 动画较为耗费性能,原因是需要额外的 Bitmap 辅助,这点需注意) 而存储上,动画由 json 文件描述,占用空间不多。...只需要将AE导出的JSON以及所需要的图片资源添加到工程中。...使用它的最简单的方法是使用LOTAnimationView: 如果你在多个bundle中穿插工作: 以URL的方式加载: 最后,这个的开源地址在这里: Android: https://github.com

2K10
领券