android瘦身也就是裁包是我们后面要处理的一件比较烦人的事情。
今天我给大家介绍一种方法,但不是都适用。
适用:用到地图,但是对地图的要求不高的。(因为如果要求高的话还是原生的好O(∩_∩)O哈哈~)
首先说下我的方法,就是干掉百度的jar包不用原生的地图,用web端的javaScript的地图,这样就可以节省掉jar占据的空间,而且申请很方便。
(我这里用是因为这是店铺地址的位置显示的功能比较简单)
这里JS地图我建议用高德地图。
首先申请下web端的key
然后回去吧原来和地图有关的全部干掉
在你的assets文件目录下建一个html文件
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
<title>基本地图展示</title>
<link rel="stylesheet" href="http://cache.amap.com/lbs/static/main1119.css"/>
<style type="text/css">
html,body{
width:100%;
height:100%;
}
#container{height:600px;}
</style>
<script src="http://cache.amap.com/lbs/static/es5.min.js"></script>
<script src="http://webapi.amap.com/maps?v=1.3&key=818fe6eaf367a9c2bbc58076d0e3f56e key"></script>
<script type="text/javascript" src="http://cache.amap.com/lbs/static/addToolbar.js"></script>
</head>
<body>
<div id="container"></div>
<script>
var map = new AMap.Map('container', {
resizeEnable: true,
});
//提供JS方法,让webview调用,添加marker
function addMarker(lng,lat) {
map.setZoomAndCenter(14, [lng, lat]);
marker = new AMap.Marker({
//指定 Marker 的样式
icon: "http://webapi.amap.com/theme/v1.3/markers/n/mark_b.png",
position: [lng, lat]
});
marker.setMap(map);
}
</script>
</body>
</html>
然后在显示界面加上webview
设置允许js
webSettings.setJavaScriptEnabled(true);
然后加载html
dituWiew.loadUrl("file:///android_asset/amap.html");
在js地图上设置mark
dituWiew.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
//调用JS方法,将商家坐标设置到地图上
view.loadUrl("javascript:addMarker(" + 116.436281 + "," + 39.880719 + ")");
}
});
高德js地图上还有很多设置,一般的需求还是满足的了的
(结束语:我要学习js了感觉有点。。。。。。)