• Android SDK 新版
  • Android SDK 旧版

1、点击下载最新SDK(当前版本3.0.3),并解压fraudmetrix-xxx.zip文件。解压后文件目录为:

  • fm-core-xxx
  • libs
    • fm-sdk-xxx.jar
    • armeabi
  • 注:同盾Android SDK支持Android 2.2(API Level 8)及以上系统。
  • 同盾Android SDK默认只提供armeabi架构的so,如果您的应用需要支持其他的cpu架构,
    或者已经存在其他架构的第三方so,则需要将对应的架构也引入工程中,否则将可能引起设备指纹获取异常、crash等未知问题。

点击下载fraudmetrix-cpuabi-xxx.zip,该文件包含:

  • armeabi-v7a
  • arm64-v8a
  • x86
  • x86_64
  • mips

2、导入设备指纹SDK。
     Eclipse环境下:
     

  • libs目录中的fm-sdk-xxx.jar拷贝到libs目录下;
  • armeabi文件夹拷贝到libs目录下(如果您需要支持其他cpu架构,请一并拷贝)
  • fm-core-xxx拷贝到本地工程assets目录下
  • 在Eclipse中右键工程根目录,选择Properties -> Java Build Path -> Libraries,然后点击Add JARs...选择指向jar的路径,并且在Order and Export中勾选fm-sdk-xxx.jar,最后点击OK,即导入成功。(最新的ADT工具会自动导入libs目录下的jar包,故该步骤可以省略)

Android Studio/IDEA环境下:
     方式1:默认jni目录
     

  • libs目录中的fm-sdk-xxx.jar拷贝到本地工程/app/libs子目录下;
  • armeabi拷贝到/app/src/main/jniLibs/目录下(如果您需要支持其他cpu架构,请一并拷贝)
  • fm-core-xxx拷贝到本地工程/app/src/main/assets/目录下

方式2:定义jni目录
     

  • libs目录中的fm-sdk-xxx.jar拷贝到本地工程/app/libs子目录下;
  • armeabi文件夹拷贝到/app/libs目录下(如果您需要支持其他cpu架构,请一并拷贝)
  • 将目录中的fm-core-xxx拷贝到本地工程/app/src/main/assets/目录下
  • 修改module下的build.gradle,添加以下部分代码:
复制代码

 
 
 
 
 
1
apply plugin: 'com.android.application'
2
3
android {
4
    //******* 其他配置 ********//
5
    //配置SO文件
6
    sourceSets {
7
        main {
8
            jniLibs.srcDirs = ['libs']
9
        }
10
    }
11
}
12
13
dependencies {
14
    //导入sdk
15
    compile fileTree(include: ['*.jar'], dir: 'libs')
16
    testCompile 'junit:junit:4.12'
17
    compile 'com.android.support:appcompat-v7:23.2.0'
18
}
 
 

3、配置AndroidManifest.xml文件
     manifest的配置主要包括添加权限,声明合作方标识(PARTNER_CODE)两部分,代码示例如下:

复制代码

 
 
 
 
 
1
<manifest>
2
    <uses-sdk android:minSdkVersion="8"/>
3
    <!-- 必选权限 -->
4
    <uses-permission android:name="android.permission.INTERNET" />
5
    <uses-permission android:name="android.permission.BATTERY_STATS" />
6
    <uses-permission android:name="android.permission.BLUETOOTH" />
7
    <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
8
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
9
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
10
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
11
    <!-- 可选权限,不声明此部分权限将放弃部分设备信息的采集,对数据分析及设备指纹的精准度有一定影响 -->
12
    <uses-permission android:name="android.permission.GET_TASKS" />
13
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
14
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
15
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
16
    <uses-permission android:name="android.permission.ACCESS_COARSE_UPDATES"/>
17
    <application>
18
        <!-- 您的合作方标识 -->
19
        <meta-data android:name="PARTNER_CODE" android:value="xxx" />
20
        <!-- !!!注意!!! 如果您从同盾SDK 1.x 版本升级到 2.x,请将 1.x 中的FMUDID_service声明删除 !!!注意!!! -->
21
        <!-- !!!注意!!! 否则会在某些特殊情况下导致应用崩溃,如果没有该service声明,请忽略此注释 !!!注意!!! -->
22
    </application>
