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

Android 11 应用兼容性适配,看这篇就够了

它改造了获取app信息的接口,且封堵了SDK接口以外变相获取app安装状态的途径。如果app一定需要获取某些app的信息,必须在清单文件中声明“需要交互”的app,或者声明特定的权限以越过拦截。...这些非 SDK 接口用于在 Android 平台上执行内部测试。应用可以继续使用灰名单中的测试 API,但任何新的测试 API 都会包含在黑名单中。...2 兼容性影响 用户无法在搭载Android 11的设备上安装或更新仅通过APK签名方案v1 签名的应用。...3 适配指导 1 APK签名方案验证 您可以在命令行中使用AndroidStudio或 apksigner工具,验证您的应用是否已使用APK签名方案v2或更高版本进行签名。...,除了使用APK签名方案v2或更高版本为您的APK签名之外,您还应继续使用APK签名方案v1进行签名。

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

    手摸手教你如何轻松发布私有 App

    2017 年 1 月的时候,Google 从 Twitter 收购了名为 Fabric 的开发者套件,其中包含了可以自动化截图、管理测试版部署、签名并将 App 推送到 Play Store 的 fastlane...Managed Google Play 是为企业版 Android 用户提供私有应用程序支持的应用商店。私有 App 只会被分发给内部用户而不会被大众获取。...配置私有 App 功能 重要:在创建用于调试或产品的 keystore 时,请确保使用最佳的 app 签名方式。千万别丢失您用于生产的 keystore!...使用 API — 有点复杂 如果 你不打算为了管理你的 App 做一个基于 Web 的前端页面,你可以使用下面的 node 脚本以及 Firebase 的功能来快速获取你的开发者账户 ID。...Google 提供了 Java、Python、C# 和 Ruby 的用户端库文件。

    3.2K00

    自动化-Appium-第一个Demo-原生(Java版)

    "); // `.ipa`或`.apk`文件所在的本地绝对路径或者远程路径,也可以是一个包括两者之一的`.zip` // Appium会先尝试安装路径对应的应用在适当的真机或模拟器上 // 针对Android...// Appium会先尝试安装路径对应的应用在适当的真机或模拟器上 // 针对Android,如果你指定`app-package`和`app-activity`的话,那么就可以不指定..."); // `.ipa`或`.apk`文件所在的本地绝对路径或者远程路径,也可以是一个包括两者之一的`.zip` // Appium会先尝试安装路径对应的应用在适当的真机或模拟器上 // 针对Android...// Appium会先尝试安装路径对应的应用在适当的真机或模拟器上 // 针对Android,如果你指定`app-package`和`app-activity`的话,那么就可以不指定...获取指定的元素信息。

    2.2K30

    Android Studio 2.2新特性:新布局、Firebase、OpenJDK以及Java 8

    Android Studio 2.2所带来的增强涉及到开发过程的所有阶段——设计、开发、构建与测试,其中包含新的Constraint布局、布局编辑器(Layout Editor)、Firebase插件、...布局编辑器:用户界面工具,能够以拖拽的方式设计应用的布局,其中还包含了一个属性编辑器。...开发 Firebase服务:AdMob、分析、认证和通知能够非常容易地集成到已有或全新的应用中。 示例代码浏览器:查找示例代码,在GitHub上展现了变量、方法或类型是如何使用的。...测试 Espresso测试记录器(beta):记录与UI的交互,从而可以在本地的Espresso测试或Firebase上进行回放。 GPU调试器(beta):用于调试OpenGL ES应用。...APK分析器:提供APK中各种组件大小的信息。 Android Studio 2.2包含了稳定性问题的修正以及性能的提升。关于新特性的更多细节信息,大家可以查看AndroidStudio发布说明。

    2.9K40

    自动化-Appium-第一个Demo-混合(Java版)

    // Appium会先尝试安装路径对应的应用在适当的真机或模拟器上 // 针对Android,如果你指定`app-package`和`app-activity`的话,那么就可以不指定...// Appium会先尝试安装路径对应的应用在适当的真机或模拟器上 // 针对Android,如果你指定`app-package`和`app-activity`的话,那么就可以不指定....apk`文件所在的本地绝对路径或者远程路径,也可以是一个包括两者之一的`.zip` // Appium会先尝试安装路径对应的应用在适当的真机或模拟器上 // 针对Android,如果你指定`app-package...// Appium会先尝试安装路径对应的应用在适当的真机或模拟器上 // 针对Android,如果你指定`app-package`和`app-activity`的话,那么就可以不指定....apk`文件所在的本地绝对路径或者远程路径,也可以是一个包括两者之一的`.zip` // Appium会先尝试安装路径对应的应用在适当的真机或模拟器上 // 针对Android,如果你指定`app-package

    2.6K30

    自动化-Appium-​第一个Demo-混合(Python版)

    `.zip` # Appium会先尝试安装路径对应的应用在适当的真机或模拟器上 # 针对Android,如果你指定`app-package`和`app-activity`的话,那么就可以不指定`app`...开始测试运行在任何模拟运行,或设备插入 desired_caps['noReset'] = True # 执行完整的重置 # Android 停止应用程序,清除应用程序数据并在测试后卸载apk # IOS...会先尝试安装路径对应的应用在适当的真机或模拟器上 # 针对Android,如果你指定`app-package`和`app-activity`的话,那么就可以不指定`app` # 例如/abs/path/...开始测试运行在任何模拟运行,或设备插入 desired_caps['noReset'] = True # 执行完整的重置 # Android 停止应用程序,清除应用程序数据并在测试后卸载apk # IOS...# `.ipa`或`.apk`文件所在的本地绝对路径或者远程路径,也可以是一个包括两者之一的`.zip` # Appium会先尝试安装路径对应的应用在适当的真机或模拟器上 # 针对Android,如果你指定

    2.6K20

    AndroidStdio1_2

    与JAR文件不同,AAR文件可以包含Android资源和一个清单文件,这样除了Java类与方法外,还可以捆绑布局和可绘制对象等共享资源。...元素内声明指定的java类 ? 指定多个值,不是一个元素多个值而是一直重复.带自动补全.好评 权限是一种限制,用于限制对部分代码或设备数据的访问。...增加限制是为了保护可能被误用以致破坏或损害用户体验的关键代码。 如果应用需要访问受权限保护的功能,就必须在清单中使用元素声明应用需要该权限。...用于创建此证书的密钥称为应用签名密钥。密钥库是一种包含一个或多个私钥的二进制文件。 每个应用在其整个生命周期内必须使用相同的证书,以便用户能够以应用更新的形式安装新版本。...为了解决这个问题就出现了多渠道打包,一份源码给不同的市场编译出不同的APK文件,每个APK文件中都包含了当前市场的渠道码(自己指定一个字符串)。

    1.8K20

    自动化-Appium-第一个Demo-原生(Python版)

    `.zip` # Appium会先尝试安装路径对应的应用在适当的真机或模拟器上 # 针对Android,如果你指定`app-package`和`app-activity`的话,那么就可以不指定`app`...开始测试运行在任何模拟运行,或设备插入 desired_caps['noReset'] = True # 执行完整的重置 # Android 停止应用程序,清除应用程序数据并在测试后卸载apk # IOS...会先尝试安装路径对应的应用在适当的真机或模拟器上 # 针对Android,如果你指定`app-package`和`app-activity`的话,那么就可以不指定`app` # 例如/abs/path/...开始测试运行在任何模拟运行,或设备插入 desired_caps['noReset'] = True # 执行完整的重置 # Android 停止应用程序,清除应用程序数据并在测试后卸载apk # IOS...开始测试运行在任何模拟运行,或设备插入 desired_caps['noReset'] = True # 执行完整的重置 # Android 停止应用程序,清除应用程序数据并在测试后卸载apk # IOS

    2.2K20

    扩大Android攻击面:React Native Android应用程序分析

    在这篇文章中,我们将介绍如何根据APK文件来获取到React Native JavaScript,并根据这些信息分析出API以及其他敏感信息。...一般来说,在对Android应用程序进行逆向分析时,我们需要使用dex2jar来对APK文件进行反编译,然后使用JD-GUI来进行下一步分析。...:【点我获取】 下载了上面这个APK文件之后,使用下列命令将其提取至一个新的文件夹中: unzip React\ Native\ Examples_v1.0_apkpure.com.apk -d ReactNative...在这个文件夹中,找到一个名为“index.android.bundle”的文件,这个文件将包含所有的React JavaScript代码。...映射文件 如果你能找到一个名叫“index.android.bundle.map”的文件,你就可以直接分析源代码了。map文件中包含了源码映射关系,可以帮助我们映射出代码中的识别符。

    9.9K30

    Android11 (API30)适配

    它改造了获取app信息的接口,且封堵了SDK接口以外变相获取app安装状态的途径。如果app一定需要获取某些app的信息,必须在清单文件中声明“需要交互”的app,或者声明特定的权限以越过拦截。...这些非 SDK 接口用于在 Android 平台上执行内部测试。应用可以继续使用灰名单中的测试 API,但任何新的测试 API 都会包含在黑名单中。...2 兼容性影响 用户无法在搭载Android 11的设备上安装或更新仅通过APK签名方案v1 签名的应用。...3 适配指导 1 APK签名方案验证 您可以在命令行中使用AndroidStudio或 apksigner工具,验证您的应用是否已使用APK签名方案v2或更高版本进行签名。...,除了使用APK签名方案v2或更高版本为您的APK签名之外,您还应继续使用APK签名方案v1进行签名。

    8K11

    技术分享 | 想做App测试就一定要了解的App结构

    本文节选自霍格沃兹测试开发学社内部教材 app 的结构包含了 APK 结构和 app 页面结构两个部分 APK结构 APK 是 Android Package 的缩写,其实就是 Android 的安装包...通过将 APK 文件直接传到 Android 模拟器或 Android 手机中执行即可安装。...AndroidManifest.xml 文件 AndroidManifest.xml 文件是 Android 的清单文件,是每个应用都必须定义和包含的。...视图,是用户接口组件的基本构建块,它在屏幕中占用一个矩形区域,它是所有 UI 控件的基类,如一个按钮或文本框。View 负责图形界面渲染及事件处理。...例如在另一个视图的左侧或下方,或相对于父级区域的位置,例如在底部、左侧或中心对齐 帧布局(FrameLayout):坐标原点是屏幕的左上角,位置固定,只需为控件指定大小即可,用来显示一个单一的视图 绝对布局

    35930

    技术分享 | 想做App测试就一定要了解的App结构

    app 的结构包含了 APK 结构和 app 页面结构两个部分 APK结构 APK 是 Android Package 的缩写,其实就是 Android 的安装包。...通过将 APK 文件直接传到 Android 模拟器或 Android 手机中执行即可安装。...AndroidManifest.xml 文件 AndroidManifest.xml 文件是 Android 的清单文件,是每个应用都必须定义和包含的。...视图,是用户接口组件的基本构建块,它在屏幕中占用一个矩形区域,它是所有 UI 控件的基类,如一个按钮或文本框。View 负责图形界面渲染及事件处理。...例如在另一个视图的左侧或下方,或相对于父级区域的位置,例如在底部、左侧或中心对齐 帧布局(FrameLayout):坐标原点是屏幕的左上角,位置固定,只需为控件指定大小即可,用来显示一个单一的视图 绝对布局

    34420

    学(kao)习(bei)官方关于64k异常处理 ^_^

    规避 64K 限制前提 在将应用配置为支持使用 64K 或更多方法引用之前,我们应该采取措施减少应用代码调用的引用总数,包括由应用代码或包含的库定义的方法。...运行时,Dalvik 可执行文件分包 API 使用特殊的类加载器来搜索适用于方法的所有 DEX 文件(而不是仅在主 classes.dex 文件中搜索)。...因此,如果接收到 java.lang.NoClassDefFoundError,则必须使用构建类型中的 multiDexKeepFile 或 multiDexKeepProguard 属性声明它们,以手动将这些其他类指定为主...multiDexKeepFile 属性 在 multiDexKeepFile 中指定的文件应该每行包含一个类,并且采用 com/example/MyClass.class 的格式。...Application 子类(这样,只有适用于 API 级别 20 和更低版本的清单文件会扩展 MultiDexApplication 类或调用 MultiDex.install(this))。

    97520

    SAP最佳业务实践:FI–资产会计(162)-19定期处理-AFAB折旧过帐运行

    对于过帐日期,系统使用 正常期间的期间最后一天(无特定期间) 特定期间的会计年度最后一天 在定制中已定义用于过帐折旧的凭证类型 AF。在凭证类型的定制定义中,已使用内部编号分配指定编号范围03。...而对于每个折旧范围,您必须指定折旧是否过帐至成本中心和/或订单。从资产主记录中获取此信息且将其传输至财务会计作为附加科目分配。...重新启动 计划外过帐运行 列 出资产 激活 手工折旧清单 激活 测试运行 不激活 ?...在显示的屏幕中输入必需的数据。 字段名称 用户操作和值 注释 输出设备 或通过输入 locl 使用本地打印机> 开始时间 立即启动该作业。 ?...选择 刷新 或 F8更新信息。只要作业的状态为 已完成,就能选择您的作业并选择Spool。要从概览转到您的清单,请选择 F6。当生成此清单时,也会更新相关固定资产以包含已过帐的折旧。

    3.7K70

    精选Android中高级面试题 -- 终局之篇:高级干货

    参考回答:一个完整APK包含以下目录(将APK文件拖到Android Studio): META-INF/:包含CERT.SF和CERT.RSA签名文件以及MANIFEST.MF 清单文件。...assets/:包含应用可以使用AssetManager对象检索的应用资源。 res/:包含未编译到的资源 resources.arsc。 lib/:包含特定于处理器软件层的编译代码。...classes.dex:包含以Dalvik / ART虚拟机可理解的DEX文件格式编译的类。 AndroidManifest.xml:包含核心Android清单文件。...DexClassLoader支持加载指定目录(不限于内部)的dex/jar/apk文件 插件通信:通过给插件apk生成相应的DexClassLoader便可以访问其中的类,可分为单DexClassLoader...测试框架负责与服务器端api通信,由服务器端控制app上A/B版本的分布,可以实现指定的一组用户看到A版本,其它用户看到B版本。服务端会有相应的报表来显示A/B版本的数量和效果对比。

    1.3K20

    Firebase Remote Config

    ,以针对用户互动度、广告点击次数和收入等目标或针对可通过 Google Analytics(分析)进行衡量的任何自定义事件优化您的应用 运行 A/B 测试以改进您的应用 您可以结合使用 A/B...应用在获取服务器端值时所使用的逻辑与在获取应用内默认值时相同,因此无需编写大量代码 如需替换应用内默认值,您可以使用 Firebase 控制台或 Remote Config 后端 API 来创建与应用中使用的参数同名的参数...详情可见 搜索参数和条件 参数和条件限制 在 Firebase 项目中,最多可以有 2000个参数和500个条件。参数最多包含256个字符,且必须以下划线或英文开头,可以包含数字。...为下次启动加载新值 本次打开检索下载的值,下次打开APP生效 避免使用的加载策略 切勿在用户查看界面或与界面进行交互时更新或切换界面 切勿同时发送大量提取请求,这可能导致服务器限制您的应用。...服务器推送通知,携带信息中包含提示让用户更新 Remote Config 状态的信息 在客户端设置 Remote Config 状态 接收到推送通知后,设置本地现有 Remote Config 为旧版

    68210

    Android Study 之学(kao)习(bei)官方关于64k异常处理 ^_^

    规避 64K 限制前提 在将应用配置为支持使用 64K 或更多方法引用之前,我们应该采取措施减少应用代码调用的引用总数,包括由应用代码或包含的库定义的方法。...运行时,Dalvik 可执行文件分包 API 使用特殊的类加载器来搜索适用于方法的所有 DEX 文件(而不是仅在主 classes.dex 文件中搜索)。...因此,如果接收到 java.lang.NoClassDefFoundError,则必须使用构建类型中的 multiDexKeepFile 或 multiDexKeepProguard 属性声明它们,以手动将这些其他类指定为主...multiDexKeepFile 属性 在 multiDexKeepFile 中指定的文件应该每行包含一个类,并且采用 com/example/MyClass.class 的格式。...Application 子类(这样,只有适用于 API 级别 20 和更低版本的清单文件会扩展 MultiDexApplication 类或调用 MultiDex.install(this))。

    83410
    领券