简体   繁体   English

适用于有限企业受众的Android应用程序

[英]Android application for limited enterprise audience

This is the Android version of App for limited or restricted audience 这是面向受限或受限受众App的Android版本

The project 该项目

I'm going to start a brand new project for one of our customers that will be deployed to our customer's suppliers to track on-field activity. 我将为我们的一个客户启动一个全新的项目,该项目将部署到我们客户的供应商以跟踪现场活动。 I am skilled enough on Java/Android development so this question is only about deployment. 我对Java / Android开发足够熟练,因此这个问题与部署有关。

Owned vs provided devices 拥有与提供的设备

Our customer will either provide a Samsung Galaxy Ace 4 device to the suppliers or will allow the supplier to use their own Android 4 smartphone without warranties from us. 我们的客户将向供应商提供Samsung Galaxy Ace 4设备,或者将允许供应商使用他们自己的Android 4智能手机,而无需我们保证。 Our customer currently has a Google for Business organization set up, but we cannot rely on that (see partial answer). 目前,我们的客户已经建立了Google for Business组织,但我们不能依靠它(请参阅部分答案)。

Technical (non functional) requirements 技术(非功能)要求

  • Ability to easily distribute application and updates across enterprise users. 能够在企业用户之间轻松分发应用程序更新。
  • Application should not be visible to the public 应用程序不应向公众公开
  • Application must be able to send crash reports so our team can inspect and investigate 应用程序必须能够发送崩溃报告,以便我们的团队可以检查和调查

The question is 问题是

Given the above " should not be visible to the public" statement, what is the most effective and efficient way to deploy an Android app targeted only for enterprise users? 鉴于上述“不应该向公众可见的”说法,什么是部署有针对性的只针对企业用户的Android应用程序的最有效的方式? I'll post a partial answer below. 我将在下面发布部分答案。 I'm asking others to enrich it with other possible means, including using Alpha/beta channels for which I don't have experience about 我要求其他人以其他可能的方式丰富它, 包括使用我没有经验的Alpha / beta渠道

Currently, limited-audience Android applications can be deployed like this: 当前,可以像这样部署受众有限的Android应用程序:

Publishing on Google Play as a free app for the public 作为免费的应用程序在Google Play上公开发布

Maybe adding a limitation to our country 也许给我们的国家增加了限制

Advantages: 好处:

  • Simplemost and well documented 最简单且有据可查
  • Auto deployes updates as soon as no new permission is enforced 没有强制执行新权限时,自动部署更新
  • Collects crash reports on Dashboard 在仪表板上收集崩溃报告

Disadvantages: 缺点:

  • Everyone can download the app 每个人都可以下载该应用
    • This has the disadvantage that some organizations may not be happy as publicly available code might in some cases help exploit vulnerabilites on remote systems (but it is almost impossible if app is well-written and obfuscated) 这样做的缺点是,某些组织可能不满意,因为在某些情况下公开的代码可能会帮助利用远程系统上的漏洞(但是,如果应用程序的编写和模糊处理几乎是不可能的)
  • If country limitation is enforced, imported devices won't download 如果强制执行国家/地区限制,则不会下载导入的设备

Distributing the APK direct URL 分发APK直接网址

