开发者社区 问答 正文

Android SDK如何下载?



Part1 SDK下载


进入MHub控制台下载SDK: https://mhub.console.aliyun.com/#/download
如果使用Maven库方式不需要下载,方法见2.1中Maven库快速集成(远程同步)

Part2 准备工作



2.1 Android Studio开发(推荐方式)



1、手动集成


复制下载SDK文件夹下的.aar和.jar到libs目录下,在build.gradle文件中添加如下配置:添加本地libs地址,以便可以找到放置在libs中的aar文件:

  1. [backcolor=transparent]repositories [backcolor=transparent]{
  2. [backcolor=transparent]    flatDir [backcolor=transparent]{
  3. [backcolor=transparent]        dirs [backcolor=transparent]'libs'
  4. [backcolor=transparent]    [backcolor=transparent]}
  5. [backcolor=transparent]}

添加本地依赖:
  1. [backcolor=transparent]dependencies [backcolor=transparent]{
  2. [backcolor=transparent]    compile[backcolor=transparent]([backcolor=transparent]name[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]'alicloud-android-feedback-3.0.0'[backcolor=transparent],[backcolor=transparent] ext[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]'aar'[backcolor=transparent])
  3. [backcolor=transparent]    compile files[backcolor=transparent]([backcolor=transparent]'libs/alicloud-android-monitor-2.5.1.1_for_bc_proguard.jar'[backcolor=transparent])
  4. [backcolor=transparent]    compile files[backcolor=transparent]([backcolor=transparent]'libs/utdid4all-1.1.5.3_proguard.jar'[backcolor=transparent])
  5. [backcolor=transparent]    compile files[backcolor=transparent]([backcolor=transparent]'libs/alicloud-android-utils-1.0.3.jar'[backcolor=transparent])
  6. [backcolor=transparent]    [backcolor=transparent]//自行依赖support-v4
  7. [backcolor=transparent]}

ps: 别忘记添加support-v4的依赖。
如果遇到 UTDID 冲突可参考: 《阿里云-移动云产品SDK UTDID冲突解决方案》

2、Maven库快速集成(远程同步)


在Project根目录下build.gradle文件中配置maven库URL:
  1. [backcolor=transparent]allprojects [backcolor=transparent]{
  2. [backcolor=transparent]    repositories [backcolor=transparent]{
  3. [backcolor=transparent]        jcenter[backcolor=transparent]()
  4. [backcolor=transparent]        maven [backcolor=transparent]{
  5. [backcolor=transparent]            url [backcolor=transparent]'http://maven.aliyun.com/nexus/content/repositories/releases/'
  6. [backcolor=transparent]        [backcolor=transparent]}
  7. [backcolor=transparent]    [backcolor=transparent]}
  8. [backcolor=transparent]}

在对应的module下的build.gradle文件中添加对应依赖
  1. [backcolor=transparent]dependencies [backcolor=transparent]{
  2. [backcolor=transparent]    [backcolor=transparent]......
  3. [backcolor=transparent]    compile [backcolor=transparent]'com.aliyun.ams:alicloud-android-feedback:3.1.0@aar'
  4. [backcolor=transparent]    compile [backcolor=transparent]'com.aliyun.ams:alicloud-android-utdid:1.1.5.3'
  5. [backcolor=transparent]    compile [backcolor=transparent]'com.aliyun.ams:alicloud-android-ut:5.1.0'
  6. [backcolor=transparent]    compile [backcolor=transparent]'com.aliyun.ams:alicloud-android-utils:1.0.3'
  7. [backcolor=transparent]    [backcolor=transparent]......
  8. [backcolor=transparent]}


2.1 Eclipse开发


解压前面下载的SDK, 可以发现三个jar和一个aar, 分别做如下处理:[backcolor=transparent]jar包的处理
  1. jar包直接复制到项目的libs目录下
  2. 自行添加support-v4.jar到libs目录下

