发布谷歌市场 要求和注意事项

工程配置

1. targetSdkVersion=31及以上, minSdk 21

2. AndroidManifest.xml只能配置这些权限。

基础权限


    
    
    
    
    
    
    
    

业务包

   
    
    
    
    
    
    
    
    
    
    
    
    
    
    
  

3. 启动页面权限

申请权限


 Manifest.permission.READ_CONTACTS,
            Manifest.permission.WRITE_EXTERNAL_STORAGE,
            Manifest.permission.READ_EXTERNAL_STORAGE,
            Manifest.permission.CAMERA,
            Manifest.permission.ACCESS_COARSE_LOCATION,
            启动页面和权限页面都申请一下这些权限;但是不用强制授权

引起下架的代码

webView

onReceivedSslError  不用实现、就是程序中不要使用 onReceivedSslError方法

public class WebViewClient {

  	public void onReceivedSslError(WebView view, SslErrorHandler handler,
  			SslError error) {
  		
  	}
  }

.android:requestLegacyExternalStorage="true" 不能配置

兼容android10 android11 android12 android13

MANAGE_EXTERNAL_STORAGE 这个权限不能注册

sdcard 内容读取的时候使用注意兼容性

照相机拍照实现效果;

  1. 兼容android 5.0及以后所有版本
    
  2. 方向调整,相机支持前后摄像头切换
    
  3. 需要写压缩逻辑代码
    
  4. 存储读取没有版本问题
    

权限合并问题

检查引入危险权限依赖工程的权限合并到AndroidManifest.xml中

引入一个http成熟使用框架;

1.支持配置header和params,上传文件。
2支持参数形式请求,
3支持application/json数据上传。

实现网络请求的loading (类似progressDialog)

带webview的activity不能用

android:exported="true"

WebView 的问题

  1. LollipopFixedWebView 参考链接 此写法不可用
LollipopFixedWebView会引起哥伦比亚comppay无法选中银行卡

  1. 拦截操作推荐使用
 @Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
}

域名问题

正式环境下:本包只能出现自己包的域名

  1. 推荐其他产品
  2. 多产品logo
  3. 身份证图片等
  4. 人脸图片
  5. 等所有涉及服务器
  6. 正式包不要在代码中出现测试环境的ip等

开源库

避免国内大公司框架buggly,umeng等
避免注解类型(例如面向切面Aop,(AspectJ)等)
避免热更新能力
避免自动更新apk权限及代码

开源问题库(避免使用)

  1. AndPermission link

三方账号

google-services.json

自己创建个文件把文字粘贴一下,避免文件哈希值相同

字符串

尽量避免代码在扫描阶段因为字符串判断重复
避免直接把蓝湖或者原型中的文字粘贴到代码上。
尽可能的做个加密方式,使代码中的字符串加密解密而成
例如蓝湖中是name,代码中nxm12e ,渲染或使用的时候还是name。

涉及部分
1.string.xml
2.id和文件的命名
3.公用账号反馈sdk。密钥

https

  1. 避免使用不校验证书操作,不可设置跳过证书校验等方式

WebView 兼容问题要求

  1. WebView: 物理键返回和左上角后退键支持webview url后退。右上角必须加关闭按钮,关闭整个webview页面(没有设计的问产品或UI要下)
  2. scheme:支持非http或非https的协议能用系统浏览器打开
避免出现err_unknown_url_scheme 问题
  1. googleplay兼容:支持打开googleplay WebView url以这个("https://play.google.com/store/apps/details?id=")开头的链接用系统浏览器打开
  2. 设置兼容,最少添加一下设置。其他设置按自己需要添加
settings.setDomStorageEnabled(true);//是否支持 Local Storage
settings.setJavaScriptEnabled(true);//支持JavaScript
settings.setUseWideViewPort(true);//使Webview具有普通的视口(例如普通的桌面浏览器)
settings.setLoadWithOverviewMode(true);//加载完全缩小的WebView
settings.setSupportZoom(true);// 设置可以支持缩放
settings.setBuiltInZoomControls(true);// 设置启用缩放功能
settings.setDisplayZoomControls(true);//显示缩放控制按钮

5.添加打开系统浏览器开关。判断支付是否用系统浏览器打开

获取用户手机信息(大json采集)

  1. 防止ANR。需要开线程采集用户信息
  2. 防止carsh。根节点下每个大节点。try{]catch()。防止用户信息。部分崩溃了之后下面的继续还能采集。尽可能多的采集数据。
  3. 对采集代码中,类型抽取,(例如String转int等)。多进行判断,捕获等操作。
  4. 数据bean 不要用注解的方式。我们需要用混淆的方式写的;用注解的方式更容易暴漏出明文,被google 发现。
  5. 这个数据上传结果需要卡流程。必须确保数据上传到服务器成功之后才能进行下面的操作
  6. 严格意义上,不允许出现没有大json数据的订单。

异常捕获问题

不要影响三方crash 采集

你可能感兴趣的:(java,android,上架谷歌)