Advantages: 好处:

  • The app remains private (enterprise users are surely not going to redistribute the app to friends as it's no use without enterprise credentials) 该应用程序保持私有状态(企业用户肯定不会将其重新分发给朋友,因为没有企业证书就没有用)

Disadvantages: 缺点:

  • No crash reports unless implementing a third-party library 没有崩溃报告,除非实现第三方库
  • No auto updates unless implemented by custom code or third party library. 除非通过自定义代码或第三方库实现,否则不会自动更新。 Implementing auto updates prevents the app from being published to Google Play in the future, even on a private channel, as Play prohibits apps that auto-update themselves via third-party channels. 实施自动更新会阻止该应用在将来(即使是在私人渠道上)发布到Google Play上,因为Play会禁止通过第三方渠道自动对其进行更新的应用。 Or, to be precise, the auto-update feature and Play publishing require, in order to exist together, maintaining two APKs 或者,确切地说,自动更新功能和Play发布需要在一起才能维护两个APK

Google Play for Enterprise Google Play企业版

As mentioned on this link , Google Play provides a private channel for app deploying for users withing a Google for Business organization. 该链接所述 ,Google Play为拥有Google for Business组织的用户提供了用于部署应用的专用渠道。 This is the perfect approach for applications that organization's users must use 这是组织用户必须使用的应用程序理想方法

Advantages: 好处:

  • Same as publishing for the public (simple, auto update, crash report) 与公开发布相同(简单,自动更新,崩溃报告)
  • Visible only to restricted audience 仅对受限观众可见

Disadvantages: 缺点:

  • Every device must come with a Google account within the organization, and it will be economically unfeasible to [request the Sysadmin to] enable Google accounts for every external supplier in our target organization 每个设备都必须在组织内拥有一个Google帐户,因此,[要求系统管理员]为目标组织中的每个外部供应商启用Google帐户在经济上是不可行的

Permanently in Alpha/Beta 永久位于Alpha / Beta

I haven't tested this yet, as it is also very tricky. 我还没有测试过,因为它也很棘手。 Basically, it involves using testing mode without ever going to production. 基本上,它涉及到无需生产就使用测试模式 With Google Play, one can deploy artifacts into Alpha (eg test server environment ) and Beta (a trick to point to production server environment ) without ever moving the app to Google Play's Production stage. 随着谷歌玩,一个可以部署到文物阿尔法(如测试服务器环境 )和Beta 不移动应用到谷歌Play的生产阶段(一招指向生产服务器环境 )。

All requires setting up special moderated Google+ groups 所有这些都需要建立特殊的Google+托管组

Potential advantages: 潜在优势:

  • Same as publishing to enterprise 与发布到企业相同

Disadvantages: 缺点:

  • Only telling users to subscribe to Google+ and joining a community 仅告诉用户订阅Google+并加入社区

From your requirements, I would suggest distributing the APK via a direct URL and integrating a service such as HockeyApp (see their Android SDK for more) to manage both the crash reports and app updates. 从你的要求,我会建议通过直接URL分配APK和集成服务,如HockeyApp(看到自己的Android SDK更多) 同时管理崩溃报告和应用程序更新。

  • "Ability to easily distribute application and updates across enterprise users" “能够在企业用户中轻松分发应用程序和更新的能力”

    Many services allow .apk files to be uploaded directly to their service for deployment. 许多服务允许.apk文件直接上载到其服务中以进行部署。 A direct download link is then generated for that build. 然后为该生成生成直接下载链接。

    Crash information is collected and updates are automatically displayed if the app implements the Android SDK provided by the service. 如果应用程序实现了服务提供的Android SDK,则会收集崩溃信息并自动显示更新。

  • "Application should not be visible to the public" “应用程序不应对公众可见”

    Services such as HockeyApp do not publicise direct download links publicly. HockeyApp之类的服务不会公开发布直接下载链接。 This link can therefore be distributed as required. 因此,可以根据需要分发此链接。

  • "Application must be able to send crash reports so our team can inspect and investigate" “应用程序必须能够发送崩溃报告,以便我们的团队可以检查和调查”

    Full stack-trace and device information is sent along with crash reports and can be viewed online by technicians. 完整的堆栈跟踪和设备信息与崩溃报告一起发送,并且技术人员可以在线查看。

From my experience there are a few pros and cons: 根据我的经验,有一些优点和缺点:

  • Pros : 优点

    • App distribution is super easy, as simple as visiting a website. 应用程序分发非常简单,就像访问网站一样简单。
    • Bug reports are comparable to those received through Google Play 错误报告与通过Google Play收到的报告相当
  • Cons : 缺点

    • Crash report's aren't sent automatically and updates aren't automatic 崩溃报告不会自动发送,更新也不会自动发送

      By default, updates and crashes appear as system dialogs prompting users to either send the crash report/update the app or cancel. 默认情况下,更新和崩溃会显示为系统对话框,提示用户发送崩溃报告/更新应用程序取消。 Ideally, no user interaction should be required to perform the desired actions. 理想情况下,不需要用户交互即可执行所需的操作。 I am sure it is possible but have not found relevant documentation for it. 我确定有可能,但尚未找到相关的文档。

    • Cost. 成本。 These services aren't free. 这些服务不是免费的。
    • Would require the removal of the service SDK from the app if uploaded to Play Store 如果上传到Play商店,则需要从应用中删除服务SDK

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 适用于Android的Java Enterprise Application - Java Enterprise Application for Android 将 Google 地球企业版集成到 Android 应用程序 - Integrating Google Earth Enterprise to Android application 如何在各种设备上测试 android 企业应用程序 - How to test android enterprise application on various devices 为每个企业部署具有不同配置的Android应用程序 - Deploying Android application with different configuration for each Enterprise 企业应用程序:Android与iOS应用程序 - Enterprise Application : Android vs iOS applications Firebase Android观众 - Firebase android audience Android / IPhone平台上基于活动同步的企业应用程序 - Active sync based Enterprise application on Android/IPhone platform 如何将 Samsung Knox SDK 与您的企业 Android 应用程序集成 - How to Integrate Samsung Knox SDK with your Enterprise Android Application 企业 Android 应用程序配置 - 应用程序限制 - 未按预期工作 - Enterprise Android App Config - Application Restrictions - Not working as expected Facebook受众网络 - (#606)申请被拒绝 - Facebook Audience Network - (#606) Application is rejected
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM