merge qa_yingyan_custom

This commit is contained in:
zhongchao
2021-05-25 16:25:41 +08:00
41 changed files with 3636 additions and 183 deletions

View File

@@ -65,7 +65,7 @@ public class MogoApplication extends AbsMogoApplication {
crashSystem.init();
//设置debug模式日志不上传
crashSystem.setDebug(BuildConfig.DEBUG);
Logger.init(BuildConfig.DEBUG ? LogLevel.DEBUG : LogLevel.OFF);
Logger.init(BuildConfig.DEBUG ? LogLevel.OFF : LogLevel.OFF);
if (DebugConfig.isNeedLoadGuideModule()) {
MogoModulePaths.addModule(new MogoModule(MogoModulePaths.PATH_GUIDE, MogoModulePaths.PATH_GUIDE));

View File

@@ -11,4 +11,35 @@ mapAutoView.getMapAutoViewHelper()?.setMapViewVisualAngle(type
type 0=近景 1=中景 2=远景
视角切换监听事件
mapAutoView.setOnMapViewVisualAngleChangeListener
mapAutoView.setOnMapViewVisualAngleChangeListener
8.5.17
更新了顺义数据
8.5.19
修改自车模型
8.5.22
修改自车模型
2D锚点缩放功能
普通模式poi显示问题
8.5.24
优化渲染时间
更新衡阳数据
临时处理绘制3D模型策略
8.5.25
修改远景下拖动地图偶现黑屏问题
关闭部分多余日志
8.5.26
更新顺义高精数据
优化渲染效率
修改切换后台黑屏问题
8.5.28
修改远视角高度bug并修正切换动画
修改路牌显示
修改红绿灯摄像头显示bug
优化渲染效率

View File

@@ -42,7 +42,7 @@ public interface IMogoMarkerManager {
void removeMarkers( String tag );
/**
* 移除地图上所有markers
* 移除地图上添加的所有markers
*/
void removeMarkers();
@@ -63,6 +63,7 @@ public interface IMogoMarkerManager {
* @return
*/
List< IMogoMarker > getMarkers( String tag );
/**
* 获取所有类型的marker。
*

View File

@@ -74,6 +74,16 @@ public class MogoMarkerManager implements IMogoMarkerManager {
MogoMarkersHandler.getInstance().removeAll();
}
@Override
public void visibleAllMarkers() {
MogoMarkersHandler.getInstance().visibleAll();
}
@Override
public void inVisibleAllMarkers() {
MogoMarkersHandler.getInstance().inVisibleAll();
}
@Override
public List< IMogoMarker > getMarkers( String tag ) {
return MogoMarkersHandler.getInstance().getMarkers( tag );

View File

@@ -1,7 +1,7 @@
package com.mogo.module.common.drawer;
import android.os.Message;
import android.text.TextUtils;
import android.util.Log;
import com.mogo.cloud.socket.entity.SocketDownData;
import com.mogo.commons.debug.DebugConfig;
@@ -12,9 +12,9 @@ import com.mogo.module.common.MogoApisHandler;
import com.mogo.module.common.constants.DataTypes;
import com.mogo.module.common.utils.SimpleHandlerThreadPool;
import com.mogo.service.adas.entity.ADASRecognizedResult;
import com.mogo.service.adas.IMogoADASController;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -79,7 +79,7 @@ class AdasRecognizedResultDrawer extends BaseDrawer {
return;
}
Map<String, IMogoMarker> newAdasRecognizedMarkersCaches = new HashMap<>();
Map<String, IMogoMarker> newAdasRecognizedMarkersCaches = new ConcurrentHashMap<>();
List<ADASRecognizedResult> newDiffSet = new ArrayList<>();
for (ADASRecognizedResult recognizedListResult : resultList) {
@@ -91,21 +91,23 @@ class AdasRecognizedResultDrawer extends BaseDrawer {
String uniqueKey = recognizedListResult.uuid;
IMogoMarker marker = mMarkersCaches.remove(uniqueKey);
if (marker != null && !marker.isDestroyed()) {
updateCacheMarkerRes(marker, recognizedListResult);
renderAdasOneFrame(marker, uniqueKey, recognizedListResult, newAdasRecognizedMarkersCaches);
} else {
// 新增差集
// 新增添加进差集
newDiffSet.add(recognizedListResult);
}
}
removeUselessMarker();
removeUselessLastRecord();
// 能复用的 marker 数量
int cachedMarkerSize = mMarkersCaches.size();
// 需要新增的 marker 数量
int newDiffSetSize = newDiffSet.size();
// 能复用的数量
int size = cachedMarkerSize >= newDiffSetSize ? newDiffSetSize : cachedMarkerSize;
int size = Math.min(cachedMarkerSize, newDiffSetSize);
// 复用过期 marker
if (newDiffSetSize > 0) {
@@ -118,30 +120,17 @@ class AdasRecognizedResultDrawer extends BaseDrawer {
ADASRecognizedResult old = mLastPositions.remove(entry.getKey());
IMogoMarker marker = entry.getValue();
if (marker == null) {
Log.d("EmArrow", "存在复用marker为空数据");
continue;
}
// 更新资源内容
// 复用更新marker 3D资源
if (old == null || old.type != recognizedListResult.type) {
String resIdVal = null;
int resId = getModelRes(recognizedListResult.type);
resIdVal = resId + "";
String resName = mMarkerCachesResMd5Values.get(resIdVal);
if (!TextUtils.isEmpty(resName)) {
if (!TextUtils.equals(resName, marker.getMarkerResName())) {
marker.use3DResource(resName);
}
} else {
resName = marker.use3DResource(resId);
mMarkerCachesResMd5Values.put(resIdVal, resName);
}
updateCacheMarkerRes(marker, recognizedListResult);
}
renderAdasOneFrame(marker, uniqueKey, recognizedListResult, newAdasRecognizedMarkersCaches);
}
// 复用过后还需新增的 marker
for (int i = size; i < newDiffSetSize; i++) {
ADASRecognizedResult recognizedListResult = newDiffSet.get(i);
String uniqueKey = recognizedListResult.uuid;
@@ -158,6 +147,46 @@ class AdasRecognizedResultDrawer extends BaseDrawer {
mMarkersCaches = newAdasRecognizedMarkersCaches;
}
/**
* todo 后面涉及到此类变化的数据均改动
*
* @param marker
* @param recognizedListResult
*/
private void updateCacheMarkerRes(IMogoMarker marker, ADASRecognizedResult recognizedListResult) {
String resIdVal;
int resId = getModelRes(recognizedListResult.type);
resIdVal = resId + "";
String resName = mMarkerCachesResMd5Values.get(resIdVal);
if (!TextUtils.isEmpty(resName)) {
if (!TextUtils.equals(resName, marker.getMarkerResName())) {
marker.use3DResource(resName);
}
} else {
resName = marker.use3DResource(resId);
mMarkerCachesResMd5Values.put(resIdVal, resName);
}
}
private void removeUselessLastRecord() { // todo 最好重新设计一个数据结构用于多线程数据过期失效的场景参见redis数据过期
if (mLastPositions == null || mLastPositions.isEmpty()) {
return;
}
IMogoADASController adasControllerApi = MogoApisHandler.getInstance().getApis().getAdasControllerApi();
if (TextUtils.isEmpty(adasControllerApi.getSatelliteTime()) || adasControllerApi.getSatelliteTime().equals("0")) {
return;
}
Iterator<ADASRecognizedResult> iterator = mLastPositions.values().iterator();
Log.d("EmArrow","removeUselessLastRecord size : " + mLastPositions.size());
while (iterator.hasNext()) {
ADASRecognizedResult result = iterator.next();
long internal = result.satelliteTime - Long.parseLong(adasControllerApi.getSatelliteTime());
if (internal > 1000) {
iterator.remove();
}
}
}
private boolean isUselessValue(ADASRecognizedResult recognizedListResult) {
if (recognizedListResult == null) {
return true;
@@ -174,7 +203,7 @@ class AdasRecognizedResultDrawer extends BaseDrawer {
}
/**
* 绘制某个物体的一个数据
* 绘制某个物体的一个数据 todo 缓存问题
*
* @param recognizedListResult
* @param newAdasRecognizedMarkersCaches
@@ -185,22 +214,21 @@ class AdasRecognizedResultDrawer extends BaseDrawer {
Map<String, IMogoMarker> newAdasRecognizedMarkersCaches) {
final long start = System.currentTimeMillis();
ADASRecognizedResult lastPosition = mLastPositions.remove(uniqueKey);
double lastLon = -1;
double lastLat = -1;
if (lastPosition != null) {
lastLon = lastPosition.lon;
lastLat = lastPosition.lat;
}
double[] matchLonLat = getMatchLonLat(recognizedListResult.uuid, recognizedListResult.lon, recognizedListResult.lat, recognizedListResult.heading, lastLon, lastLat);
recognizedListResult.lon = matchLonLat[0];
recognizedListResult.lat = matchLonLat[1];
Log.d("EmArrow", "renderAdasOneFrame uuid : " + uniqueKey + " type : " + recognizedListResult.type);
ADASRecognizedResult lastPosition = mLastPositions.remove(uniqueKey); //todo 缓存数据太多
// double lastLon = -1;
// double lastLat = -1;
// if (lastPosition != null) {
// lastLon = lastPosition.lon;
// lastLat = lastPosition.lat;
// }
// double[] matchLonLat = getMatchLonLat(recognizedListResult.uuid, recognizedListResult.lon, recognizedListResult.lat, recognizedListResult.heading, lastLon, lastLat);
//
// recognizedListResult.lon = matchLonLat[0];
// recognizedListResult.lat = matchLonLat[1];
mLastPositions.put(uniqueKey, recognizedListResult);
// Logger.d( "matchRoad", "cost = %s", System.currentTimeMillis() - start );
// Log.d( "matchRoad", "cost = %s", System.currentTimeMillis() - start );
newAdasRecognizedMarkersCaches.put(uniqueKey, marker);
if (lastPosition != null) {
long interval = computeAnimDuration(lastPosition.systemTime, recognizedListResult.systemTime, lastPosition.satelliteTime, recognizedListResult.satelliteTime);
@@ -208,9 +236,9 @@ class AdasRecognizedResultDrawer extends BaseDrawer {
final MogoLatLng renderLoc = new MogoLatLng(recognizedListResult.lat, recognizedListResult.lon);
long cost = System.currentTimeMillis() - start;
final long intervalRef = interval - cost;
SimpleHandlerThreadPool.getInstance().postRender(() -> {
marker.addDynamicAnchorPosition(renderLoc, (float) recognizedListResult.heading, intervalRef);
});
// SimpleHandlerThreadPool.getInstance().postRender(() -> {
marker.addDynamicAnchorPosition(renderLoc, (float) recognizedListResult.heading, intervalRef);
// });
} else {
marker.setRotateAngle(((float) recognizedListResult.heading));
marker.setPosition(recognizedListResult.lat, recognizedListResult.lon);
@@ -222,14 +250,7 @@ class AdasRecognizedResultDrawer extends BaseDrawer {
marker.setAnchorColor(carColor);
if (shouldShowSpeed(recognizedListResult.type)) {
Message msg = mRenderThreadHandler.obtainMessage();
SpeedData obj = new SpeedData();
obj.context = mContext;
obj.marker = marker;
obj.speed = recognizedListResult.speed;
msg.obj = obj;
msg.what = MSG_DISPLAY_SPEED;
msg.sendToTarget();
showSelfSpeed(marker, recognizedListResult.speed, recognizedListResult.uuid, recognizedListResult.type, MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode());
}
}
@@ -244,9 +265,8 @@ class AdasRecognizedResultDrawer extends BaseDrawer {
return null;
}
String resIdVal = null;
int resId = getModelRes(recognizedListResult.type);
resIdVal = resId + "";
String resIdVal = resId + "";
String carColor = recognizedListResult.color;
if (TextUtils.isEmpty(carColor)) {

View File

@@ -20,12 +20,15 @@ import com.mogo.module.common.uploadintime.SnapshotLocationController;
import com.mogo.utils.WorkThreadHandler;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Random;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import static com.mogo.module.common.constants.DataTypes.TYPE_MARKER_ADAS;
import static com.mogo.module.common.constants.DataTypes.TYPE_MARKER_CLOUD_DATA;
import static com.mogo.realtime.entity.CloudRoadData.FROM_ADAS;
import static com.mogo.realtime.entity.CloudRoadData.FROM_MY_LOCATION;
import static java.lang.Math.PI;
public
@@ -37,35 +40,9 @@ public
*/
class BaseDrawer {
/**
* 速度显示对象
*/
public class SpeedData {
public IMogoMarker marker;
public Context context;
double speed;
public void showSpeed() {
try {
showSelfSpeed(context,
marker,
speed,
MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode());
} catch (Exception e) {
e.printStackTrace();
}
}
}
// 移除过期的 marker
public static final int MSG_REMOVE_DIRTY_MARKERS = 9990;
/**
* 显示速度
*/
public static final int MSG_DISPLAY_SPEED = 11;
/**
* 地图刷新频率
*/
@@ -79,20 +56,31 @@ class BaseDrawer {
/**
* 地图内部资源md5缓存便于资源复用
*/
protected static final Map<String, String> mMarkerCachesResMd5Values = new HashMap<>();
protected static final ConcurrentHashMap<String, String> mMarkerCachesResMd5Values = new ConcurrentHashMap<>();
/**
* 上一帧数据的缓存
*/
protected Map<String, IMogoMarker> mMarkersCaches = new HashMap<>();
protected static Map<String, IMogoMarker> mMarkersCaches = new ConcurrentHashMap<>();
protected final Context mContext;
protected static Handler mRenderThreadHandler = null;
private TextView mSpeedView;
public BaseDrawer() {
mContext = AbsMogoApplication.getApp();
initWorkThreadHandler();
initView();
}
private void initView() {
if (mSpeedView == null) {
mSpeedView = new TextView(mContext);
mSpeedView.setSingleLine(false);
mSpeedView.setTextColor(Color.WHITE);
mSpeedView.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));
mSpeedView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
}
}
private static Handler mWorkThreadHandler;
@@ -124,32 +112,6 @@ class BaseDrawer {
}
};
}
if (mRenderThreadHandler == null) {
mRenderThreadHandler = new Handler(WorkThreadHandler.newInstance("render-thread-" + new Random().nextLong()).getLooper()) {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what == MSG_DISPLAY_SPEED) {
if (msg.obj instanceof SpeedData) {
showSpeed((SpeedData) msg.obj);
}
}
}
};
}
}
/**
* 显示速度
*
* @param data {@link SpeedData}
*/
private static void showSpeed(SpeedData data) {
if (data == null) {
return;
}
data.showSpeed();
}
/**
@@ -166,6 +128,7 @@ class BaseDrawer {
iterator.remove();
}
}
}
/**
@@ -208,8 +171,7 @@ class BaseDrawer {
AdasRecognizedType recognizedType = AdasRecognizedType.valueFrom(type);
return recognizedType != AdasRecognizedType.classIdBicycle
&& recognizedType != AdasRecognizedType.classIdMoto
&& recognizedType != AdasRecognizedType.classIdPerson
&& recognizedType != AdasRecognizedType.classIdUnKnow; //todo unKnow物体不绘制车速
&& recognizedType != AdasRecognizedType.classIdPerson;
}
/**
@@ -222,7 +184,7 @@ class BaseDrawer {
AdasRecognizedType recognizedType = AdasRecognizedType.valueFrom(type);
if (recognizedType == AdasRecognizedType.classIdCar
|| recognizedType == AdasRecognizedType.classIdTrafficTruck) {
return R.raw.othercar;
return R.raw.othercar; //todo otherCar be replacing tache for now to test,remember to fix
} else if (recognizedType == AdasRecognizedType.classIdTrafficBus) {
return R.raw.bus;
} else if (recognizedType == AdasRecognizedType.classIdBicycle
@@ -233,7 +195,7 @@ class BaseDrawer {
} else if (recognizedType == AdasRecognizedType.classIdWarningArrows) {
return R.raw.arraw;
} else if (recognizedType == AdasRecognizedType.classIdUnKnow) { //todo unKnow物体3D模型
return R.raw.othercar;
return R.raw.tache;
}
return R.raw.people;
}
@@ -252,8 +214,8 @@ class BaseDrawer {
if (recognizedType == AdasRecognizedType.classIdTrafficBus) {
return "#D8D8D8FF";
}
if (recognizedType == AdasRecognizedType.classIdUnKnow){ //todo unKnow颜色绘制
return "#FF2894FF";
if (recognizedType == AdasRecognizedType.classIdUnKnow) { //todo unKnow颜色绘制
return Car3DModelColor.Normal.color;
}
// 距离策略
double[] coordinates = getCurCoordinates();
@@ -328,17 +290,15 @@ class BaseDrawer {
}
}
private TextView mSpeedView = null;
/**
* 展示车辆速度
*
* @param context 上下文
* @param mogoMarker {@link IMogoMarker}
* @param speed 是否显示速度
* @param isVrMode 是否是vrMode
*/
public void showSelfSpeed(Context context, IMogoMarker mogoMarker, double speed, boolean isVrMode) {
public void showSelfSpeed(IMogoMarker mogoMarker, double speed, String uuid, int type, boolean isVrMode) {
Log.d("EmArrow", "showSelf uuid : " + uuid + " speed : " + speed);
if (mogoMarker == null || mogoMarker.isDestroyed()) {
return;
}
@@ -347,26 +307,14 @@ class BaseDrawer {
return;
}
int speedIntVal = (int) (speed * 3.6);
if (speedIntVal <= 0) {
if (speedIntVal <= 0) { //速度为0 隐藏InfoWindow
mogoMarker.hideInfoWindow();
return;
}
String speedVal = speedIntVal + "";
String infoResName = MogoApisHandler.getInstance().getApis().getMapServiceApi().getMapUIController().getMarkerInfoResName(speedVal);
mogoMarker.setInfoWindowOffset(0, 20);
if (TextUtils.isEmpty(infoResName)) {
if (mSpeedView == null) {
mSpeedView = new TextView(context);
mSpeedView.setTextColor(Color.WHITE);
mSpeedView.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));
mSpeedView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
}
mSpeedView.setText(speedVal);
mogoMarker.updateInfoWindowView(mSpeedView);
MogoApisHandler.getInstance().getApis().getMapServiceApi().getMapUIController().setMarkerInfoResName(speedVal, mogoMarker.getMarkerInfoResName());
} else {
mogoMarker.updateInfoWindowView(infoResName);
}
String text = speedIntVal + "\n" + uuid + "\n" + type;
mSpeedView.setText(text);
mogoMarker.updateInfoWindowView(mSpeedView);
}
/**
@@ -506,4 +454,15 @@ class BaseDrawer {
return new double[]{lon, lat};
}
protected String getDataTypes(int fromType) {
switch (fromType) {
case FROM_MY_LOCATION:
return TYPE_MARKER_CLOUD_DATA;
case FROM_ADAS:
return TYPE_MARKER_ADAS;
default:
return TYPE_MARKER_CLOUD_DATA;
}
}
}

View File

@@ -1,6 +1,5 @@
package com.mogo.module.common.drawer;
import android.os.Message;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
@@ -17,7 +16,6 @@ import com.mogo.module.common.MogoApisHandler;
import com.mogo.module.common.R;
import com.mogo.module.common.api.CallChatApi;
import com.mogo.module.common.constants.DataTypes;
import com.mogo.module.common.utils.SimpleHandlerThreadPool;
import com.mogo.service.statusmanager.IMogoStatusChangedListener;
import com.mogo.service.statusmanager.StatusDescriptor;
import com.mogo.utils.ViewUtils;
@@ -26,7 +24,6 @@ import com.zhidao.carchattingprovider.ICarsChattingProvider;
import com.zhidao.carchattingprovider.MogoDriverInfo;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -88,7 +85,7 @@ public class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClic
Logger.d(TAG, "%s - %s", descriptor, isTrue);
mChangeCarModeStatus = true;
sendMessage(MSG_REMOVE_DIRTY_MARKERS, mMarkersCaches);
mMarkersCaches = new HashMap<>();
mMarkersCaches = new ConcurrentHashMap<>();
mLastPositions.clear();
AdasRecognizedResultDrawer.getInstance().notifyVrModeChanged(); //清除ADAS old marker data
}
@@ -135,7 +132,7 @@ public class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClic
}
/**
* mogo 他车、mogo 他车识别的社会车辆、路边单元识别的车辆
* 绘制来自云端的 mogo 他车、mogo 他车识别的社会车辆、路边单元识别的车辆
*
* @param data 自车周边数据
*/
@@ -148,7 +145,7 @@ public class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClic
List<SocketDownData.CloudRoadDataProto> allDatumsList = new ArrayList<>();
prepareData(data.getAllListList(), allDatumsList);
Map<String, IMogoMarker> newMarkersCaches = new HashMap<>(allDatumsList.size());
Map<String, IMogoMarker> newMarkersCaches = new ConcurrentHashMap<>(allDatumsList.size());
List<SocketDownData.CloudRoadDataProto> newDiffSet = new ArrayList<>();
for (SocketDownData.CloudRoadDataProto cloudRoadData : allDatumsList) {
@@ -281,25 +278,14 @@ public class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClic
final MogoLatLng point = new MogoLatLng(cloudRoadData.getWgslat(), cloudRoadData.getWgslon());
long cost = System.currentTimeMillis() - start;
final long intervalRef = interval - cost;
SocketDownData.CloudRoadDataProto finalCloudRoadData = cloudRoadData;
SimpleHandlerThreadPool.getInstance().postRender(() -> marker.addDynamicAnchorPosition(point, (float) finalCloudRoadData.getHeading(), intervalRef));
marker.addDynamicAnchorPosition(point, (float) cloudRoadData.getHeading(), intervalRef);
} else {
marker.setRotateAngle(((float) cloudRoadData.getHeading()));
marker.setPosition(cloudRoadData.getWgslat(), cloudRoadData.getWgslon());
}
marker.setAnchorColor(getModelRenderColor(cloudRoadData.getType(), cloudRoadData.getSpeed(), cloudRoadData.getWgslon(), cloudRoadData.getWgslat(), cloudRoadData.getHeading()));
if (shouldShowSpeed(cloudRoadData.getType())) {
Message msg = mRenderThreadHandler.obtainMessage();
SpeedData obj = new SpeedData();
obj.context = mContext;
obj.marker = marker;
obj.speed = cloudRoadData.getSpeed();
msg.obj = obj;
msg.what = MSG_DISPLAY_SPEED;
msg.sendToTarget();
showSelfSpeed(marker, cloudRoadData.getSpeed(), cloudRoadData.getUuid(), cloudRoadData.getType(), MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode());
}
}
@@ -316,6 +302,7 @@ public class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClic
/**
* vr 模式下显示合并数据,否则只显示 mogo 车辆上报的数据
* 展示融合数据不包括自车定位数据和adas识别数据
*
* @param data 道路数据集合
*/
@@ -359,7 +346,7 @@ public class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClic
}
MogoMarkerOptions options = new MogoMarkerOptions()
.owner(DataTypes.TYPE_MARKER_CLOUD_DATA)
.owner(getDataTypes(data.getFromType()))
.anchor(0.5f, 0.5f)
.rotate((float) data.getHeading())
.object(data)
@@ -380,7 +367,7 @@ public class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClic
options.icon(view);
resIdVal = view.getId() + "";
}
IMogoMarker marker = MogoApisHandler.getInstance().getApis().getMapServiceApi().getMarkerManager(mContext).addMarker(DataTypes.TYPE_MARKER_CLOUD_DATA, options);
IMogoMarker marker = MogoApisHandler.getInstance().getApis().getMapServiceApi().getMarkerManager(mContext).addMarker(getDataTypes(data.getFromType()), options);
cacheMarkerIconResMd5Val(resIdVal, marker);
if (!TextUtils.isEmpty(data.getSn())) {

Binary file not shown.

View File

@@ -38,6 +38,7 @@ import com.mogo.module.service.network.RefreshModel;
import com.mogo.realtime.api.MoGoAiCloudRealTime;
import com.mogo.realtime.socket.IMogoCloudOnMsgListener;
import com.mogo.service.adas.IMogoADASControlStatusChangedListener;
import com.mogo.service.adas.entity.ADASRecognizedResult;
import com.mogo.service.module.IMogoBizActionDoneListener;
import com.mogo.utils.ResourcesHelper;
import com.mogo.utils.ThreadPoolService;
@@ -133,7 +134,11 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
});
}
// 下发的数据
/*
* 云端下发数据与adas定频传输数据均发送至同一Handler线程处理
*/
// 云端下发的数据
MoGoAiCloudRealTime.registerOnMsgListener(new IMogoCloudOnMsgListener() {
@Override
public void onMsgSend(long id) {
@@ -145,14 +150,17 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
DebugConfig.setStatus(DebugConfig.sDownloadSnapshot, true);
Message msg = mSnapshotHandler.obtainMessage();
msg.obj = mogoSnapshotSetData;
msg.what = MSG_SNAPSHOT;
msg.sendToTarget();
}
});
// adas 每隔一秒传递的数据
// adas 每隔一定频率传递过来的数据
MarkerServiceHandler.getApis().getAdasControllerApi().addAdasRecognizedDataCallback(resultList -> {
// 绘制近景识别到的车辆
AdasRecognizedResultDrawer.getInstance().renderAdasRecognizedResult(resultList);
Message msg = mSnapshotHandler.obtainMessage();
msg.obj = resultList;
msg.what = MSG_ADAS;
msg.sendToTarget();
//添加自车的定位图标,碰撞只有一个预警,还需要和adas 联调,
// for ( ADASRecognizedResult result : resultList) {
@@ -196,15 +204,34 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
// }
// }
private final static int MSG_SNAPSHOT = 1;
private final static int MSG_ADAS = 2;
/**
* todo 后续从云端和adas侧拿到的数据 需求对数据流进行重新架构以扩展除添加marker外的其他预警类业务
* todo (应需要模块主动注册adas或云端数据回调在具体模块内添加绘制需求需要与地图侧确认是否支持并发)
*/
private final Handler mSnapshotHandler = new Handler(WorkThreadHandler.newInstance("snapshot-thread").getLooper()) {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.obj instanceof SocketDownData.LauncherSnapshotProto) {
SnapshotSetDataDrawer.getInstance().renderSnapshotData(((SocketDownData.LauncherSnapshotProto) msg.obj));
} else if (msg.obj == null) {
SnapshotSetDataDrawer.getInstance().renderSnapshotData(null);
switch (msg.what) {
case MSG_SNAPSHOT:
if (msg.obj instanceof SocketDownData.LauncherSnapshotProto) {
// SnapshotSetDataDrawer.getInstance().renderSnapshotData(((SocketDownData.LauncherSnapshotProto) msg.obj));
} else {
SnapshotSetDataDrawer.getInstance().renderSnapshotData(null);
}
break;
case MSG_ADAS:
// 绘制近景识别到的车辆
if (msg.obj instanceof List) {
List<ADASRecognizedResult> recognizedResults = (List<ADASRecognizedResult>) msg.obj;
AdasRecognizedResultDrawer.getInstance().renderAdasRecognizedResult(recognizedResults);
}
break;
default:
break;
}
}
};

View File

@@ -40,14 +40,14 @@ public interface IMogoADASController extends IProvider {
*
* @param show
*/
void setSettingStatus( boolean show );
void setSettingStatus(boolean show);
/**
* 控制算法
*
* @param open
*/
void setUseAlgorithm( boolean open );
void setUseAlgorithm(boolean open);
void release();
@@ -56,14 +56,14 @@ public interface IMogoADASController extends IProvider {
* <p>
* 导航车头仅支持 NorthUP_2D 和 车头朝上2D
*/
void changeAdasControlMode( EnumMapUI ui );
void changeAdasControlMode(EnumMapUI ui);
/**
* 反向设置 adas 对可见性的控制
*
* @param visible
*/
void changeAdasControlVisibleMode( boolean visible );
void changeAdasControlVisibleMode(boolean visible);
/**
* 获取当前皮肤状态
@@ -77,7 +77,7 @@ public interface IMogoADASController extends IProvider {
*
* @param result
*/
void aiCloudToAdasData( RemoteControlAutoPilotParameters result );
void aiCloudToAdasData(RemoteControlAutoPilotParameters result);
/**
@@ -85,28 +85,28 @@ public interface IMogoADASController extends IProvider {
*
* @param callback 回调接口
*/
void addAdasDataCallback( IMogoAdasDataCallback callback );
void addAdasDataCallback(IMogoAdasDataCallback callback);
/**
* 移除adas数据回调接口
*
* @param callback 待移除的callback
*/
void removeAdasDataCallback( IMogoAdasDataCallback callback );
void removeAdasDataCallback(IMogoAdasDataCallback callback);
/**
* 添加adas报警数据回调接口
*
* @param callback 回调接口
*/
void addAdasWarnMessageCallback( IMogoAdasWarnMessageCallback callback );
void addAdasWarnMessageCallback(IMogoAdasWarnMessageCallback callback);
/**
* 移除adas报警数据回调接口
*
* @param callback 待移除的callback
*/
void removeAdasWarnMessageCallback( IMogoAdasWarnMessageCallback callback );
void removeAdasWarnMessageCallback(IMogoAdasWarnMessageCallback callback);
/**
* 获取 adas 识别列表
@@ -120,35 +120,35 @@ public interface IMogoADASController extends IProvider {
*
* @param callback
*/
void addAdasRecognizedDataCallback( IMogoAdasRecognizedDataCallback callback );
void addAdasRecognizedDataCallback(IMogoAdasRecognizedDataCallback callback);
/**
* 移除adas识别物体回调
*
* @param callback
*/
void removeAdasRecognizedDataCallback( IMogoAdasRecognizedDataCallback callback );
void removeAdasRecognizedDataCallback(IMogoAdasRecognizedDataCallback callback);
/**
* 自车定位数据
*
* @param carDataCallback
*/
void setAdasCarDataCallback( IMogoAdasCarDataCallback carDataCallback );
void setAdasCarDataCallback(IMogoAdasCarDataCallback carDataCallback);
/**
* 自动驾驶状态通知
*
* @param callback
*/
void addAdasOCHCallback( IMogoAdasOCHCallback callback );
void addAdasOCHCallback(IMogoAdasOCHCallback callback);
/**
* 移除自动驾驶通知
*/
void removeAdasOCHCallback();
void onAutopilotArriveLike( int type );
void onAutopilotArriveLike(int type);
/**
* 获取车辆自动驾驶状态
@@ -157,7 +157,7 @@ public interface IMogoADASController extends IProvider {
*/
int getAutopilotStatus();
void mockOchStatus( int state, String reason );
void mockOchStatus(int state, String reason);
/**
* 获取车身的定位纬度
@@ -180,14 +180,21 @@ public interface IMogoADASController extends IProvider {
*/
double getLastSpeed();
/**
* 获取由工控机传回的GPS星历时间
*
* @return
*/
String getSatelliteTime();
/**
* 结束自动驾驶
*/
void cancelAutopilot();
void mockAdasLoc( String json );
void mockAdasLoc(String json);
void mockAdasRecognized( List< ADASRecognizedResult > recognizedResults );
void mockAdasRecognized(List<ADASRecognizedResult> recognizedResults);
void mockAdasRecognized( String json );
void mockAdasRecognized(String json);
}

View File

@@ -148,6 +148,7 @@ public class MogoADASController implements IMogoADASController {
mLastLon = stateInfo.getValues().getLon();
mLastLat = stateInfo.getValues().getLat();
satelliteTime = stateInfo.getValues().getSatelliteTime();
if (mMogoAdasCarDataCallback != null) {
mMogoAdasCarDataCallback.onAdasCarDataCallback(stateInfo);
}
@@ -181,7 +182,7 @@ public class MogoADASController implements IMogoADASController {
model.setLon(bean.getLon());
model.setHeading(bean.getHeading());
model.setSystemTime(bean.getSystemTime());
model.setSatelliteTime(bean.getSatelliteTime());
model.setSatelliteTime(bean.getSystemTime());
model.setAlt(bean.getAlt());
model.setCarId(bean.getCarId());
model.setUuid(bean.getUuid());
@@ -193,6 +194,10 @@ public class MogoADASController implements IMogoADASController {
data.add(model);
Log.d("ADAS数据延时", "uuid : " + bean.getUuid() + "systemTime : " + System.currentTimeMillis() + " GPS time" + Long.parseLong(bean.getSystemTime())
+ " timeDelay : " + (System.currentTimeMillis() - Long.parseLong(bean.getSystemTime())));
// Log.d("ADAS原始数据", "uuid : " + bean.getUuid() + " type : " + bean.getType());
Logger.d(TAG, "识别距离x = %s, y = %s", model.getDistance_x(), model.getDistance_y());
}
}
@@ -457,6 +462,7 @@ public class MogoADASController implements IMogoADASController {
private double mLastLon;
private double mLastLat;
private double mSpeed;
private String satelliteTime;
@Override
public double getLastSpeed() {
@@ -471,6 +477,10 @@ public class MogoADASController implements IMogoADASController {
return mLastLon;
}
public String getSatelliteTime() {
return satelliteTime;
}
private boolean useTestSn = false;
private void invokeShowADASOperation() {

View File

@@ -0,0 +1,18 @@
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

@@ -0,0 +1,18 @@
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

@@ -0,0 +1,17 @@
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

@@ -0,0 +1,18 @@
/**
* 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

@@ -0,0 +1,28 @@
<?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

@@ -0,0 +1 @@
[{"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

@@ -0,0 +1 @@
{"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

@@ -0,0 +1,2 @@
<?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

@@ -0,0 +1,2 @@
<?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

@@ -0,0 +1,2 @@
<?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

@@ -0,0 +1,2 @@
#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

@@ -0,0 +1,2 @@
<?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

@@ -0,0 +1,28 @@
<?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

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

View File

@@ -0,0 +1,43 @@
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

@@ -0,0 +1 @@
[{"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

@@ -0,0 +1,7 @@
<?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>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,63 @@
-- 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