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了感覺有點。。。。。。)