国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

查看: 2994|回復(fù): 0
打印 上一主題 下一主題

聯(lián)璧港:如何自動(dòng)識(shí)別APK中使用了哪些SDK

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2017-10-12 13:01:37 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
關(guān)鍵詞: APK , SDK , 聯(lián)璧港
一、準(zhǔn)備工作
由于后端技術(shù)我熟悉的是JAVA,所以這個(gè)程序我是使用JAVA寫(xiě)的。寫(xiě)工具之前需要先準(zhǔn)備以下工具:
SpringMVC:Spring MVC框架是有一個(gè)MVC框架,通過(guò)實(shí)現(xiàn)Model-View-Controller模式來(lái)很好地將數(shù)據(jù)、業(yè)務(wù)與展現(xiàn)進(jìn)行分離。
Hibernate:是一個(gè)基于元數(shù)據(jù)的輕量級(jí)的ORM框架。
Mysql:用來(lái)存儲(chǔ)APP信息以及第三方SDK信息
APKTool:反編譯APK的利器
HttpClient:是用來(lái)提供高效的、最新的、功能豐富的支持 HTTP 協(xié)議的客戶端編程工具包,并且它支持 HTTP 協(xié)議最新的版本和建議。
HTMLparser:HTML解析工具
SAX:SAX(simple API for XML)是一種XML解析的替代方法。相比于DOM,SAX是一種速度更快,更有效的方法。
二、設(shè)計(jì)思路
以下只介紹這個(gè)工具的設(shè)計(jì)思路,沒(méi)有貼具體代碼,思路清晰以后寫(xiě)代碼很簡(jiǎn)單。
1. 數(shù)據(jù)庫(kù)設(shè)計(jì)
我們采集數(shù)據(jù)就需要設(shè)計(jì)數(shù)據(jù)庫(kù)表,這個(gè)很簡(jiǎn)單,我設(shè)計(jì)了6個(gè)表:
tools_app_category:保存APP的分類信息
tools_app_info:保存APP基本信息
tools_app_packages:保存APP包名信息及SDK信息
tools_app_packages_relat:APP和第三方SDK關(guān)聯(lián)表
tools_app_perm:APP權(quán)限信息表
tools_app_perm_relat:APP與權(quán)限的關(guān)聯(lián)表
2. 獲取APP安裝包
各大應(yīng)用市場(chǎng)都有TOP xx應(yīng)用列表,這些APP一般是用戶使用比較多APP,這些APP使用的第三方SDK一般是比較成熟的SDK,值得我們是參考。
我選擇從小米應(yīng)用市場(chǎng)下載熱門APP作為數(shù)據(jù)分析樣本,選擇應(yīng)用排行靠前的1000余款A(yù)PK,我只選擇分析應(yīng)用類APP,把游戲類的過(guò)濾掉了。

       應(yīng)用排行榜界面的url格式是這種:http://app.mi.com/topList?page=xx,使用HttpClient獲取這些頁(yè)面網(wǎng)頁(yè)源碼,再使用HTMLparser解析網(wǎng)頁(yè)源碼獲取每一個(gè)APP的詳情url地址,APP詳情地址的格式是這種:http://app.mi.com/details?id=app包名,然后在APP詳情頁(yè)面解析出APK的下載地址并下載該APK。除了APK的下載地址以外還可以通過(guò)這個(gè)界面獲取APP的其他基本信息,如有需要可以保存到數(shù)據(jù)庫(kù),我的是存在tools_app_info表中。
3. 反編譯APK下載完APK以后要做的工作就是反編譯APK了,這里我們就要用到搶到的APKTool。這一步其實(shí)很簡(jiǎn)單,大家知道JAVA里面可以直接運(yùn)行腳本命令的,使用一下命令即可反編譯APK。
Runtime.getRuntime().exec("java -jar apktool.jar d -f"+apkPath+" -o "+outPath)
這里可能有人會(huì)問(wèn),反編譯出來(lái)的是smali文件,有什么用處呢?反編譯以后有兩部分內(nèi)容對(duì)我們有用smali為前綴的目錄以及AndroidManifest.xml。通過(guò)AndroidManifest.xml可以獲取apk的基本信息,如有需要可以使用XML解析工具解析,我這里是使用SAX計(jì)息AndroidManifest.xml并且獲取每個(gè)APP的進(jìn)程數(shù)、廣播接收器的數(shù)量以及權(quán)限等信息。以smali為前綴的目錄是我們主要使用的數(shù)據(jù)。大家知道每一個(gè)SDK的包名基本上是唯一的,很少有重復(fù),而java文件的包名和目錄名是有對(duì)應(yīng)關(guān)系的,通過(guò)獲取smali文件所在的路徑即可知道這個(gè)APK的所有包名。就這樣把APK的包名全部收集起來(lái)存放到數(shù)據(jù)庫(kù)中備用。這里大家要注意的是在收集包名的時(shí)候可以做一下初步篩選,把一些沒(méi)有用的或者是APK本身的包名直接過(guò)濾,可提高采集效率并且避免采集一些垃圾數(shù)據(jù)。把這些信息存在tools_app_packages表中。
4.關(guān)聯(lián)SDK這一步真的是苦力活,是一不干著想吐的活,是這個(gè)SDK采集過(guò)程中唯一需要人工完成的。上一步我們已經(jīng)搜集了所有APP使用的包名,這一步我們需要檢查這些包名,如果是非第三方SDK則刪掉,如果是SDK則備注SDK名稱以及備注,方便后續(xù)查找。
5.前端界面后臺(tái)已經(jīng)搭建好了,大家可以根據(jù)需要稍微完善,比如我們已經(jīng)記錄了每個(gè)app的下載地址,可以定時(shí)更新。現(xiàn)在我們這里要做的就是開(kāi)發(fā)一個(gè)前端界面,用于可視化操作查詢,這一部分沒(méi)什么講的,就是寫(xiě)接口調(diào)接口而已,直接上效果圖:
搜索界面
聯(lián)璧港提供免費(fèi)API,SDK平臺(tái)。
官網(wǎng):http://lbp.lincomb.com/

本版積分規(guī)則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 天天影视色香欲综合网 寡妇 | 人人做人人干 | 91麻豆久久 | 欧美成人动漫在线观看 | 永久福利盒子日韩日韩免费看 | 毛片三级在线观看 | 亚洲欧美性视频 | 亚洲欧美日本一区 | 忍者刺客韩国在线观看完整免费版 | 美国农夫激情在线综合 | 全国最大色成免费网站 | 激情欧美一区二区三区 | 国产高清一级在线观看 | 四虎地址8848在线观看 | 天天综合网天天做天天受 | 99久久精品国产自免费 | 国产三区视频 | 国产偷倩视频 | 色视频在线观看视频 | 一级福利片 | 国产一级a毛片高清 | 久久免费视屏 | 亚洲一级毛片视频 | 久久香蕉国产观看猫咪3atv | 久色中文| 一个人在线观看的www | 免费一级a毛片夜夜看 | 免费的高清影视网站 | 一区二区三区四区视频在线 | 香蕉啪啪| 欧美日日 | 91精品国产网曝事件门 | 无吗无卡v清免费 | 国产精品成人免费福利 | 久久精品国产99国产精品免费看 | 国产高清在线精品免费 | 黄色免费网站在线播放 | 最近最新2019年中文字幕 | 91高清国产经典在线观看 | 国产自产v一区二区三区c | 久久aa毛片免费播放嗯啊 |