Google Play(原名Android Market)——谷歌于2008年10月22日推出的Android操作系统官方数字应用商店。该商店可在全球超过39亿台活跃Android设备上使用,使其成为所有应用分发平台中覆盖范围最广的。根据StatCounter(2025)的数据,Android占据全球移动操作系统市场72.3%的份额,绝大多数应用通过Google Play分发。对于开发者而言,在Google Play发布是将应用送达Android用户的主要方式。
要点
Google Play——来自谷歌的数字分发平台,集应用商店、游戏、电影、书籍和音乐于一体。该平台于2008年10月22日以Android Market名称推出,于2012年3月更名为Google Play。与苹果的App Store不同,Google Play不是安装Android应用的唯一渠道——用户可以从第三方来源安装APK(侧载),使用替代商店(Samsung Galaxy Store、Amazon Appstore、F-Droid),但大多数用户使用Google Play。
根据Google I/O 2026的数据,Google Play的月活跃用户超过28亿,来自190多个国家。可用应用数量——超过320万。应用平均价格低于App Store——许多开发者采用免费模式搭配广告或应用内购买。Google Play还包括平板电脑(大屏应用)、Wear OS、Android TV、Android Auto和Chromebook专区。
Google Play提供Android独有的工具:Google Play Protect——内置防病毒软件,在安装前后检查每个应用;Android Vitals——应用性能分析(ANR、崩溃率、启动时间);Google Play Integrity——用于验证设备和应用真实性的API(替代SafetyNet Attestation)。Play Integrity对于处理敏感数据和支付的应用是强制性的。
Google Play Console——开发者在Google Play中管理应用的核心工具。访问地址为play.google.com/console。开始需要使用开发者账户(一次性付费$25)和身份验证。Play Console提供完整的应用管理周期:从上传第一个AAB到销售分析和崩溃报告。
Play Console的主要部分:Dashboard——所有应用的总体统计(安装量、卸载量、崩溃数、评级、收入);Release——版本和轨道管理(Production、Open Beta、Closed Beta、Internal Testing);Growth——推广工具(Google Ads、Promo Codes、Store Listing Experiments);Quality——Android Vitals(ANR率、崩溃率、启动时间、渲染时间);Monetization——产品、订阅、Google Play Pass配置;Users & Permissions——团队访问管理。
测试轨道Google Play——与App Store的关键区别。Internal Testing——最多100名测试者,无需审核,更新即时发布。Closed Testing(Alpha)——最多100名测试者,需要审核。Open Testing(Beta)——不限测试者数量,应用在Google Play中对所有注册测试的用户可用。建议先在Internal Testing中发布应用,然后在Closed/Open Beta中,最后在Production中发布。
// Google Play Billing Library 6.x — 检查订阅
import com.android.billingclient.api.BillingClient
import com.android.billingclient.api.BillingClientStateListener
import com.android.billingclient.api.BillingFlowParams
import com.android.billingclient.api.PurchasesUpdatedListener
import com.android.billingclient.api.QueryProductDetailsParams
import kotlinx.coroutines.tasks.await
class PlayBillingManager(
private val context: Context
) {
private val billingClient = BillingClient.newBuilder(context)
.setListener(purchasesUpdatedListener)
.enablePendingPurchases()
.build()
private val purchasesUpdatedListener = PurchasesUpdatedListener { billingResult, purchases ->
if (billingResult.responseCode == BillingClient.BillingResponseCode.OK && purchases != null) {
// 购买成功 — 处理购买记录
purchases.forEach { purchase ->
handlePurchase(purchase)
}
}
}
suspend fun startConnection() {
billingClient.startConnection(object : BillingClientStateListener {
override fun onBillingSetupFinished(result: BillingResult) {
if (result.responseCode == BillingClient.BillingResponseCode.OK) {
// 客户端已准备好工作
}
}
override fun onBillingServiceDisconnected() {
// 重新连接
}
})
}
suspend fun querySubscription(productId: String): ProductDetails? {
val params = QueryProductDetailsParams.newBuilder()
.setProductList(
listOf(
QueryProductDetailsParams.Product.newBuilder()
.setProductId(productId)
.setProductType(BillingClient.ProductType.SUBS)
.build()
)
)
.build()
val result = billingClient.queryProductDetails(params)
return result.productDetailsList?.firstOrNull()
}
private fun handlePurchase(purchase: Purchase) {
// 在服务器上验证购买
// 1. 将purchaseToken发送到您的服务器
// 2. 服务器通过Google Play Developer API验证
// 3. 成功时 — 解锁功能
val purchaseToken = purchase.purchaseToken
val productId = purchase.products.firstOrNull()
println("Purchase: $productId, Token: $purchaseToken")
}
}PlayBillingManager类演示了使用Google Play Billing Library 6.x的工作:建立与BillingClient的连接,请求产品详情(订阅或一次性购买),通过PurchasesUpdatedListener处理购买结果。验证应在服务器上通过Google Play Developer API使用purchaseToken进行——切勿仅信任本地验证,因为购买可能被伪造。
在Google Play发布——一个多阶段流程,包括账户注册、应用准备、在Play Console中设置、上传AAB、通过检查和发布。与App Store相比,流程不那么正式:谷歌依赖自动化检查(Play Integrity,通过Google Play Protect扫描恶意软件),而不是对每个应用进行手动审核。
发布需要Google账户和在Google Play Console中注册,费用为$25(一次性付费)。付款后需要进行身份验证:上传身份证明(护照或驾照)和确认地址。验证过程从24小时到2周不等。未经验证,应用不会在Production轨道中发布。
自2021年8月起,谷歌推荐AAB(Android App Bundle)格式——新应用不再接受APK。AAB允许Google Play为每种设备类型生成优化的APK(不同的ABI、屏幕、语言),将下载大小减少15-35%。构建通过Android Studio进行:Build → Build Bundle(s) / APK(s) → Build Bundle(s)。AAB通过Play App Signing签名——谷歌在其服务器上保存签名密钥。
Store Listing——应用在Google Play中的页面:名称(50个字符)、简短描述(80个字符)、完整描述(4000个字符)、截图(至少2张,最多8张;手机5英寸、6.5英寸,平板7英寸以上)、图标(512x512)、特色图形(1024x500)、宣传视频(YouTube)。简短描述对Google Play搜索最重要——被索引并显示在结果中。完整描述也被索引,但对搜索不那么重要。
上传AAB后,开发者选择轨道:Internal Testing(最多100名测试者,无需审核)、Closed Testing(Alpha,最多100人,需要审核)、Open Testing(Beta,不限人数,需要审核)或Production。建议从Internal Testing开始——在真实设备上测试,然后Closed Testing进行更广泛的验证,最后才是Production。对于Open Testing和Production,新账户需要在过去14天内在Closed Testing中至少有12小时和20名测试者(Google Play 2024政策)。
发布后,应用在1-24小时内出现在Google Play中。首次更新可能会被全面检查。Google Play通过Google Play Protect自动扫描每个应用的恶意代码。如果检测到威胁,应用可能会被下架,开发者账户可能被封锁。
Google Play对发布和更新应用的targetSdkVersion设定了强制性要求。每年谷歌都会提高最低targetSdk,以确保应用使用最新的安全行为变更。自2024年8月起,最低targetSdk为API 33;自2025年8月起为API 34;自2026年8月起为API 35(Android 15)。
不符合要求的应用将被阻止——无法发布或更新。已发布且targetSdk较低的应用仍可在商店中运行,但更新需要提高targetSdk。Google Play Console会在提高门槛前90天发出警告。许多开发者将更新推迟到最后一刻,这在需要紧急修复错误时会造成应用被封锁的风险。
提高targetSdkVersion需要检查旧版和新版targetSdk之间引入的所有行为变更。例如,从API 33(Android 13)迁移到API 35(Android 15)时需要检查:Foreground Service Types(API 34)——在清单中强制声明服务类型;Privacy Sandbox(API 35)——对广告标识符的限制;PhotoPicker(API 34+)——将直接访问相册替换为系统选择器;后台服务的新限制。每个行为变更都可能需要修改代码。
| 日期 | 最低targetSdk | Android版本 | 关键行为变更 |
|---|---|---|---|
| 2022年8月 | 31 | Android 12 | Foreground Service Notification |
| 2023年8月 | 33 | Android 13 | POST_NOTIFICATIONS |
| 2024年8月 | 33 | Android 13 | —(门槛未提高) |
| 2025年8月 | 34 | Android 14 | Foreground Service Types |
| 2026年8月 | 35 | Android 15 | Privacy Sandbox |
Google Play Developer API(REST)可以自动化检查账户中所有应用的targetSdk。applications.get方法返回关于targetSdkVersion的信息。建议在截止日期前120天通过API设置监控,以获取需要更新的应用列表。对于代码量大的应用,工作量评估——从2天到2周用于处理行为变更。
// 在应用代码中检查targetSdk合规性
import android.os.Build
class TargetSdkCompliance {
// Google Play在2026年要求的最低targetSdk
companion object {
const val REQUIRED_TARGET_SDK = 35
}
// 检查:是否需要处理API 34的行为变更?
fun checkForegroundServiceTypes(targetSdk: Int): Boolean {
// Foreground Service Types对于targetSdk >= 34是强制性的
return targetSdk >= 34
}
// 检查:是否需要处理Privacy Sandbox(API 35)?
fun checkPrivacySandbox(targetSdk: Int): Boolean {
return targetSdk >= 35
}
// 构建前检查合规性
fun validateCompliance(targetSdk: Int): List<String> {
val warnings = mutableListOf<String>()
if (targetSdk < REQUIRED_TARGET_SDK) {
warnings.add("targetSdk $targetSdk低于要求的$REQUIRED_TARGET_SDK")
}
if (targetSdk >= 34) {
// 确保所有前台服务在清单中都有type
warnings.add("检查:所有前台服务在AndroidManifest.xml中声明了type")
}
if (targetSdk >= 35) {
warnings.add("检查:Privacy Sandbox、Advertising ID限制")
}
return warnings
}
}TargetSdkCompliance类在构建前检查targetSdk合规性。validateCompliance方法返回关于指定targetSdk所需行为变更的警告列表。在CI/CD中使用此类代码,可在将构建提交到Google Play Console前自动检查合规性。在IT Sectr,我们在一个因遗漏targetSdk而项目被封锁后,在CI中实施了此类检查。
在Google Play盈利包括多种模式:付费下载、应用内产品(一次性购买:消耗型——游戏货币;非消耗型——移除广告)、订阅(通过Google Play Billing的自动续订订阅)、广告(AdMob、Google Ad Manager、第三方网络)和Google Play Pass(应用包订阅,收入根据使用时间在开发者之间分配)。
Google Play Billing Library(2026年当前版本为7.x)——在应用内销售数字商品的强制工具。数字商品禁止使用替代支付系统(例外——韩国、印度、欧盟数字市场法案)。Billing Library 7.x需要从基于SKU的购买迁移到基于产品的模型(ProductDetails替代SkuDetails),并支持Kotlin Coroutines和Flow进行异步操作。
Google Play佣金:标准30%,前$100万年收入为15%(类似于Apple Small Business Program)。达到$100万门槛后,佣金在当年剩余时间恢复为30%。订阅:第一年30%,第二年起15%(类似于App Store)。对于Google Play Pass计划——收入根据参与度(Pass订阅者使用应用的时间)分配,而非固定佣金。
| 盈利模式 | 谷歌佣金 | 何时使用 |
|---|---|---|
| 付费下载 | 30%(前$100万15%) | 无额外购买的高级应用 |
| 应用内产品(消耗型) | 30%(前$100万15%) | 游戏货币、生命、增益道具 |
| 订阅(自动续订) | 第一年30%,之后15% | SaaS、流媒体、内容 |
| 广告(AdMob) | 0% | 带广告的免费应用 |
| Google Play Pass | 按参与度 | 无广告和IAP的应用 |
来自谷歌的AdMob——主要的广告盈利工具。支持横幅广告、插屏广告、原生广告、奖励广告(rewarded)。Firebase的Google Analytics与AdMob集成,用于跟踪广告到目标操作的转化。从Android 14+(API 34)起,需要Google Play Services for Ads 22.0+和Handling Ad Responses API以符合Privacy Sandbox。广告盈利——0%佣金——是拥有大量受众的免费应用的热门选择。
Google Play审核(Google Play Policy Review)与App Store不同——谷歌依赖自动化检查和选择性手动审核,而非对每个应用进行100%手动检查。自动化系统扫描AAB/APK中的恶意代码、政策违规(间谍软件、欺骗行为、SDK违规)以及不符合targetSdk要求的行为。发现违规时,应用可能被拒绝或下架。
Google Play发布Developer Program Policies——涵盖内容、应用行为、盈利和隐私的一套规则。主要部分:Restricted Content(暴力、仇恨、非法活动)、Deceptive Behavior(虚假声明、模仿其他应用)、Monetization and Ads(诚实广告、符合IAP政策)、Privacy and Security(数据收集、加密)、Store Listing and Promotion(准确描述、正确分类)。
谷歌积极打击间谍软件和欺骗性SDK。在2024-2025年,谷歌删除了超过150万违反隐私政策的应用。特别关注——在用户不知情的情况下收集数据的SDK(未经同意跟踪位置、读取联系人和短信)。在发布前,检查所使用的SDK是否符合Google Play Policy——许多流行的SDK(例如某些广告网络)已因政策违规被屏蔽。
申诉流程:如果应用被拒绝,开发者会在Play Console中收到带有原因和建议的通知。可通过Play Console→Policy→Appeals提出申诉。审查时间——最长7天。同一政策的重复违规会导致警告(strike),三次违规——导致开发者账户被封锁。恢复被封锁的账户是一个极其困难的过程,需要书面申请和违规纠正的证据。
| 违规类型 | 处罚 | 恢复 |
|---|---|---|
| 违反内容政策 | 应用下架 | 修复后重新发布 |
| 欺骗行为 | 下架 + 警告(strike) | 申诉,修复代码 |
| 违反IAP政策 | 封锁更新 | 实施Google Play Billing |
| 恶意软件/间谍软件 | 立即封锁账户 | 几乎无法恢复 |
| 累计3次警告 | 永久封锁账户 | 仅通过谷歌法律部门 |
为最小化风险:使用Google Play Integrity API验证请求的真实性,实施Data Safety Section(自2023年起强制要求——说明所有收集的数据和收集目的),检查所有SDK是否符合Developer Program Policies,使用Play Console Policy Insights在发布前跟踪潜在违规。在IT Sectr开发中,我们在Production发布前通过internal testing在真实设备上检查每个应用。
常见问题
在Google Play发布需要一次性注册开发者账户——$25。与App Store($99/年)不同,Google Play不收取年费。每个应用的上传没有额外费用。销售佣金:标准30%,前$100万年收入为15%。教育机构可能有折扣和例外。
Google Play要求targetSdkVersion不比当前API级别早超过1年。2026年最低targetSdk为API 35(Android 15)。targetSdk低于35的新应用和更新将被阻止。要求每年提高。主要目标是通过行为变更(Scoped Storage、POST_NOTIFICATIONS、Foreground Service Types、Privacy Sandbox)确保安全。
Google Play审核对于新应用需要几小时到2天。更新在1-12小时内通过。谷歌使用自动化检查(恶意软件扫描、Play Integrity)配合选择性手动审核。对于新账户,在Production发布前14天内需要在Closed Testing中有20+名测试者。
Google Play Console——用于管理Google Play中应用的网络门户。包括:发布管理(Production、Beta、Alpha、Internal轨道)、Android Vitals(崩溃、ANR、启动时间)、Store Listing、应用内产品和订阅管理、收入和安装分析、回复评论、与Google Ads集成。访问地址为play.google.com/console。
在Google Play盈利:付费下载、应用内产品(通过Google Play Billing的一次性购买)、订阅(自动续订)、广告(AdMob——0%佣金)、Google Play Pass(按参与度获得收入)。数字商品必须使用Google Play Billing Library 7.x。佣金30%(前$100万收入为15%)。实物商品和服务通过第三方支付系统支付,无谷歌佣金。
总结
我们将开发一款交钥匙移动应用程序
IT Sectr自2017年以来为初创企业和企业打造iOS和Android应用程序。我们将为您提供咨询并提出最佳解决方案。