23
</manifest>
 
 
  • 将 <meta-data android:name="PARTNER_CODE" android:value="partner_code " />中 partner_code替换为同盾运营所给的合作方标识。

4、初始化SDK

    • 1. 在应用启动的时候(比如在启动应用的activityonCreate方法中,或者在自定义的applicationonCreate方法中,越早调用越好)调用以下方法:
    • 复制代码

       
       
       
       
       
      1
      FMAgent.init(context, FMAgent.ENV_SANDBOX);
       
       
    • FMAgent.ENV_SANDBOX表示测试环境,FMAgent.ENV_PRODUCTION表示生产环境
  • 2. 初始化成功会在logcat中打印以下log:
  •  
     
     
     
     
    1
    TD_JAVA: tongdun sdk load success
    2
    TD_JAVA: tongdun sdk init success
     
     

5、获取设备指纹黑盒数据,并提交到业务服务器
     在业务关键请求,如客户登录请求的onClick中,获取设备的信息,并发送到应用服务端。示例代码如下:

复制代码

 
 
 
 
 
1
loginBtn.setOnClickListener(new View.OnClickListener() {
2
    @Override
3
    public void onClick(View v) {
4
        //调用接口获取blackBox字段,请确保在onCreate时已经进行init,切勿在onEvent的时候才init
5
        String blackBox = FMAgent.onEvent(MainActivity.this);
6
        //将blackBox的值随业务请求发送到你的服务端, 服务端在调用同盾风险决策服务时需要用到这个参数;
7
    }
8
});
 
 

6、混淆打包
     如果开发者需要使用proguard进行混淆打包,请在proguard配置文件添加如下代码:

复制代码

 
 
 
 
 
1
#TONGDUN
2
-dontwarn android.os.**
3
-dontwarn com.android.internal.**
4
-keep class cn.tongdun.android.**{*;}
 
 

7、FAQ

    • Q: 为什么事件中心显示SDK未成功初始化?
    • A: 请在FMAgent.init()前调用 FMAgent.openLog()过滤TD_JAVA。并排查是否有以下情况:
      • so文件导入失败:第一条显示 Couldn't load so:...。1.混用上面两种方式导入so;2.没有导入对应架构的so。
      • fm-core-xxx文件未导入assets文件夹:第一行显示 get fm-core-xxx failed:...。需要注意在Android Studio 项目中assets文件夹在/app/src/main/assets路径。
      • 如果确认没有以上情况请联系运营同学。
    • Q: 为什么获取的 black_box字段比较长?
    • A: 正常情况下black_box长度为200-250字节,但是由于网络情况较差或者函数 FMAgent.init()和 FMAgent.onEvent()调用间隔时间较短时,black_box会附带一些设备信息长度将增大到1500-3000字节。
    • Q: 为什么事件中心部分信息为空?
    • A: 可能由于从SDK初始化到获取设备数据间隔时间过短,造成设备信息获取失败。切勿初始化之后立即获取设备信息。
    • Q: 为什么调用FMAgent.onEvent()会有卡顿?
    • A: SDK初始化获取数据需要一定的时间,如果初始化后直接调用 FMAgent.onEvent()会造成卡顿感。切勿初始化之后立即获取设备信息。
  • Q: 为何部分事件的真实IP是空的?
  • A: 当SDK上传设备信息失败(超时或者网络被屏蔽)时,将自动转为离线模式,此种情况下同盾无法获取真实IP。
  • Tips: 1.so库要加全,不然碰巧使用的机器要崩溃 2.跟后台约定好使用的是什么环境,直接跳过测试环境也是可以的