[backcolor=transparent]alicloud-android-feedback-XXX.aar的迁移
  1. 解压alicloud-android-feedback-XXX.aar到本地
  2. 解压得到的目录里创建一个libs文件夹,然后将classes.jar重命名为任何你想要的jar名称(比如:alisdk-feedback.jar), 然后复制到libs目录下
  3. 复制AndroidManifest.xml文件中所有的权限声明<uses-permission ..="" style="box-sizing: border-box;">以及所有的组件(Activity, Service, Receiver)声明到项目中的AndroidManifest.xml文件中
  4. 解压得到的目录里创建project.properties文件,添加android.library=true, 表示作为库项目使用
  5. 删除aapt和jni文件夹以及R.txt文件
  6. 一个Eclipse Library项目已经构建完成了,接下来只需打开Eclipse导入项目并在你的项目中配置引用这个项目即可

PS: 如果接入方接入了阿里系的其它sdk从而导致包冲突,, 则去掉冲突的依赖或者jar包即可

2.2 权限

  • 需要相册、相机和录音的权限
  • android 6.0需要开发者自己的方式实现权限获取,更低版本的使用声明即可

¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨

2.3 混淆配置


应用进行混淆打包时,应加入如下混淆配置:
  1. [backcolor=transparent]-[backcolor=transparent]keep [backcolor=transparent]class[backcolor=transparent] com[backcolor=transparent].[backcolor=transparent]taobao[backcolor=transparent].**[backcolor=transparent] [backcolor=transparent]{*;}
  2. [backcolor=transparent]-[backcolor=transparent]keep [backcolor=transparent]class[backcolor=transparent] com[backcolor=transparent].[backcolor=transparent]alibaba[backcolor=transparent].**[backcolor=transparent] [backcolor=transparent]{*;}
  3. [backcolor=transparent]-[backcolor=transparent]dontwarn com[backcolor=transparent].[backcolor=transparent]taobao[backcolor=transparent].**
  4. [backcolor=transparent]-[backcolor=transparent]dontwarn com[backcolor=transparent].[backcolor=transparent]alibaba[backcolor=transparent].**
  5. [backcolor=transparent]-[backcolor=transparent]keep [backcolor=transparent]class[backcolor=transparent] com[backcolor=transparent].[backcolor=transparent]ut[backcolor=transparent].**[backcolor=transparent] [backcolor=transparent]{*;}
  6. [backcolor=transparent]-[backcolor=transparent]dontwarn com[backcolor=transparent].[backcolor=transparent]ut[backcolor=transparent].**
  7. [backcolor=transparent]-[backcolor=transparent]keep [backcolor=transparent]class[backcolor=transparent] com[backcolor=transparent].[backcolor=transparent]ta[backcolor=transparent].**[backcolor=transparent] [backcolor=transparent]{*;}
  8. [backcolor=transparent]-[backcolor=transparent]dontwarn com[backcolor=transparent].[backcolor=transparent]ta[backcolor=transparent].**


Part3 开始使用



3.1 反馈组件初始化

  1. [backcolor=transparent]FeedbackAPI[backcolor=transparent].[backcolor=transparent]init[backcolor=transparent]([backcolor=transparent]application[backcolor=transparent],[backcolor=transparent] appkey[backcolor=transparent],[backcolor=transparent]appSecret[backcolor=transparent]);

参数说明:
  • application: Application对象
  • appkey: 阿里云上应用的唯一标识, 阿里云控制台可查询到
  • appSecret: 阿里云上应用的appSecret, 阿里云控制台可查询到

¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨

3.2 打开用户反馈界面


另起一个Activity打开用户反馈H5界面:
  1. [backcolor=transparent]FeedbackAPI[backcolor=transparent].[backcolor=transparent]openFeedbackActivity[backcolor=transparent]();

如果需要调用结果(例如显示加载中):
  1. [backcolor=transparent]FeedbackAPI[backcolor=transparent].[backcolor=transparent]openFeedbackActivity[backcolor=transparent]([backcolor=transparent]final[backcolor=transparent] [backcolor=transparent]Callable[backcolor=transparent] success[backcolor=transparent],[backcolor=transparent] [backcolor=transparent]final[backcolor=transparent] [backcolor=transparent]Callable[backcolor=transparent] fail[backcolor=transparent])

