merge dev2_adas

This commit is contained in:
zhongchao
2021-05-25 17:31:31 +08:00
53 changed files with 589 additions and 3431 deletions

1
.idea/gradle.xml generated
View File

@@ -39,6 +39,7 @@
<option value="$PROJECT_DIR$/main-extensions/mogo-module-main-independent" />
<option value="$PROJECT_DIR$/main-extensions/mogo-module-main-launcher" />
<option value="$PROJECT_DIR$/modules" />
<option value="$PROJECT_DIR$/modules/mogo-module-adas" />
<option value="$PROJECT_DIR$/modules/mogo-module-apps" />
<option value="$PROJECT_DIR$/modules/mogo-module-authorize" />
<option value="$PROJECT_DIR$/modules/mogo-module-back" />

View File

@@ -716,6 +716,7 @@ dependencies {
implementation project(':modules:mogo-module-extensions')
implementation project(':modules:mogo-module-map')
implementation project(':modules:mogo-module-smp')
implementation project(':modules:mogo-module-adas')
implementation project(':foudations:httpdns-mogo')
}

View File

@@ -102,6 +102,8 @@ public class MogoApplication extends AbsMogoApplication {
// 小地图模块
MogoModulePaths.addModule(new MogoModule(MogoServicePaths.PATH_SMALL_MAP, "IMogoSmallMapProvider"));
// ADAS模块
MogoModulePaths.addModule(new MogoModule(MogoServicePaths.PATH_ADAS, "AdasProvider"));
//前方碰撞预警
MogoModulePaths.addModule(new MogoModule(MogoServicePaths.PATH_V2X_FRONT_CRASH_WARNING, "IV2XManagerProvider"));

View File

@@ -113,6 +113,7 @@ ext {
// V2X
moduleV2x : "com.mogo.module:module-v2x:${MOGO_MODULE_V2X_VERSION}",
moduleSmallMap : "com.mogo.module:module-small-map:${MOGO_MODULES_SMALL_MAP}",
moduleADAS : "com.mogo.module:mogo-module-adas:${MOGO_MODULES_ADAS}",
modulemedia : "com.mogo.module:module-media:${MOGO_MODULE_MEDIA_VERSION}",
modulesearch : "com.mogo.module:module-search:${MOGO_MODULE_SEARCH_VERSION}",
// push

View File

@@ -132,6 +132,7 @@ TTS_NOOP_VERSION=2.0.12
MAP_CUSTOM_VERSION=2.0.12
#MOGO_MODULES_MVISION_VERSION=2.0.12
MOGO_MODULES_SMALL_MAP=1.0.0
MOGO_MODULES_ADAS=1.0.0
# httpdns
HTTPDNS_TENCENT_VERSION = 2.0.12
HTTPDNS_MOGO_VERSION=2.0.12
@@ -169,6 +170,8 @@ MOGO_TANLU_VERSION=1.1.4
MOGO_LIVE_VERSION=1.1.4
# 直播拉流
MOGO_TRAFFICLIVE_VERSION=1.1.4
#ADAS HIGHT
MOGO_ADASHIGH_VERSION = '1.1.3'
######## Foundation MogoAiCloud Module
# mogoAiCloud apk services
@@ -182,4 +185,4 @@ MOGO_AICLOUD_SERVICES_SDK_VERSION=1.0.0-SNAPSHOT
applicationId=com.mogo.launcer
applicationName=IntelligentPilot
versionCode=80007
versionName=8.0.7
versionName=8.0.7

1
modules/mogo-module-adas/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
/build

View File

@@ -0,0 +1,66 @@
apply plugin: 'com.android.library'
apply plugin: 'com.alibaba.arouter'
android {
compileSdkVersion rootProject.ext.android.compileSdkVersion
// buildToolsVersion rootProject.ext.android.buildToolsVersion
defaultConfig {
minSdkVersion rootProject.ext.android.minSdkVersion
targetSdkVersion rootProject.ext.android.targetSdkVersion
versionCode Integer.valueOf(VERSION_CODE)
versionName getValueFromRootProperties("${project.name.replace("-", "_").toUpperCase()}_VERSION")
javaCompileOptions {
annotationProcessorOptions {
arguments = [AROUTER_MODULE_NAME: project.getName()]
}
}
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles 'consumer-rules.pro'
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation rootProject.ext.dependencies.androidxappcompat
implementation rootProject.ext.dependencies.androidxconstraintlayout
implementation rootProject.ext.dependencies.arouter
annotationProcessor rootProject.ext.dependencies.aroutercompiler
// 现有的ADAS的通讯SDK需要将里面的东西融合到我们项目中
compileOnly rootProject.ext.dependencies.adasapi
api "com.zhidao.support.adas:high:1.1.8.3"
annotationProcessor rootProject.ext.dependencies.aroutercompiler
if (Boolean.valueOf(RELEASE)) {
api rootProject.ext.dependencies.mogoutils
api rootProject.ext.dependencies.mogocommons
api rootProject.ext.dependencies.mogoserviceapi
api
implementation rootProject.ext.dependencies.modulecommon
} else {
api project(":foudations:mogo-utils")
api project(":foudations:mogo-commons")
api project(':services:mogo-service-api')
implementation project(':modules:mogo-module-common')
}
}
apply from: new File(rootProject.rootDir, "gradle/upload.gradle").toString()

View File

@@ -0,0 +1,3 @@
GROUP=com.mogo.module
POM_ARTIFACT_ID=mogo-module-adas
VERSION_CODE=1

View File

@@ -0,0 +1,21 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

View File

@@ -0,0 +1,26 @@
package com.amap.navi.mogo_module_adas;
import android.content.Context;
import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
/**
* Instrumented test, which will execute on an Android device.
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Test
public void useAppContext() {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
assertEquals("com.amap.navi.mogo_module_adas.test", appContext.getPackageName());
}
}

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mogo.module.adas">
</manifest>

View File

@@ -0,0 +1,58 @@
package com.mogo.module.adas;
import com.zhidao.autopilotservice.model.AdasAIDLAutopilotArriveModel;
import com.zhidao.autopilotservice.model.AdasAIDLAutopilotStateModel;
import com.zhidao.autopilotservice.model.AdasAIDLOwnerCarRectModel;
import com.zhidao.autopilotservice.model.AdasAIDLOwnerCarStateModel;
import com.zhidao.support.adas.high.OnAdasListener;
import com.zhidao.support.adas.high.bean.AutopilotStatus;
import com.zhidao.support.adas.high.bean.AutopilotWayArrive;
import com.zhidao.support.adas.high.bean.CarLaneInfo;
import com.zhidao.support.adas.high.bean.CarStateInfo;
import com.zhidao.support.adas.high.bean.LightStatueInfo;
import com.zhidao.support.adas.high.bean.ObstaclesInfo;
import com.zhidao.support.adas.high.bean.RectInfo;
import com.zhidao.support.adas.high.bean.WarnMessageInfo;
import java.util.List;
/**
* Created by XuYong on 2021/4/25 16:52
*/
public abstract class AdasDataListener {
public void sendMsg( String msg ) {
}
public void cameraEyeDetectResult( String detectResult ) {
}
public void selectCarModelUrl( String carStyleUrl ) {
}
public void requestGetCarModelListInfo() {
}
public void clickSettingBack() {
}
public void showToast( String msg ) {
}
public void autopilotArrive( AdasAIDLAutopilotArriveModel autopilotArriveModel ) {
}
public void ownerCarStateInfo( String ownerCarStateInfo ) {
}
public void notifyOwnerCarState( AdasAIDLOwnerCarStateModel ownerCarStateModel ) {
}
public void notifyAutopilotState( AdasAIDLAutopilotStateModel autopilotStateModel ) {
}
public void notifyOwnerCarRect( List<AdasAIDLOwnerCarRectModel> ownerCarStateRectList ) {
}
}

View File

@@ -0,0 +1,198 @@
package com.mogo.module.adas;
import com.google.gson.Gson;
import com.mogo.utils.logger.Logger;
import com.mogo.utils.network.utils.GsonUtil;
import com.zhidao.autopilotservice.model.AdasAIDLAutopilotArriveModel;
import com.zhidao.autopilotservice.model.AdasAIDLAutopilotStateModel;
import com.zhidao.support.adas.high.OnAdasListener;
import com.zhidao.support.adas.high.OnAdasMsgConnectStatusListener;
import com.zhidao.support.adas.high.bean.AutopilotStatus;
import com.zhidao.support.adas.high.bean.AutopilotWayArrive;
import com.zhidao.support.adas.high.bean.CarLaneInfo;
import com.zhidao.support.adas.high.bean.CarStateInfo;
import com.zhidao.support.adas.high.bean.LightStatueInfo;
import com.zhidao.support.adas.high.bean.ObstaclesInfo;
import com.zhidao.support.adas.high.bean.RectInfo;
import com.zhidao.support.adas.high.bean.WarnMessageInfo;
import com.zhidao.support.adas.high.common.MsgActionType;
import java.util.ArrayList;
/**
* Created by XuYong on 2021/4/25 14:43
*/
public class AdasEventManager implements OnAdasListener, OnAdasMsgConnectStatusListener {
private final String TAG = "\\";
private Gson gson;
private ArrayList<AdasDataListener> iAdasEventListeners;
private ArrayList<AdasStatusListener> iAdasStatusListeners;
public AdasEventManager() {
gson = GsonUtil.getGson();
}
public void addEventListener(AdasDataListener listener) {
Logger.d(TAG,"添加adas事件监听");
if (iAdasEventListeners == null) {
iAdasEventListeners = new ArrayList<AdasDataListener>();
}
iAdasEventListeners.add(listener);
}
public void removeEventListener(AdasDataListener listener) {
Logger.d(TAG,"注销adas事件监听");
if (iAdasEventListeners != null && iAdasEventListeners.contains(listener)) {
iAdasEventListeners.remove(listener);
}
}
public void addStatusListener(AdasStatusListener listener) {
Logger.d(TAG,"添加adas状态事件监听");
if (iAdasStatusListeners == null) {
iAdasStatusListeners = new ArrayList<AdasStatusListener>();
}
iAdasStatusListeners.add(listener);
}
public void removeStatusListener(AdasStatusListener listener) {
Logger.d(TAG,"注销adas状态事件监听");
if (iAdasEventListeners != null && iAdasEventListeners.contains(listener)) {
iAdasEventListeners.remove(listener);
}
}
@Override
public void onWarnMessage(WarnMessageInfo warnMessageInfo) {
Logger.d(TAG,"onWarnMessage " + warnMessageInfo);
//报警model
WarnMessageModel warnMessageModel = null;
for (AdasDataListener listener:iAdasEventListeners) {
if (listener != null) {
if (warnMessageModel == null) {
warnMessageModel = new WarnMessageModel();
warnMessageModel.setAction(MsgActionType.ACTION_WS_MSG_WARNING_TYPE.getmActionType());
}
warnMessageModel.setValues(warnMessageInfo);
listener.cameraEyeDetectResult(gson.toJson(warnMessageModel));
}
}
}
@Override
public void onVideoSize(int width, int height) {
Logger.d(TAG,"onVideoSize");
for (AdasDataListener listener:iAdasEventListeners) {
if (listener != null) {
}
}
}
@Override
public void onRectData(RectInfo rectInfo) {
Logger.d(TAG,"onRectData " + rectInfo);
for (AdasDataListener listener:iAdasEventListeners) {
if (listener != null) {
listener.cameraEyeDetectResult(gson.toJson(rectInfo));
}
}
}
@Override
public void onCarStateData(CarStateInfo carStateInfo) {
Logger.d(TAG,"onCarStateData " + carStateInfo);
for (AdasDataListener listener:iAdasEventListeners) {
if (listener != null) {
listener.ownerCarStateInfo(gson.toJson(carStateInfo));
}
}
}
@Override
public void onLightStateData(LightStatueInfo lightStatueInfo) {
Logger.d(TAG,"onLightStateData " + lightStatueInfo);
for (AdasDataListener listener:iAdasEventListeners) {
if (listener != null) {
}
}
}
@Override
public void onObstaclesInfo(ObstaclesInfo obstaclesInfo) {
Logger.d(TAG,"onObstaclesInfo " + obstaclesInfo);
for (AdasDataListener listener:iAdasEventListeners) {
if (listener != null) {
}
}
}
@Override
public void onCarLaneInfo(CarLaneInfo carLaneInfo) {
Logger.d(TAG,"onCarLaneInfo " + carLaneInfo);
for (AdasDataListener listener:iAdasEventListeners) {
if (listener != null) {
}
}
}
@Override
public void autopilotStatus(AutopilotStatus autopilotStatus) {
Logger.d(TAG,"autopilotStatus " + autopilotStatus);
AutopilotStatus.ValuesBean autopilotStatusValues = autopilotStatus.getValues();
AutopilotStatus.ValuesBean mAutopilotStatus;
if (autopilotStatusValues != null) {
AdasAIDLAutopilotStateModel adasAIDLAutopilotStateModel=new AdasAIDLAutopilotStateModel();
adasAIDLAutopilotStateModel.setReason(autopilotStatusValues.getReason());
mAutopilotStatus = autopilotStatusValues;
int state = autopilotStatusValues.getState();
float speed = autopilotStatusValues.getSpeed();
adasAIDLAutopilotStateModel.setState(state);
adasAIDLAutopilotStateModel.setSpeed(speed);
for (AdasDataListener listener:iAdasEventListeners) {
if (listener != null) {
listener.notifyAutopilotState(adasAIDLAutopilotStateModel);
}
}
}
}
@Override
public void autopilotArrive(AutopilotWayArrive autopilotWayArrive) {
Logger.d(TAG,"autopilotArrive " + autopilotWayArrive);
if (autopilotWayArrive != null) {
AutopilotWayArrive.ResultBean result = autopilotWayArrive.getResult();
if (result != null) {
AutopilotWayArrive.ResultBean.EndLatLonBean endLatLon = result.getEndLatLon();
if (endLatLon != null) {
AdasAIDLAutopilotArriveModel adasAIDLAutopilotArriveModel = new AdasAIDLAutopilotArriveModel();
adasAIDLAutopilotArriveModel.setCarType(result.getCarType());
adasAIDLAutopilotArriveModel.setLat(endLatLon.getLat());
adasAIDLAutopilotArriveModel.setLon(endLatLon.getLon());
for (AdasDataListener listener:iAdasEventListeners) {
if (listener != null) {
listener.autopilotArrive(adasAIDLAutopilotArriveModel);
}
}
}
}
}
}
@Override
public void onWebSocketConnectSuccess() {
Logger.d(TAG,"websocket连接成功");
}
@Override
public void onWebSocketConnectFailed() {
Logger.d(TAG,"websocket连接失败");
}
}

View File

@@ -0,0 +1,58 @@
package com.mogo.module.adas;
import android.content.Context;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.facade.template.IProvider;
import com.mogo.service.MogoServicePaths;
import com.mogo.utils.logger.Logger;
import com.zhidao.support.adas.high.AdasManager;
/**
* ADAS 模块
*
* @author
* @date 4/21/21 3:39 PM
* wikihttp://wiki.zhidaohulian.com/pages/viewpage.action?pageId=52840459
*/
@Route(path = MogoServicePaths.PATH_ADAS)
public class AdasProvider implements IProvider {
private final String TAG = "AdasProvider";
private AdasEventManager adasEventManager;
@Override
public void init(Context context) {
Logger.d(TAG, "初始化 AdasProvider 模块");
adasEventManager = new AdasEventManager();
initAdas(context, adasEventManager);
}
private void initAdas(Context context, AdasEventManager adasEventManager) {
AdasManager.getInstance().create(context);
AdasManager.getInstance().setOnAdasListener(adasEventManager);
AdasManager.getInstance().setOnAdasConnectStatusListener(adasEventManager);
}
public void addAdasEventListener(AdasDataListener listener) {
adasEventManager.addEventListener(listener);
}
public void removeAdasEventListener(AdasDataListener listener) {
adasEventManager.removeEventListener(listener);
}
public void addAdaStatusListener(AdasStatusListener listener) {
adasEventManager.addStatusListener(listener);
}
public void removeAdasStatusListener(AdasStatusListener listener) {
adasEventManager.removeStatusListener(listener);
}
public void sendWsMessage(String msg) {
AdasManager.getInstance().aiCloudToAdasData(msg);
}
}

View File

@@ -0,0 +1,14 @@
package com.mogo.module.adas;
/**
* Created by XuYong on 4/28/21 16:19
*/
public abstract class AdasStatusListener {
public void onServiceConnected() {
};
public void onServiceDisconnected() {
};
}

View File

@@ -0,0 +1,31 @@
package com.mogo.module.adas;
import com.zhidao.support.adas.high.bean.WarnMessageInfo;
/**
* @author nie yunlong
* @des
* @date 2020/10/22
*/
public class WarnMessageModel {
private String action;
private WarnMessageInfo values;
public String getAction() {
return action;
}
public void setAction(String action) {
this.action = action;
}
public WarnMessageInfo getValues() {
return values;
}
public void setValues(WarnMessageInfo values) {
this.values = values;
}
}

View File

@@ -0,0 +1,30 @@
package com.mogo.module.adas;
/**
* @author donghongyu
* @date 4/21/21 2:52 PM
*/
public class 占位文件可删除 {
/** TODO 本模块提供能力范围
* 1、与工控机数据交互具体能力与 @宋克难 沟通
* a、建立车机与工控机的数据通路
* b、保证数据通路的稳定性
*
* 2、暴露API接口共上层业务使用
* a、上层业务可主动订阅、取消订阅数据
* b、自动驾驶控制下发
* b、自动驾驶状态获取
* c、自动驾驶规划路径下发
* e、ADAS识别报警
*
* 3、项目中已经使用到的ADAS数据的业务如下可参考下面业务层使用情况来封装本模块的API
* AdasControlCommandParameter
* AdasLogWriter
* AdasObjectUtils
* CarModelInfoNetApiServices
* LogWriter
* MogoADASController
* OnAdasListenerAdapter
*/
}

View File

@@ -0,0 +1,17 @@
package com.amap.navi.mogo_module_adas;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* Example local unit test, which will execute on the development machine (host).
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
public class ExampleUnitTest {
@Test
public void addition_isCorrect() {
assertEquals(4, 2 + 2);
}
}

View File

@@ -311,6 +311,11 @@ public class MogoServicePaths {
*/
public static final String PATH_SMALL_MAP = "/small_map/api";
/**
* ADAS 模块
*/
public static final String PATH_ADAS = "/adas/api";
/*
*前方碰撞预警 未碰撞
* */

View File

@@ -42,7 +42,7 @@ dependencies {
annotationProcessor rootProject.ext.dependencies.aroutercompiler
implementation rootProject.ext.dependencies.adasapi
implementation rootProject.ext.dependencies.adasconfigapi
implementation "com.zhidao.support.adas:high:1.1.7.4"
implementation project(':modules:mogo-module-adas')
if (Boolean.valueOf(RELEASE)) {
api rootProject.ext.dependencies.mogomap
implementation rootProject.ext.dependencies.mogomapapi

View File

@@ -10,11 +10,15 @@ import android.text.TextUtils;
import android.util.Log;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.commons.network.SubscribeImpl;
import com.mogo.commons.network.Utils;
import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.module.adas.AdasDataListener;
import com.mogo.module.adas.AdasProvider;
import com.mogo.module.adas.AdasStatusListener;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.adas.IMogoADASController;
import com.mogo.service.adas.IMogoAdasCarDataCallback;
@@ -44,7 +48,6 @@ import com.zhidao.adasconfig.common.config.EnumCarChatIncognitoMode;
import com.zhidao.adasconfig.common.config.EnumCarHeading;
import com.zhidao.adasconfig.common.config.EnumSkinStyle;
import com.zhidao.autopilot.support.api.AutopilotServiceManage;
import com.zhidao.autopilot.support.api.IAutopilotServiceStatusListener;
import com.zhidao.autopilot.support.api.IAutopolitDataCallBack;
import com.zhidao.autopilotservice.model.AdasAIDLAutopilotArriveModel;
import com.zhidao.autopilotservice.model.AdasAIDLAutopilotStateModel;
@@ -91,7 +94,10 @@ public class MogoADASController implements IMogoADASController {
private boolean mIsReleased = true;
private IAutopolitDataCallBack mAutopolitDataCallBack;
//private IAutopolitDataCallBack mAutopolitDataCallBack;
private AdasDataListener mAdasDataListener;
private AdasProvider adasProvider;
/**
* 获取adas前车距离
@@ -117,12 +123,12 @@ public class MogoADASController implements IMogoADASController {
*/
private final Handler mAdasRecognizedRecHandler = new Handler(WorkThreadHandler.newInstance("AdasRecognizedRecThread").getLooper()) {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.obj instanceof List) {
mAutopolitDataCallBack.notifyOwnerCarRect((List<AdasAIDLOwnerCarRectModel>) msg.obj);
} else if (msg.obj == null) {
mAutopolitDataCallBack.notifyOwnerCarRect(null);
public void handleMessage( Message msg ) {
super.handleMessage( msg );
if ( msg.obj instanceof List ) {
mAdasDataListener.notifyOwnerCarRect( ( List< AdasAIDLOwnerCarRectModel > ) msg.obj );
} else if(msg.obj == null ){
mAdasDataListener.notifyOwnerCarRect( null );
}
}
};
@@ -298,26 +304,31 @@ public class MogoADASController implements IMogoADASController {
if (SingletonsHolder.get(IMogoStatusManager.class).isVrMode()) {
return;
}
Logger.d(TAG, Log.getStackTraceString(new Throwable()));
init(AbsMogoApplication.getApp());
AutopilotServiceManage.getInstance().registerAutopilotServiceStatusListener(new IAutopilotServiceStatusListener() {
Logger.d( TAG, Log.getStackTraceString( new Throwable() ) );
init( AbsMogoApplication.getApp() );
adasProvider.addAdaStatusListener(new AdasStatusListener() {
@Override
public void onServiceConnected() {
super.onServiceConnected();
Logger.d( TAG, "adas statuslistener connected & send sn");
AutopilotServiceManage.getInstance().aiCloudToAdasData(Utils.getSn()+"xavier");
invokeShowADASOperation();
}
@Override
public void onServiceDisconnected() {
Logger.d( TAG, "adas statuslistener disconnected");
super.onServiceDisconnected();
}
});
invokeShowADASOperation();
if (mAutopolitDataCallBack == null) {
mAutopolitDataCallBack = new IAutopolitDataCallBack() {
if ( mAdasDataListener == null ) {
mAdasDataListener = new AdasDataListener() {
@Override
public void sendMsg(String msg) {
for (IMogoAdasDataCallback callback : mAdasDataCallbackList) {
public void sendMsg( String msg ) {
Logger.d( TAG, "adas AdasDataListener sendmsg " + msg);
for ( IMogoAdasDataCallback callback : mAdasDataCallbackList ) {
try {
callback.onAdasDataCallback(msg);
} catch (Exception e) {
@@ -327,8 +338,8 @@ public class MogoADASController implements IMogoADASController {
}
@Override
public void cameraEyeDetectResult(String detectResult) {
public void cameraEyeDetectResult( String detectResult ) {
Logger.d( TAG, "detectResult " + detectResult);
try {
JSONObject jsonObjectWs = new JSONObject(detectResult);
String action = jsonObjectWs.optString("action");
@@ -354,8 +365,9 @@ public class MogoADASController implements IMogoADASController {
@Override
public void requestGetCarModelListInfo() {
if (DebugConfig.isMapBased()) {
Logger.d(TAG, "requestGetCarModelListInfo");
Logger.d( TAG, "requestGetCarModelListInfo ");
if ( DebugConfig.isMapBased() ) {
Logger.d( TAG, "requestGetCarModelListInfo" );
// 向adas发送车模list
String carModelList = SharedPrefsMgr.getInstance(context).getString("CAR_MODEL_LIST", "");
if (carModelList != null && !carModelList.isEmpty()) {
@@ -382,8 +394,9 @@ public class MogoADASController implements IMogoADASController {
}
@Override
public void autopilotArrive(AdasAIDLAutopilotArriveModel autopilotArriveModel) {
if (autopilotArriveModel == null) {
public void autopilotArrive( AdasAIDLAutopilotArriveModel autopilotArriveModel ) {
Logger.d( TAG, "autopilotArriveModel " + autopilotArriveModel);
if ( autopilotArriveModel == null ) {
return;
}
if (mAdasOCHCallback != null) {
@@ -396,14 +409,16 @@ public class MogoADASController implements IMogoADASController {
}
@Override
public void ownerCarStateInfo(String ownerCarStateInfo) {
public void ownerCarStateInfo( String ownerCarStateInfo ) {
Logger.d( TAG, "ownerCarStateInfo " + ownerCarStateInfo);
Message message = mAdasLocationRecHandler.obtainMessage();
message.obj = ownerCarStateInfo;
message.sendToTarget();
}
@Override
public void notifyOwnerCarState(AdasAIDLOwnerCarStateModel ownerCarStateModel) {
public void notifyOwnerCarState( AdasAIDLOwnerCarStateModel ownerCarStateModel ) {
Logger.d( TAG, "AdasAIDLOwnerCarStateModel " + ownerCarStateModel);
ADASCarStateInfo stateInf = new ADASCarStateInfo();
stateInf.setAction("state");
ADASCarStateInfo.ValuesBean bean = new ADASCarStateInfo.ValuesBean();
@@ -455,7 +470,7 @@ public class MogoADASController implements IMogoADASController {
Logger.i("ADAS-REC-timer", "cost " + (System.currentTimeMillis() - start) + "ms");
}
};
AutopilotServiceManage.getInstance().registerAutopilotDataListener(mAutopolitDataCallBack);
adasProvider.addAdasEventListener(mAdasDataListener);
}
}
@@ -555,6 +570,7 @@ public class MogoADASController implements IMogoADASController {
AutopilotServiceManage.getInstance().init(context);
mIsReleased = false;
mAdasMessageFactory = new MyMessageFactory();
adasProvider = ARouter.getInstance().navigation(AdasProvider.class);
this.context = context;
}
@@ -686,7 +702,8 @@ public class MogoADASController implements IMogoADASController {
@Override
public void release() {
mIsReleased = true;
AutopilotServiceManage.getInstance().unRegisterAutopilotDataListener(mAutopolitDataCallBack);
//AutopilotServiceManage.getInstance().unRegisterAutopilotDataListener( mAutopolitDataCallBack );
adasProvider.removeAdasEventListener(mAdasDataListener);
AutopilotServiceManage.getInstance().release();
}
@@ -853,7 +870,7 @@ public class MogoADASController implements IMogoADASController {
}
@Override
public void mockAdasRecognized(String json) {
mAutopolitDataCallBack.cameraEyeDetectResult(json);
public void mockAdasRecognized( String json ) {
mAdasDataListener.cameraEyeDetectResult( json );
}
}

View File

@@ -1,3 +1,4 @@
include ':modules:mogo-module-adas'
include ':foudations:mogo-aicloud-services-sdk'
include ':foudations:mogo-aicloud-services-apk'
include ':foudations:httpdns-mogo'

View File

@@ -1,18 +0,0 @@
package com.alibaba.android.arouter.routes;
import com.alibaba.android.arouter.facade.enums.RouteType;
import com.alibaba.android.arouter.facade.model.RouteMeta;
import com.alibaba.android.arouter.facade.template.IRouteGroup;
import com.mogo.test.crashreport.upgrade.UpgradeReportProvider;
import java.lang.Override;
import java.lang.String;
import java.util.Map;
/**
* DO NOT EDIT THIS FILE!!! IT WAS GENERATED BY AROUTER. */
public class ARouter$$Group$$upgradereport implements IRouteGroup {
@Override
public void loadInto(Map<String, RouteMeta> atlas) {
atlas.put("/upgradereport/api", RouteMeta.build(RouteType.PROVIDER, UpgradeReportProvider.class, "/upgradereport/api", "upgradereport", null, -1, -2147483648));
}
}

View File

@@ -1,18 +0,0 @@
package com.alibaba.android.arouter.routes;
import com.alibaba.android.arouter.facade.enums.RouteType;
import com.alibaba.android.arouter.facade.model.RouteMeta;
import com.alibaba.android.arouter.facade.template.IProviderGroup;
import com.mogo.test.crashreport.upgrade.UpgradeReportProvider;
import java.lang.Override;
import java.lang.String;
import java.util.Map;
/**
* DO NOT EDIT THIS FILE!!! IT WAS GENERATED BY AROUTER. */
public class ARouter$$Providers$$crashreportupgrade implements IProviderGroup {
@Override
public void loadInto(Map<String, RouteMeta> providers) {
providers.put("com.mogo.test.crashreport.upgrade.UpgradeReportProvider", RouteMeta.build(RouteType.PROVIDER, UpgradeReportProvider.class, "/upgradereport/api", "upgradereport", null, -1, -2147483648));
}
}

View File

@@ -1,17 +0,0 @@
package com.alibaba.android.arouter.routes;
import com.alibaba.android.arouter.facade.template.IRouteGroup;
import com.alibaba.android.arouter.facade.template.IRouteRoot;
import java.lang.Class;
import java.lang.Override;
import java.lang.String;
import java.util.Map;
/**
* DO NOT EDIT THIS FILE!!! IT WAS GENERATED BY AROUTER. */
public class ARouter$$Root$$crashreportupgrade implements IRouteRoot {
@Override
public void loadInto(Map<String, Class<? extends IRouteGroup>> routes) {
routes.put("upgradereport", ARouter$$Group$$upgradereport.class);
}
}

View File

@@ -1,18 +0,0 @@
/**
* Automatically generated file. DO NOT MODIFY
*/
package com.mogo.test.crashreport.upgrade;
public final class BuildConfig {
public static final boolean DEBUG = Boolean.parseBoolean("true");
public static final String LIBRARY_PACKAGE_NAME = "com.mogo.test.crashreport.upgrade";
/**
* @deprecated APPLICATION_ID is misleading in libraries. For the library package name use LIBRARY_PACKAGE_NAME
*/
@Deprecated
public static final String APPLICATION_ID = "com.mogo.test.crashreport.upgrade";
public static final String BUILD_TYPE = "debug";
public static final String FLAVOR = "";
public static final int VERSION_CODE = 1;
public static final String VERSION_NAME = "2.0.12";
}

View File

@@ -1,28 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mogo.test.crashreport.upgrade"
android:versionCode="1"
android:versionName="2.0.12" >
<uses-sdk
android:minSdkVersion="19"
android:targetSdkVersion="22" />
<application>
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="dollar_openBracket_applicationId_closeBracket.fileProvider"
android:exported="false"
android:grantUriPermissions="true" >
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths" />
</provider>
<activity
android:name="com.tencent.bugly.beta.ui.BetaActivity"
android:configChanges="keyboardHidden|orientation|screenSize|locale"
android:theme="@android:style/Theme.Translucent" />
</application>
</manifest>

View File

@@ -1 +0,0 @@
[{"outputType":{"type":"AAPT_FRIENDLY_MERGED_MANIFESTS"},"apkData":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"2.0.12","enabled":true,"outputFile":"crashreport-upgrade-debug.aar","fullName":"debug","baseName":"debug"},"path":"AndroidManifest.xml","properties":{"packageId":"com.mogo.test.crashreport.upgrade","split":""}}]

View File

@@ -1 +0,0 @@
{"jetified-arouter-compiler-1.2.2.jar (com.alibaba:arouter-compiler:1.2.2)":false,"auto-service-1.0-rc2.jar (com.google.auto.service:auto-service:1.0-rc2)":false}

View File

@@ -1,2 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/zhongchao/Documents/androidProject/Launcher/foudations/httpdns-base/src/main/jniLibs"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/zhongchao/Documents/androidProject/Launcher/foudations/httpdns-base/src/debug/jniLibs"/></dataSet></merger>

View File

@@ -1,2 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/zhongchao/Documents/androidProject/Launcher/foudations/httpdns-base/src/main/shaders"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/zhongchao/Documents/androidProject/Launcher/foudations/httpdns-base/src/debug/shaders"/></dataSet></merger>

View File

@@ -1,2 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/zhongchao/Documents/androidProject/Launcher/foudations/httpdns-base/src/main/assets"/><source path="/Users/zhongchao/Documents/androidProject/Launcher/foudations/httpdns-base/build/intermediates/shader_assets/debug/compileDebugShaders/out"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/zhongchao/Documents/androidProject/Launcher/foudations/httpdns-base/src/debug/assets"/></dataSet></merger>

View File

@@ -1,2 +0,0 @@
#Mon May 17 12:06:15 CST 2021
/Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/res/xml/provider_paths.xml=/Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/build/intermediates/packaged_res/debug/xml/provider_paths.xml

View File

@@ -1,2 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<merger version="3"><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/res"/><source path="/Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/build/generated/res/rs/debug"/><source path="/Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/build/generated/res/resValues/debug"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main" generated-set="main$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/res"><file name="provider_paths" path="/Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/res/xml/provider_paths.xml" qualifiers="" type="xml"/></source><source path="/Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/build/generated/res/rs/debug"/><source path="/Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/build/generated/res/resValues/debug"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/debug/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug" generated-set="debug$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/debug/res"/></dataSet><mergedItems/></merger>

View File

@@ -1,28 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mogo.test.crashreport.upgrade"
android:versionCode="1"
android:versionName="2.0.12" >
<uses-sdk
android:minSdkVersion="19"
android:targetSdkVersion="22" />
<application>
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.fileProvider"
android:exported="false"
android:grantUriPermissions="true" >
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths" />
</provider>
<activity
android:name="com.tencent.bugly.beta.ui.BetaActivity"
android:configChanges="keyboardHidden|orientation|screenSize|locale"
android:theme="@android:style/Theme.Translucent" />
</application>
</manifest>

View File

@@ -1,3 +0,0 @@
R_DEF: Internal format may change without notice
local
xml provider_paths

View File

@@ -1,43 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3 package="com.mogo.test.crashreport.upgrade"
4 android:versionCode="1"
5 android:versionName="2.0.12" >
6
7 <uses-sdk
8 android:minSdkVersion="19"
8-->/Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml
9 android:targetSdkVersion="22" />
9-->/Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml
10
11 <application>
11-->/Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml:4:5-19:19
12 <provider
12-->/Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml:5:9-13:20
13 android:name="androidx.core.content.FileProvider"
13-->/Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml:6:13-62
14 android:authorities="dollar_openBracket_applicationId_closeBracket.fileProvider"
14-->/Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml:7:13-64
15 android:exported="false"
15-->/Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml:8:13-37
16 android:grantUriPermissions="true" >
16-->/Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml:9:13-47
17 <meta-data
17-->/Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml:10:13-12:58
18 android:name="android.support.FILE_PROVIDER_PATHS"
18-->/Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml:11:17-67
19 android:resource="@xml/provider_paths" />
19-->/Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml:12:17-55
20 </provider>
21
22 <activity
22-->/Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml:15:9-18:64
23 android:name="com.tencent.bugly.beta.ui.BetaActivity"
23-->/Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml:16:13-66
24 android:configChanges="keyboardHidden|orientation|screenSize|locale"
24-->/Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml:17:13-81
25 android:theme="@android:style/Theme.Translucent" />
25-->/Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml:18:13-61
26 </application>
27
28</manifest>

View File

@@ -1 +0,0 @@
[{"outputType":{"type":"MERGED_MANIFESTS"},"apkData":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"2.0.12","enabled":true,"outputFile":"crashreport-upgrade-debug.aar","fullName":"debug","baseName":"debug"},"path":"../../library_manifest/debug/AndroidManifest.xml","properties":{"packageId":"com.mogo.test.crashreport.upgrade","split":""}}]

View File

@@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<!-- /storage/emulated/0/Download/${applicationId}/.beta/apk-->
<external-path name="beta_external_path" path="Download/"/>
<!--/storage/emulated/0/Android/data/${applicationId}/files/apk/-->
<external-path name="beta_external_files_path" path="Android/data/"/>
</paths>

View File

@@ -1,63 +0,0 @@
-- Merging decision tree log ---
manifest
ADDED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml:1:1-20:12
INJECTED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml:1:1-20:12
INJECTED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml:1:1-20:12
INJECTED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml:1:1-20:12
INJECTED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml:1:1-20:12
INJECTED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml:1:1-20:12
INJECTED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml:1:1-20:12
package
ADDED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml:2:5-48
INJECTED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml
INJECTED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml
android:versionName
INJECTED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml
ADDED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml:1:1-20:12
INJECTED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml
android:versionCode
INJECTED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml
ADDED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml:1:1-20:12
INJECTED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml
xmlns:android
ADDED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml:1:11-69
application
ADDED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml:4:5-19:19
provider#androidx.core.content.FileProvider
ADDED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml:5:9-13:20
android:grantUriPermissions
ADDED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml:9:13-47
android:authorities
ADDED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml:7:13-64
android:exported
ADDED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml:8:13-37
android:name
ADDED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml:6:13-62
meta-data#android.support.FILE_PROVIDER_PATHS
ADDED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml:10:13-12:58
android:resource
ADDED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml:12:17-55
android:name
ADDED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml:11:17-67
activity#com.tencent.bugly.beta.ui.BetaActivity
ADDED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml:15:9-18:64
android:configChanges
ADDED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml:17:13-81
android:theme
ADDED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml:18:13-61
android:name
ADDED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml:16:13-66
uses-sdk
INJECTED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml reason: use-sdk injection requested
INJECTED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml
INJECTED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml
INJECTED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml
INJECTED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml
android:targetSdkVersion
INJECTED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml
ADDED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml
INJECTED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml
android:minSdkVersion
INJECTED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml
ADDED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml
INJECTED from /Users/zhongchao/Documents/androidProject/Launcher/test/crashreport-upgrade/src/main/AndroidManifest.xml