首页
学习
活动
专区
圈层
工具
发布

Android高级开发-APK极致优化

版本差异(具体参考官方文档) Android 5.0(API 级别 21)及更高版本会提供矢量图支持。...如果应用的最低 API 级别低于以上版本,Vector Asset Studio 会将矢量图文件添加到项目中;另外,在构建时,Gradle 会创建不同分辨率的 PNG 光栅图像。...对于 Android 5.0(API 级别 21)及更高版本,Vector Asset Studio 支持所有 VectorDrawable 元素。...Tint着色器 yifeng.studio/2017/03/30/… 自 API 21 (Android L)开始,Android SDK 引入 tint 着色器,可以随意改变安卓项目中图标或者 View...资源压缩 developer.android.google.cn/studio/buil… gradle属性 shrinkResources 对无用资源压缩 将无用的图片改成占位图,无用的xml改成空根文件

1.5K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Android 安装包优化】Android 中使用 SVG 图片 ( Android 5.0 以下的矢量图方案 | 矢量图生成为 PNG 图片 )

    文章目录 一、Android 5.0 以下的矢量图方案 二、矢量图生成为 PNG 图片 三、完整的 build.gradle 构建脚本 四、编译效果 五、参考资料 一、Android 5.0 以下的矢量图方案...Android 5.0 ( API Lv 21 ) 以上的版本开始支持 , 对于 Android 5.0 以下的版本 , 有两种解决方案 ; ① 将矢量图生成为 PNG 图片 ; ② 使用 23.2...及以上版本的支持库 ; 二、矢量图生成为 PNG 图片 ---- 矢量图生成为 PNG 图片 : 如果当前应用设置的最低 API 版本低于 21 , 一般设置为 18 ; 使用 Vector Asset...Studio 生成矢量图时 , 将矢量图自动添加到项目中 , 同时在 build.gradle 中 , 在 android / defaultConfig 层级下 , 配置 generatedDensities...androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' } 四、编译效果 ---- 在上一篇博客 【Android 安装包优化】Android 中使用

    80510

    013android初级篇之Android Studio 引用源码模块,jar及so文件

    引用第三方源码模块 将第三方源码模块作为子模块引入到自己的工程中,这样相比jar的方式的好处是:可以在使用中编辑修改这个模块的代码。...其实这些现在基本不用手动添加,引入的时候,AS 已经帮你设置好了,不过还有一项可能需要配置 在主 gradle.properties配置上sdk的值 ANDROID_BUILD_MIN_SDK_VERSION...=21 2....引用jar文件 将jar文件复制、粘贴到app的libs目录中; 右键点击jar文件,并点击弹出菜单中的“Add As Library”,将jar文件作为类库添加到项目中; 选择指定的类库。...在“src/main”目录中新建名为“jniLibs”的目录; 将so文件复制、粘贴到“jniLibs”目录内。 报错 1.

    2.1K20

    包验证返回的错误代码

    本文仅供参考,其中列出了由包验证生成的所有错误代码。 错误代码列表 诊断 ID 说明 建议的操作 PKV0001 缺少兼容框架的编译时资产。 将适当的目标框架添加到项目中。...PKV0002 缺少兼容框架和运行时的运行时资产。 将相应运行时的适当资产添加到包中。 PKV0003 缺少兼容框架的运行时独立资产。 将适当的运行时独立目标框架添加到项目中。...将适当的目标框架添加到项目中。 PKV0007 最新版本中删除了目标框架和运行时标识符对。 将适当的目标框架和 RID 添加到项目中。...CP0009 一方的非密封类型在另一方被注释为密封。 从类型中删除密封注释。 CP1001 在搜索目录中找不到匹配的程序集。 (只有在直接使用 API 兼容性时不适用于包验证。)...使用以下 MSBuild 项添加可在其中找到该程序集的目录路径:" TargetFramework="<tfm

    3.2K30

    微服务的集成测试 | 微服务系列第八篇

    解析依赖关系后,使用ShrinkWrap.create静态方法捆绑项目中的所有依赖项,类和配置,以生成符合Java的文件(WebArchive.class)。...要实现此目的,请使用addPackages方法将项目中运行测试所需的包和类添加到WAR文件中。...然后,要激活CDI,请使用addAsWebInfResource方法将空beans.xml文件添加到Web存档。...3 使用@Deployment注释负责捆绑应用程序的方法。 4 获取当前项目的所有API依赖项。 五 创建Web归档(WAR)文件。 6 包括项目中的所有类和包。...8 从项目中添加API依赖项。 9 创建测试所需的Swarm配置。 以下arquillian.xml文件提供了一些额外的配置,例如端口和主机名,必须从测试源代码外部化: ?

    3.7K40

    C++操作mysql方法总结(3)

    C++通过mysql++操作mysql的方式 使用vs2013和64位的msql 5.6.16进行操作 项目中使用的数据库名和表数据请参考C++操作mysql方法总结(1)中的介绍 Mysql++是官方发布的...、一个为MySQL设计的C++语言的API。...Files\MySQL\MySQL Server 5.6\lib添加到mysqlpp项目的库目录中(根据具体路径而定) 5、确保libmysql.lib已经添加到mysqlpp项目的附加依赖项中 6、...如果使用的mysql是64位的,还需要将项目的解决方案平台由win32改成x64 7、将D:\Program Files\MySQL\MySQL Server 5.6\lib(根据具体路径而定)下的libmysql.dll...至附加依赖项中 (*3.4步也可以在程序代码的开始处加上#pragma comment(lib,"D:\\mysqllib\\mysqlpp.lib") 来导入mysqlpp.lib) 5、如果使用的mysql

    1.8K80

    Java项目如何集成Spring AI

    Spring CLI 还提供了将外部代码库集成到当前项目中的功能,以及许多其他生产力功能。...使用应用程序生成脚本中的 BOM 可以避免您自己指定和维护依赖项版本。 相反,您使用的 BOM 版本决定了使用的依赖项版本。 它还可确保默认使用受支持和测试的依赖项版本,除非您选择替代它们。...,以便在项目中引用 Spring AI BOM,并使用它来声明依赖项的约束。...通过使用 BOM 平台依赖项,Gradle 会自动解析 BOM 中定义的依赖项版本,并确保你的项目中使用的依赖项与 BOM 中指定的版本保持一致。这有助于减少版本冲突,并确保项目的稳定性和兼容性。...为特定组件添加依赖项 文档中的以下每个部分都显示了需要添加到项目生成系统中的依赖项。

    67100

    Java全栈开发面试实录:从基础到微服务的深度技术对话

    还有Vite构建工具的支持,让开发效率更高。 ## 面试官:你提到Vite,能举例说明在Vue3项目中如何配置Vite?...**应聘者**:在Vue3项目中,我们可以使用`create-vue`脚手架生成项目,然后运行`npm install`安装依赖。Vite会自动识别`.vue`文件并提供热更新。...在实际项目中是如何应用的? **应聘者**:微服务是一种将单体应用拆分成多个独立服务的架构模式,每个服务可以独立部署和扩展。...**应聘者**:通常使用REST API或者gRPC进行通信。我们也尝试过使用gRPC,但需要额外的协议定义和编解码工作。在实际项目中,我们更倾向于使用REST API,因为其简单易用。...例如,在Vue3项目中,使用Vite配置文件可以快速定制构建流程: ```js // vite.config.js import { defineConfig } from 'vite'; import

    9310

    在 iOS 项目中使用 ESRI ArcGIS SDK

    将 ArcGIS 添加到框架搜索路径 要将 ArcGIS Framework 添加到项目, 选择左边导航窗口的项目节点, 选择一个目标节点, 再选择编译设置标签, 如下图所示: ?...添加依赖项 ArcGIS 依赖于下面的框架和类库, 因此需要把它们添加到项目中: CoreGraphics.framework CoreLocation.framework CoreText.framework...注意: 如果没有这些标志, 程序在使用 ArcGIS API 提供的类时可能会崩溃!.../Library/SDKs/ArcGIS/iOS/ArcGIS.framework/Versions/Current/Resources 目录, 需要手工将这个文件添加到项目中。...使用 ArcGIS Online 基础图层 Binding项目只是对 ArcGIS API 的绑定, 因此对外暴露的 API 函数几乎不变, 不同的只是换成了 C# 的语法, 上面在 Xcode 中使用

    2.5K10

    C++操作mysql方法总结(1)

    C++通过mysql的c api和通过mysql的Connector C++ 1.1.3操作mysql的两种方式 使用vs2013和64位的msql 5.6.16进行操作 项目中使用的数据库名为booktik...(共有30条记录,只列出了部分记录,14-30未列出) 一、通过mysql的C api进行操作 1、新建一个空项目 2、将D:\Program Files\MySQL\MySQL Server 5.6\...") 来导入libmysql.lib) 5、如果使用的mysql是64位的,还需要将项目的解决方案平台由win32改成x64 6、将D:\Program Files\MySQL\MySQL Server...1.1.3\include添加到项目的包含目录中(根据具体路径而定) 3、将D:\boost\boost_1_55_0添加到项目的包含目录中(根据具体路径而定) 4、将D:\Program Files\...MySQL\Connector C++ 1.1.3\lib\opt添加到项目的库目录中(根据具体路径而定) 5、添加mysqlcppconn.lib至附加依赖项中 6、如果使用的mysql是64位的,还需要将项目的解决方案平台由

    2.2K60

    Multidex记录一:介绍和使用

    Google官方:配置方法数超过 64K 的应用 Android 5.0 之前版本的 Dalvik 可执行文件分包支持 Android 5.0(API 级别 21)之前的平台版本使用 Dalvik 运行时来执行应用代码...Android 5.0 及更高版本的 Dalvik 可执行文件分包支持 Android 5.0(API 级别 21)及更高版本使用名为 ART 的运行时,后者原生支持从 APK 文件加载多个 DEX...方案的应用可能不能在低于Android 4.0 (API level 14) 机器上启动,这个主要是因为Dalvik linearAlloc的一个bug ; 采用MultiDex方案的应用因为需要申请一个很大的内存...5.0 (API level 21)版本的机器上触发这个限制。...例如,如果代码使用自检机制或从原生代码调用 Java 方法,那么这些类可能不会被识别为主 DEX 文件中的必需项。

    2K10

    使用 TypeScript 和依赖注入实现一个聊天机器人

    Discord的 "New Application" 按钮 选择一个名称,然后单击创建。然后,单击 Bot → Add Bot,你就完成了。让我们将机器人添加到服务器。...将你的 Discord Bot 添加到你的服务器 为了测试我们的机器人,需要一台Discord服务器。你可以使用现有服务器或创建新服务器。...标准Discord欢迎消息 将bot添加到服务器后,你应该会看到如上所示的消息。 创建 .env 文件 我们需要一种能够在自己的程序中保存令牌的方法。为了做到这一点,我们将使用 dotenv 包。...主要区别在于这些测试中的依赖关系不会被模拟。但是,有些依赖项不应该像外部 API 连接那样进行测试。在这种情况下,我们可以创建模拟并将它们 rebind 到容器中,以便替换注入模拟。...这里的 TypeScript 依赖项注入示例是一种模式,你可以将其添加到你的知识库中一遍在其他项目中使用。

    13.3K20

    在 ASP.NET Core 项目中使用 npm 管理你的前端组件包

    例如,这里我们需要在项目中添加 bootstrap 和 jquery,因为在正式发布时如果缺少这两个组件,就会导致我们的程序报错,所以这里我们需要添加到 dependencies 节点下,而像后面我们使用到的...gulp 的一系列插件,只有在我们进行项目开发时才会使用到,所以我们只需要添加到 devDependencies 即可。...右键选中我们的示例项目,选择 Open Command Line,打开控制台,输入下列的命令,将 bootstrap 添加到我们的项目中。   ...,就像我们项目中的 gulpfile 更多的是对于第三方插件的使用,而我们只需要通过 pipe 将任务中的每一步操作添加到任务队列中即可。...///   通过将绑定事件与 gulp API 进行结合,就可以很好的实现我们的需求

    2.5K30

    听GPT 讲K8s源代码--cmd(一)

    NodeIPAMControllerOptions结构体还实现了AddFlags函数,用于将NodeIPAMControllerOptions的配置选项添加到命令行参数中。...每个云提供商都有自己的API和SDK,用于与底层云平台进行通信。通过初始化客户端,可以建立与云提供商的连接,并使用其提供的API。...restrict变量用于指定项目需要使用的最低版本,如果检测到依赖库的版本低于restrict指定的版本,则会报错。 在该文件中定义了几个结构体用于存储依赖关系和配置信息。...difference:比较两个依赖项列表,返回两个列表之间的差异。 String:重写了Unwanted结构体的String方法,用于将依赖项规范转换为字符串。...visit:递归访问代码库中的依赖项,并将其添加到依赖项列表中。 doVisit:递归访问代码库中的依赖项的辅助函数,通过解析go.mod文件获取依赖项模块。

    42830

    Vue 框架学习系列七:Axios 与 HTTP 请求在 Vue 3 中的应用

    在Vue 3项目中,Axios是一个流行的选择,用于与后端API进行交互。安装Axios首先,你需要在Vue 3项目中安装Axios。...你可以使用npm或yarn来安装它:npm install axios # 或者 yarn add axios配置Axios实例在Vue 3项目中,通常会在一个单独的文件中创建一个Axios实例,并配置一些全局设置...(response.data); // 将新文章添加到文章中列表(如果需要在前端即时显示) alert('文章创建成功!')...你可以根据需要添加更多的错误处理逻辑。结语通过本文的介绍,你应该已经了解了如何在Vue 3项目中安装、配置和使用Axios来处理HTTP请求。...Axios提供了易于使用的API和强大的功能,使其成为与后端API进行交互的流行选择。在实际项目中,你可以根据需求进一步自定义Axios实例和请求/响应处理逻辑。

    2.1K10

    在 Xcode 中添加 Swift package 依赖

    但是,有时候,从头开始写东西是有风险的:也许代码很复杂,也许很容易出错,也许它经常更改,或者其他各种原因,这就是模块依赖存在的原因——能够获取第三方代码并在我们的项目中使用它。...无论如何,第一步是将包添加到我们的项目中:转到 File 菜单,然后选择 Swift Packages > Add Package Dependency。...Xcode将获取该软件包,读取其配置,并向您显示一个新屏幕,询问您要使用哪个版本。...之所以可能这样做,是因为大多数开发人员都已同意为其代码使用语义版本控制(SemVer)系统。如果查看类似1.5.3的版本,则将1视为主要编号,将5视为次要编号,将3视为补丁程序编号。...无论如何,我们已经完成了打包工作,因此请单击“完成”以使Xcode将其添加到项目中。您应该看到它出现在项目导航器的“Swift Package Dependencies”下。

    10.2K10

    #抬抬小手学Python# Python Poetry 进行依赖管理【图文】

    摘要:在本教程中,您探索了如何创建新的 Python Poetry 项目以及如何将 Poetry 添加到现有项目中。 当您的 Python 项目依赖于外部包时,您需要确保使用每个包的正确版本。...使用Poetry将帮助您启动新项目、维护现有项目并掌握依赖项管理。您将准备好使用pyproject.toml文件,这将是在 Python 项目中定义构建需求的标准。...但是您应该谨慎尝试这种方法,因为 Poetry 将安装自己的依赖项,这可能会与您在项目中使用的其他包冲突。 安装 Poetry的推荐方法是使用官方install-poetry脚本。...库添加到您的项目中。...或者,您可能继承了一个不是用 Poetry 创建的项目,但现在您想使用 Poetry 进行依赖管理。在这些类型的情况下,您可以将 Poetry 添加到现有的 Python 项目中。

    2.3K40

    qmake:变量手册

    正确的包含路径、编译器标志和库将自动添加到项目中。dll也可以在所有平台上使用。将创建具有目标平台(.dll 或 .so)的适当后缀的共享库文件。...21、DEF_FILE 此变量仅在 Windows 上使用应用程序模板时使用。指定要包含在项目中的 .def 文件。...27、FORMS 指定在编译前由 uic 处理的 UI 文件。构建这些 UI 文件所需的所有依赖项、头文件和源文件都将自动添加到项目中。...qmake 会自动检测头文件中的类是否需要 moc,并将相应的依赖项和文件添加到项目中,用于生成和链接 moc 文件。 30、ICON 此变量仅用于在 Mac OS 上设置应用程序图标。...qmake 会自动检测头文件中的类是否需要 moc,并将相应的依赖项和文件添加到项目中,用于生成和链接 moc 文件。

    5.6K20
    领券