同盾安卓 Android应用 集成步骤:的更多相关文章

  1. 极光推送android sdk集成步骤

    推送,用极光,大家都说好,哈哈. 进入正题: 1.确认android studio的 Project 根目录的主 gradle 中配置了jcenter支持.(基本上现在都已经支持了,循例说一下)  , ...

  2. IOS JPush 集成步骤(极光远程推送解决方案,支持android和iOS两个平台)

    ●  什么是JPush ●  一套远程推送解决方案,支持android和iOS两个平台 ●  它能够快捷地为iOS App增加推送功能,减少集成APNs需要的工作量.开发复杂 度 ●  更多的信息,可 ...

  3. Android App集成支付宝

    原地址:http://blog.csdn.net/wenbingoon/article/details/7933078 手机的在线支付,被认为是2012年最看好的功能,我个人认为这也是移动互联网较传统 ...

  4. Android 系统移植与驱动开发--第二章搭建Android环境核心步骤及心得

    第二章 搭建Android 开发环境 虽然在这一章中讲的是Android底层开发环境,但是相应伴随的还有Android NDK程序来测试Linux驱动,HAL程序库.底层开发不仅需要交叉编译环境,还要 ...

  5. Android中集成第三方库的方法和问题

    Android中集成第三方库的方法和问题 声明: 1. 本文參考了网上同学们的现有成果,在此表示感谢,參考资料在文后有链接. 2. 本文的重点在第三部分,是在开发中遇到的问题及解决的方法.第一,第二部 ...

  6. Android持续集成之Jenkins 部署

    Android持续集成之Jenkins 部署 [TOC] 0x00安装 准备工作如下: Tomcat8.5下载地址 Jenkins下载链接 1 将下载的jenkins.war包放至tomcat下的we ...

  7. Android Studio集成Genymotion

    Android Studio集成Genymotion比在Eclipse中集成简单多了.主要以下几个步骤: 1.官网先下载Genymotion:http://www.genymotion.com/,下载 ...

  8. 【OpenCV for Android】Android Studio集成OpenCV

    准备工作 1.下载安装Android Studio(过程略). 2.下载Android OpenCV:https://opencv.org/releases.html,找到Android pack点击 ...

  9. Python 开发安卓Android及IOS应用库Kivy安装尝试

    Python 开发安卓Android及IOS应用库Kivy安装尝试: 先来看看这货可以用来制作什么应用: Create a package for Windows Create a package f ...

随机推荐

  1. Cocos2d-x 3.1.1开发环境

    Windows7上搭建Cocos2d-x 3.1.1开发环境   前言 现在,越来越多的公司采用Cocos2d-x 3.0来开发游戏了,但是现在这样的文章并不多,所以打算写一系列来帮助初学者快速掌握C ...

  2. [转]Android与电脑局域网共享之:Samba Server

    大家都有这样的经历,通过我的电脑或网上邻居访问另一台计算机上的共享资源,虽然电脑和手机之间可以有多种数据传输方式,但通过Windows SMB方式进行共享估计使用的人并不是太多,下面我就简单介绍一下, ...

  3. WebActivator的实现原理详解

    WebActivator的实现原理详解 文章内容 上篇文章,我们分析如何动态注册HttpModule的实现,本篇我们来分析一下通过上篇代码原理实现的WebActivator类库,WebActivato ...

  4. C#动态表达式计算(续2)

    上两篇废话太多,这一次我就不多说了,由于代码比较简单,可以直接从https://github.com/scottshare/DynamicExpress.git地址下载. 以下说明一下使用方法: Dy ...

  5. Orchard Logging

    Orchard 刨析:Logging 最近事情比较多,有预研的,有目前正在研发的,都是很需要时间的工作,所以导致这周只写了两篇Orchard系列的文章,这边不能保证后期会很频繁的更新该系列,但我会写完 ...

  6. linux网卡驱动安装及锐捷使用

    原创博文,转载请注明出处 先吐槽一下,以前装了个Centos win7双系统, 然后手贱一不小心把启动文件给删了,接下来就用grub恢复启动文件,整了一天也没搞出来还把win7的Boot Manage ...

  7. 安装xdebug后var_dump输出没有格式化的问题

    在ubuntu10.04下面配置Apache2.2 + PHP5.3的开发环境,顺便装了一个xdebug扩展方便调试代码. 但是环境配置好了之后却发现xdebug加载成功了但是var_dump输出的内 ...

  8. 无穷字符串问题--CSDN上的面试题(原创)

    网上看到一道奇怪的题,分享一下:http://hero.csdn.net/Question/Details?ID=307&ExamID=302 发布公司:CSDN 有 效 期:2014-02- ...

  9. Emacs助力PowerShell

    Emacs助力PowerShell 阅读目录 1 下载安装Emacs windows版本 2 下载el文件和配置Emacs加载PowerShell 3 体验用Emacs来执行和编辑PowerShell ...

  10. java中的volatile关键字

    java中的volatile关键字 一个变量被声明为volatile类型,表示这个变量可能随时被其他线程改变,所以不能把它cache到线程内存(如寄存器)中. 一般情况下volatile不能代替syn ...