diff --git a/MobileTracking/.idea/caches/build_file_checksums.ser b/MobileTracking/.idea/caches/build_file_checksums.ser
index 98cc668dd6abc35238095dbc6859978bb862c06c..03eef7a5640c38af89b73297181bde3382a814e6 100644
Binary files a/MobileTracking/.idea/caches/build_file_checksums.ser and b/MobileTracking/.idea/caches/build_file_checksums.ser differ
diff --git a/MobileTracking/.idea/compiler.xml b/MobileTracking/.idea/compiler.xml
new file mode 100644
index 0000000000000000000000000000000000000000..61a9130cd9669c3843e6445dfe1fee2d493869bc
--- /dev/null
+++ b/MobileTracking/.idea/compiler.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MobileTracking/.idea/gradle.xml b/MobileTracking/.idea/gradle.xml
index 7c6e5419cb3bb8ed6189c49c16715b34a5ac0440..16988432abcd16855d5d88a3f4468d9b61dfeb9b 100644
--- a/MobileTracking/.idea/gradle.xml
+++ b/MobileTracking/.idea/gradle.xml
@@ -15,6 +15,7 @@
+
diff --git a/MobileTracking/.idea/misc.xml b/MobileTracking/.idea/misc.xml
index 829c220cae984c1b5f0029987ee7c1d243d13056..e3f3f99194ef5cfaac91b16919beac5514887d1d 100644
--- a/MobileTracking/.idea/misc.xml
+++ b/MobileTracking/.idea/misc.xml
@@ -39,7 +39,7 @@
-
+
diff --git a/MobileTracking/.idea/modules.xml b/MobileTracking/.idea/modules.xml
index aa8400c35d0d6a6764bab461b4a8ce54257eab42..1553ba53d27c02c388b74749b0f3069911ad868f 100644
--- a/MobileTracking/.idea/modules.xml
+++ b/MobileTracking/.idea/modules.xml
@@ -2,12 +2,9 @@
-
-
-
-
-
-
+
+
+
\ No newline at end of file
diff --git a/MobileTracking/MobileTrackingDemo/build.gradle b/MobileTracking/MobileTrackingDemo/build.gradle
index 1e8156a9243b713022213e8b9f3f4db7c883efa3..07913cf8862ffce322aaa3f724b6846a8b96112f 100644
--- a/MobileTracking/MobileTrackingDemo/build.gradle
+++ b/MobileTracking/MobileTrackingDemo/build.gradle
@@ -17,6 +17,10 @@ android {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
+ lintOptions {
+ checkReleaseBuilds false
+ abortOnError false
+ }
sourceSets.main.jniLibs.srcDirs = ['libs']
}
diff --git a/MobileTracking/libmobiletracking/build.gradle b/MobileTracking/libmobiletracking/build.gradle
index 2794464b372a618cfea28397356f0e2f33abaf6f..4a5fc6b9fb0d793256507a5834da2d3d77c551b4 100644
--- a/MobileTracking/libmobiletracking/build.gradle
+++ b/MobileTracking/libmobiletracking/build.gradle
@@ -16,10 +16,16 @@ android {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
+ lintOptions {
+ checkReleaseBuilds false
+ abortOnError false
+ }
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.2.1'
+ compile files('libs/mma_oaid.jar')
+
}
diff --git a/MobileTracking/libmobiletracking/libs/mma_oaid.jar b/MobileTracking/libmobiletracking/libs/mma_oaid.jar
new file mode 100644
index 0000000000000000000000000000000000000000..c7300761cb60a63ef3ebe1630f5bdea8fb9571e0
Binary files /dev/null and b/MobileTracking/libmobiletracking/libs/mma_oaid.jar differ
diff --git a/MobileTracking/libmobiletracking/src/main/aidl/com/uodis/opendevice/aidl/OpenDeviceIdentifierService.aidl b/MobileTracking/libmobiletracking/src/main/aidl/com/uodis/opendevice/aidl/OpenDeviceIdentifierService.aidl
deleted file mode 100644
index 671ad503e16a84bf95b97536d5904bb09df38c94..0000000000000000000000000000000000000000
--- a/MobileTracking/libmobiletracking/src/main/aidl/com/uodis/opendevice/aidl/OpenDeviceIdentifierService.aidl
+++ /dev/null
@@ -1,18 +0,0 @@
-// OpenDeviceIdentifierService.aidl
-package com.uodis.opendevice.aidl;
-
-// Declare any non-default types here with import statements
-
-interface OpenDeviceIdentifierService {
- /**
- * Demonstrates some basic types that you can use as parameters
- * and return values in AIDL.
- */
- /** 获取OAID */
-
- String getOaid();
-
- /** 获取限制跟踪参数,true:限制跟踪;false:不限制跟踪*/
-
- boolean isOaidTrackLimited();
-}
diff --git a/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/api/Constant.java b/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/api/Constant.java
index 470cf80f7b69e58d0fe48eb1c20237aa2f5f1edd..876e4a9c6ce22bc7be2ea579ac4c1c68d3bd38d9 100755
--- a/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/api/Constant.java
+++ b/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/api/Constant.java
@@ -51,7 +51,7 @@ public class Constant {
/** frame参数中的分隔符 */
public static final String DIVIDE_MULT = "X";
public static final String TRACKING_SDKVS = "SDKVS";
- public static final String TRACKING_SDKVS_VALUE = "V2.2.1"; //SDK版本号
+ public static final String TRACKING_SDKVS_VALUE = "V2.2.2"; //SDK版本号
/**
* 新版常量 Begin
*/
diff --git a/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/api/Countly.java b/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/api/Countly.java
index 8e2dce8d5ec25b73193fded403a982b622b6309a..8c24f4900565ac3f14234f8f8b3547504a59390f 100644
--- a/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/api/Countly.java
+++ b/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/api/Countly.java
@@ -9,7 +9,6 @@ import android.os.IBinder;
import android.text.TextUtils;
import android.view.View;
-import com.uodis.opendevice.aidl.OpenDeviceIdentifierService;
import java.util.Timer;
import java.util.TimerTask;
@@ -23,6 +22,7 @@ import cn.com.mma.mobile.tracking.util.SharedPreferencedUtil;
import cn.com.mma.mobile.tracking.util.klog.KLog;
import cn.com.mma.mobile.tracking.viewability.origin.CallBack;
import cn.com.mma.mobile.tracking.viewability.origin.ViewAbilityEventListener;
+import cn.com.mmachina.oaid.OaidUtils;
/**
* MMAChinaSDK Android API 入口类
@@ -51,12 +51,12 @@ public class Countly {
//[本地测试]控制广播的开关
public static boolean LOCAL_TEST = true;
- public static boolean ISNEED_OAID = false;
+// public static boolean ISNEED_OAID = false;
public static String ACTION_STATS_EXPOSE = "ACTION_STATS_EXPOSE";
public static String ACTION_STATS_VIEWABILITY = "ACTION.STATS_VIEWABILITY";
public static String ACTION_STATS_SUCCESSED = "ACTION.STATS_SUCCESSED";
- public static String OAID = "unknow";
+// public static String OAID = "unknow";
private static Countly mInstance = null;
@@ -122,13 +122,9 @@ public class Countly {
//获取ADID;
DeviceInfoUtil.getDeviceAdid(context,sdk);
+ //初始化时尝试获取oaid
+ OaidUtils.getOaid(context);
- String modle = DeviceInfoUtil.getModel();
-
- //判断设备的MODLE是否为华为
- if(modle.contains("HONOR")){
- getOAID(context);
- }
} catch (Exception e) {
Logger.e("Countly init failed:" + e.getMessage());
@@ -161,59 +157,6 @@ public class Countly {
}
-
- public String getOAID(Context context){
-
-
- Intent bindIntent = new Intent("com.uodis.opendevice.OPENIDS_SERVICE");
-
- bindIntent.setPackage("com.huawei.hwid");
-
- context.bindService(bindIntent, serviceConnection, Context.BIND_AUTO_CREATE);
-
-// System.out.println("启动服务");
-
- return OAID;
-
- }
-
- ServiceConnection serviceConnection = new ServiceConnection() {
-
- @Override
- public void onServiceConnected(ComponentName name, IBinder service)
-
- {
-// System.out.println("建立AIDL服务链接");
-
- OpenDeviceIdentifierService oaidService = OpenDeviceIdentifierService.Stub.asInterface(service);
-
- try {
-
- OAID = oaidService.getOaid();
-
- boolean isTrackLimited = oaidService.isOaidTrackLimited();
-
- ISNEED_OAID = true;
-
-
- }catch (Exception e){
-
- }
-
- }
-
- @Override
- public void onServiceDisconnected(ComponentName name) {
-
-// System.out.println("断开AIDL服务链接");
-
- }
-
- };
-
-
-
-
/**
* 普通点击事件监测接口
* @param adURL 监测链接
diff --git a/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/api/RecordEventMessage.java b/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/api/RecordEventMessage.java
index a9763789462cf384a74913663b7e6becdb9952a5..89e976b38eb2cd1ba1b6a1d253b401f2e2cfb1b4 100644
--- a/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/api/RecordEventMessage.java
+++ b/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/api/RecordEventMessage.java
@@ -20,6 +20,7 @@ import cn.com.mma.mobile.tracking.util.AntiConstantStats;
import cn.com.mma.mobile.tracking.util.AppListUploader;
import cn.com.mma.mobile.tracking.util.CommonUtil;
import cn.com.mma.mobile.tracking.util.DeviceInfoUtil;
+import cn.com.mma.mobile.tracking.util.LRU;
import cn.com.mma.mobile.tracking.util.LocationCollector;
import cn.com.mma.mobile.tracking.util.Logger;
import cn.com.mma.mobile.tracking.util.Reflection;
@@ -34,8 +35,8 @@ import cn.com.mma.mobile.tracking.viewability.origin.ViewAbilityStats;
public class RecordEventMessage {
private final Context context;
private static RecordEventMessage mInstance;
- public static HashMap RequestHashMap;
- public static HashMap MonitorTypeHashMap;
+ public static LRU RequestHashMap;
+ public static LRU MonitorTypeHashMap;
private RecordEventMessage(final Context context) {
if (context == null) {
@@ -49,8 +50,8 @@ public class RecordEventMessage {
synchronized (RecordEventMessage.class) {
if (mInstance == null) {
mInstance = new RecordEventMessage(ctx);
- RequestHashMap = new HashMap<>();
- MonitorTypeHashMap = new HashMap<>();
+ RequestHashMap = new LRU<>(20);
+ MonitorTypeHashMap = new LRU<>(20);
}
}
}
diff --git a/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/api/SendMessageThread.java b/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/api/SendMessageThread.java
index 5f6a92459e1300b4f4a0c48f0d5b3072420f981a..a80bbbe094dd6e83729caad038d0c2d7a99b357d 100644
--- a/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/api/SendMessageThread.java
+++ b/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/api/SendMessageThread.java
@@ -77,12 +77,16 @@ public class SendMessageThread extends Thread {
if(callBack != null){
callBack.onFailed(monitorType.toString() + ":MMA_URL Failed To Send");
}
+ RecordEventMessage.RequestHashMap.remove(eventData);
+ RecordEventMessage.MonitorTypeHashMap.remove(eventData);
return;
} else {
if(callBack != null){
callBack.onSuccess(monitorType.toString());
// Logger.i("事件类型:" + monitorType);
}
+ RecordEventMessage.RequestHashMap.remove(eventData);
+ RecordEventMessage.MonitorTypeHashMap.remove(eventData);
Logger.i("record [" + CommonUtil.md5(eventData) + "] upload succeed.");
handleSuccessResult(spName, eventData);
//[LOCALTEST] 测试计数:记录发送成功
diff --git a/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/util/ConnectUtil.java b/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/util/ConnectUtil.java
index b8f6c23db2cc7b87e84ee3e985fc409ea294aeee..5f8ff804e3cd2f1a6b52d789812ae7cd6eeb7f64 100644
--- a/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/util/ConnectUtil.java
+++ b/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/util/ConnectUtil.java
@@ -1,5 +1,11 @@
package cn.com.mma.mobile.tracking.util;
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.net.Uri;
+import android.text.TextUtils;
+import android.util.Log;
+
import java.io.BufferedOutputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
@@ -9,18 +15,11 @@ import java.net.CookieHandler;
import java.net.CookieManager;
import java.net.HttpURLConnection;
import java.net.URL;
-import java.security.KeyManagementException;
-import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.security.cert.X509Certificate;
import java.util.List;
import java.util.Map;
import java.util.zip.GZIPOutputStream;
-import android.annotation.SuppressLint;
-import android.content.Context;
-import android.net.Uri;
-import android.text.TextUtils;
-import android.util.Log;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
@@ -36,23 +35,10 @@ public class ConnectUtil {
private static final String ALLOWED_URI_CHARS = "@#&=*+-_.,:!?()/~'%";
private static final int CONNECT_TIMEOUT = 30 * 1000;
private static final int READ_TIMEOUT = 30 * 1000;
-
private static ConnectUtil instance;
-
private ConnectUtil() {
- try {
- HttpsURLConnection.setDefaultHostnameVerifier(new NullHostNameVerifier());
- SSLContext sc = SSLContext.getInstance("TLS");
- sc.init(null, trustAllManager, new SecureRandom());
- HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
-
- } catch (KeyManagementException e) {
- e.printStackTrace();
- } catch (NoSuchAlgorithmException e) {
- e.printStackTrace();
- }
}
public static ConnectUtil getInstance() {
@@ -66,117 +52,112 @@ public class ConnectUtil {
return instance;
}
-// public HttpURLConnection getHttpURLConnection(String url) {
-// try {
-// String encodedUrl = Uri.encode(url, ALLOWED_URI_CHARS);
-// HttpURLConnection conn = (HttpURLConnection) new URL(encodedUrl).openConnection();
-// conn.setConnectTimeout(CONNECT_TIMEOUT);
-// conn.setReadTimeout(READ_TIMEOUT);
-// conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
-// conn.setRequestMethod("GET");
-// // not allow auto controll redirect,仅作用于当前URLConnection对象
-// conn.setInstanceFollowRedirects(false);
-// return conn;
-// } catch (Exception e) {
-// }
-// return null;
-// }
-//
-// public String doRequest(String url) {
-// String result = null;
-// InputStream is = null;
-// BufferedReader br = null;
-// HttpURLConnection conn = null;
-// try {
-// conn = getHttpURLConnection(url);
-// if (conn == null) {
-// return null;
-// }
-// is = conn.getInputStream();
-// if (is == null) {
-// return null;
-// }
-// br = new BufferedReader(new InputStreamReader(is, CHARSET));
-// String line;
-// StringBuffer sb = new StringBuffer();
-// while ((line = br.readLine()) != null) {
-// sb.append(line);
-// }
-// result = sb.toString();
-// } catch (Exception e) {
-// } finally {
-// try {
-// if (is != null)
-// is.close();
-// } catch (IOException e) {
-// }
-// try {
-// if (br != null)
-// br.close();
-// } catch (IOException e) {
-// }
-// if (conn != null) {
-// conn = null;
-// }
-// }
-// return result;
-// }
public byte[] performGet(String destURL) {
- //Logger.d("Attempting Get to " + destURL + "\n");
+ //判断请求类型
+ if(destURL.startsWith("https:")){
+ return performGetHttps(destURL);
+ }else {
+ //Logger.d("Attempting Get to " + destURL + "\n");
+ byte[] response = null;
+ HttpURLConnection httpConnection = null;
+ InputStream is = null;
+ try {
+ String encodedUrl = Uri.encode(destURL, ALLOWED_URI_CHARS);
+ URL url = new URL(encodedUrl);
+ httpConnection = (HttpURLConnection) url.openConnection();
+
+ httpConnection.setConnectTimeout(CONNECT_TIMEOUT);
+ httpConnection.setReadTimeout(READ_TIMEOUT);
+ httpConnection.setRequestMethod("GET");
+ httpConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
+
+ int statusCode = httpConnection.getResponseCode();
+ if (statusCode == HttpURLConnection.HTTP_OK || statusCode == HttpURLConnection.HTTP_MOVED_PERM || statusCode == HttpURLConnection.HTTP_MOVED_TEMP) {
+
+ try {
+ is = httpConnection.getInputStream();
+ response = writeToArr(is);
+ } catch (Exception e) {
+ response = new byte[]{};
+ }
+
+ //redirect
+ String redirectURL = httpConnection.getHeaderField("Location");
+
+ if (!TextUtils.isEmpty(redirectURL)) {
+ httpConnection = (HttpURLConnection) new URL(redirectURL).openConnection();
+ statusCode = httpConnection.getResponseCode();
+// Logger.d("redirect statusCode::" + statusCode);
+ }
+ }
+ } catch (Exception e) {
+// System.out.println("upload监测链接异常:" + e.toString());
+ } finally {
+ if (null != is)
+ try {
+ is.close();
+ } catch (final IOException e) {
+ }
+ if (null != httpConnection)
+
+ httpConnection.disconnect();
+ }
+
+ return response;
+ }
+ }
+
+ public byte[] performGetHttps(String destURL) {
+// Logger.d("Attempting Get to " + destURL + "\n");
byte[] response = null;
- HttpURLConnection httpConnection = null;
+ HttpsURLConnection httpsConnection = null;
+ HttpsURLConnection redirecthttpsConnection = null;
InputStream is = null;
-
try {
String encodedUrl = Uri.encode(destURL, ALLOWED_URI_CHARS);
-
URL url = new URL(encodedUrl);
-
- httpConnection = (HttpURLConnection) url.openConnection();
-
- httpConnection.setConnectTimeout(CONNECT_TIMEOUT);
- httpConnection.setReadTimeout(READ_TIMEOUT);
- httpConnection.setRequestMethod("GET");
- httpConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
-
- int statusCode = httpConnection.getResponseCode();
-
-
-
+ //设置校验
+ SSLContext sc = SSLContext.getInstance("TLS");
+ sc.init(null, trustAllManager, new SecureRandom());
+ httpsConnection = (HttpsURLConnection) url.openConnection();
+ httpsConnection.setHostnameVerifier(new NullHostNameVerifier());
+ httpsConnection.setSSLSocketFactory(sc.getSocketFactory());
+ httpsConnection.setConnectTimeout(CONNECT_TIMEOUT);
+ httpsConnection.setReadTimeout(READ_TIMEOUT);
+ httpsConnection.setRequestMethod("GET");
+ httpsConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
+ int statusCode = httpsConnection.getResponseCode();
if (statusCode == HttpURLConnection.HTTP_OK || statusCode == HttpURLConnection.HTTP_MOVED_PERM || statusCode == HttpURLConnection.HTTP_MOVED_TEMP) {
try {
- is = httpConnection.getInputStream();
+ is = httpsConnection.getInputStream();
response = writeToArr(is);
} catch (Exception e) {
response = new byte[]{};
}
-
//redirect
- String redirectURL = httpConnection.getHeaderField("Location");
+ String redirectURL = httpsConnection.getHeaderField("Location");
if (!TextUtils.isEmpty(redirectURL)) {
- //SDK访问o后面的落地页,并不能真正的打开具体页面,跳转的具体动作媒体自己完成
- httpConnection = (HttpURLConnection) new URL(redirectURL).openConnection();
- statusCode = httpConnection.getResponseCode();
-
- //Logger.d("redirect statusCode::" + statusCode);
+ SSLContext redirectsc = SSLContext.getInstance("TLS");
+ redirectsc.init(null, trustAllManager, new SecureRandom());
+ redirecthttpsConnection = (HttpsURLConnection) new URL(redirectURL).openConnection();
+ redirecthttpsConnection.setSSLSocketFactory(redirectsc.getSocketFactory());
+ statusCode = redirecthttpsConnection.getResponseCode();
+// Logger.d("redirect statusCode::" + statusCode);
}
}
} catch (Exception e) {
-
-// System.out.println("upload监测链接异常:" + e.toString());
-
-
+ Logger.i("upload error: " + e.toString());
} finally {
if (null != is)
try {
is.close();
} catch (final IOException e) {
}
- if (null != httpConnection)
-
- httpConnection.disconnect();
+ if (null != httpsConnection)
+
+ httpsConnection.disconnect();
}
return response;
@@ -221,8 +202,6 @@ public class ConnectUtil {
}
int statusCode = httpConnection.getResponseCode();
-
-
if (statusCode == HttpURLConnection.HTTP_OK) {
// 使用普通流读取
is = httpConnection.getInputStream();
@@ -328,6 +307,7 @@ public class ConnectUtil {
int code =urlConn.getResponseCode();
+ Log.d("lincoln","请求code"+code);
//获取所有Header
Map> map = urlConn.getHeaderFields();
List cookies = map.get("Set-Cookie");
@@ -406,7 +386,6 @@ public class ConnectUtil {
if(a!= null && a.contains("a=")){
value = a.split(";")[0];
value = value.split("=")[1];
-
request.completed(value);
}
}
diff --git a/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/util/DeviceInfoUtil.java b/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/util/DeviceInfoUtil.java
index ebf930c6919abd08b946324453465c0e0cee6457..f7034c746886b0970b92e8f7a6ecddbf4f0044e6 100755
--- a/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/util/DeviceInfoUtil.java
+++ b/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/util/DeviceInfoUtil.java
@@ -43,13 +43,13 @@ import android.text.TextUtils;
import android.util.DisplayMetrics;
import android.view.WindowManager;
-import com.uodis.opendevice.aidl.OpenDeviceIdentifierService;
import org.json.JSONArray;
import cn.com.mma.mobile.tracking.api.Constant;
import cn.com.mma.mobile.tracking.api.Countly;
import cn.com.mma.mobile.tracking.bean.Company;
import cn.com.mma.mobile.tracking.bean.SDK;
+import cn.com.mmachina.oaid.OaidUtils;
import static cn.com.mma.mobile.tracking.util.Reflection.checkPermission;
import static cn.com.mma.mobile.tracking.util.Reflection.checkPermissionX;
@@ -591,12 +591,15 @@ public class DeviceInfoUtil {
deviceInfoParams.put(Constant.TRACKING_WIFI, isWifi(context));
//新增ADID判断
deviceInfoParams.put(Constant.TRACKING_ADID,DeviceInfoUtil.ADID);
- if(Countly.ISNEED_OAID){
-// System.out.println("OAID:" + Countly.OAID);
- deviceInfoParams.put(Constant.TRACKING_OAID, Countly.OAID);
- }else {
- deviceInfoParams.put(Constant.TRACKING_OAID, "unknow");
- }
+
+ deviceInfoParams.put(Constant.TRACKING_OAID, OaidUtils.getOaid(context));
+
+// if(Countly.ISNEED_OAID){
+//// System.out.println("OAID:" + Countly.OAID);
+// deviceInfoParams.put(Constant.TRACKING_OAID, Countly.OAID);
+// }else {
+// deviceInfoParams.put(Constant.TRACKING_OAID, "unknow");
+// }
// DeviceInfoUtil deviceInfoUtil = new DeviceInfoUtil();
//
@@ -625,7 +628,6 @@ public class DeviceInfoUtil {
/**
* 获取APP已经安装的应用列表信息
- *
* @param context
* @return
*/
diff --git a/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/util/LRU.java b/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/util/LRU.java
new file mode 100644
index 0000000000000000000000000000000000000000..794482dd36f57ac39e411d9e89e8f084c6003a05
--- /dev/null
+++ b/MobileTracking/libmobiletracking/src/main/java/cn/com/mma/mobile/tracking/util/LRU.java
@@ -0,0 +1,58 @@
+package cn.com.mma.mobile.tracking.util;
+
+/**
+ * Author:zhangqian
+ * Time:2020/10/14
+ * Version:
+ * Description:MobileTracking
+ */
+import java.util.LinkedHashMap;
+
+public class LRU {
+
+ private LinkedHashMap map;
+ private int cacheSize;
+
+ public LRU(final int cacheSize)
+ {
+ this.cacheSize = cacheSize;
+ map = new LinkedHashMap(16,0.75F,true){
+ @Override
+ protected boolean removeEldestEntry(Entry eldest) {
+ if(cacheSize + 1 == map.size()){
+ return true;
+ }else{
+ return false;
+ }
+ }
+ };
+ }
+ public synchronized V get(K key) {
+ return map.get(key);
+ }
+ public synchronized void put(K key,V value) {
+ map.put(key, value);
+ }
+ public synchronized void clear() {
+ map.clear();
+ }
+ public synchronized V remove(K key) {
+ return map.remove(key);
+ }
+ public synchronized int usedSize() {
+ return map.size();
+ }
+
+// public void print() {
+// for (Map.Entry entry : map.entrySet()) {
+// System.out.print(entry.getValue() + "--");
+// }
+// System.out.println();
+// }
+
+
+ }
+
+
+
+
diff --git a/OutputRelease/mmachina_sdk.jar b/OutputRelease/mmachina_sdk.jar
index c57734930c15502507650db78e921914e9868e74..e052e96e8b3eb34def712b98b291a6c49e15659f 100644
Binary files a/OutputRelease/mmachina_sdk.jar and b/OutputRelease/mmachina_sdk.jar differ