如果希望使用Fragment方式打开:
  1. [backcolor=transparent] [backcolor=transparent]FragmentManager[backcolor=transparent] fm [backcolor=transparent]=[backcolor=transparent] getSupportFragmentManager[backcolor=transparent]();
  2. [backcolor=transparent] [backcolor=transparent]final[backcolor=transparent] [backcolor=transparent]FragmentTransaction[backcolor=transparent] transaction [backcolor=transparent]=[backcolor=transparent] fm[backcolor=transparent].[backcolor=transparent]beginTransaction[backcolor=transparent]();
  3. [backcolor=transparent] [backcolor=transparent]final[backcolor=transparent] [backcolor=transparent]Fragment[backcolor=transparent] feedback [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]FeedbackAPI[backcolor=transparent].[backcolor=transparent]getFeedbackFragment[backcolor=transparent]();
  4. [backcolor=transparent] [backcolor=transparent]// must be called
  5. [backcolor=transparent] [backcolor=transparent]FeedbackAPI[backcolor=transparent].[backcolor=transparent]setFeedbackFragment[backcolor=transparent]([backcolor=transparent]new[backcolor=transparent] [backcolor=transparent]Callable[backcolor=transparent]()[backcolor=transparent] [backcolor=transparent]{
  6. [backcolor=transparent]      [backcolor=transparent]@Override
  7. [backcolor=transparent]            [backcolor=transparent]public[backcolor=transparent] [backcolor=transparent]Object[backcolor=transparent] call[backcolor=transparent]()[backcolor=transparent] [backcolor=transparent]throws[backcolor=transparent] [backcolor=transparent]Exception[backcolor=transparent] [backcolor=transparent]{
  8. [backcolor=transparent]                transaction[backcolor=transparent].[backcolor=transparent]replace[backcolor=transparent]([backcolor=transparent]R[backcolor=transparent].[backcolor=transparent]id[backcolor=transparent].[backcolor=transparent]content[backcolor=transparent],[backcolor=transparent] feedback[backcolor=transparent]);
  9. [backcolor=transparent]                transaction[backcolor=transparent].[backcolor=transparent]commit[backcolor=transparent]();
  10. [backcolor=transparent]                [backcolor=transparent]return[backcolor=transparent] [backcolor=transparent]null[backcolor=transparent];
  11. [backcolor=transparent]            [backcolor=transparent]}
  12. [backcolor=transparent] [backcolor=transparent]}[backcolor=transparent]/*success callback*/[backcolor=transparent],[backcolor=transparent] [backcolor=transparent]null[backcolor=transparent]/*fail callback*/[backcolor=transparent]);

PS:[backcolor=transparent] fragment的使用务必使用上述setFeedbackFragment的回调[backcolor=transparent] 在xml中声明fragment那种方式暂时不支持[backcolor=transparent] 包装fragment的activity务必调用FeedbackAPI.cleanFeedbackFragment();此时的Fragment是support-v4包中的Fragment
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨

3.3 获取反馈未读数

  1. [backcolor=transparent]FeedbackAPI[backcolor=transparent].[backcolor=transparent]getFeedbackUnreadCount[backcolor=transparent]([backcolor=transparent]IUnreadCountCallback[backcolor=transparent] callback[backcolor=transparent])

参数callback: onSuccess(int count)回调方法count指示当前未读消息数
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨

3.4 设置标题栏中“历史反馈”的字号


FeedbackAPI.setHistoryTextSize(20);单位为sp注:3.1.0版本中需要将控制台中“历史反馈”字号设置为0,此方法才会生效。
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨

3.5 设置返回按钮的图片


FeedbackAPI.setBackIcon(R.drawable.back);
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨

3.6 沉浸式任务栏


默认使用沉浸式任务栏,如需要关闭可以使用FeedbackAPI.setTranslucent(false);注:3.1.0版本中需要将控制台中沉浸式任务栏设置为true,此方法才会生效。
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨

3.7 设置默认联系方式


FeedbackAPI.setDefaultUserContactInfo(“13800000000”);
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨

3.8 语音反馈


需要使用3.1.0以上的版本的sdk,并且在控制台-系统配置/Mobile客户端配置/全局配置中将“是否开启语音”打开。
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨

Part4 Demo


Demo地址: https://github.com/aptentity/alicloud-android-demo.git
注意: demo工程中, FeedbackAPI.init被调用了多次, 这是为了能够达到实时更新配置的效果, 实际使用上建议只在Application中, 调用FeedbackAPI.init方法一次即可

展开
收起
猫饭先生 2017-10-24 10:28:21 3018 分享 版权
0 条回答
写回答
取消 提交回答