JavaFX工具 | 主流App的技術(shù)選型

Apkparser

前言

Android開發(fā)中的技術(shù)選型,針對某一領(lǐng)域的App,看看某些主流App是如何解決的筷黔,是自己解決還是使用開源框架。

有的框架非常優(yōu)秀但卻不為人所知仗颈,現(xiàn)在是大數(shù)據(jù)時代佛舱,各種雜亂的信息,很多信息都不是我們需要的挨决。

雖然不鼓勵這兩種行為:

  1. 只做API的調(diào)用者
  2. 造重復的輪子

但是某些框架的原理是必須深入的理解的请祖,同樣地,更多的框架如UI類型的開源庫不建議花費過多的時間去自己研究脖祈。
畢竟人的精力是有限的肆捕,我們把有限的精力花費在更有價值的事情上,而不是重復的勞動力盖高。
小工具 就是為了快速尋找到成熟優(yōu)秀的框架福压,學習其使用的同時掏秩,更好地學習其優(yōu)秀的設(shè)計,解析某個App時荆姆,也許會有
意外的收獲,這也是我前期不斷花費大量精力學習一些雜亂的技術(shù)不斷磨刀到現(xiàn)在的初衷映凳,為了后期少走彎路胆筒,更快的進步....

該項目的代碼不值一提,因為硬盤多次壞掉诈豌,僅做備份使用仆救,為省事把PlantUML和ApkParser工具合并在了一起。

相對Android和Swing而言矫渔,JavaFX太容易了彤蔽,Api簡潔好用,缺點就是build成exe的時候包實在太大了庙洼,60M左右顿痪,所以僅僅上傳了可運行的Jar,
你只需要 antbuild/dist 目錄中的文件下載下來即可運行(確保JRE已安裝)油够。

tips
項目代碼就無需研究了蚁袭,UI只用了一個類,沒什么可看的石咬,不過JavaFX值得一看揩悄,如果你懂Android,僅需一天即可掌握基礎(chǔ)鬼悠。

項目截圖

image.png

image.png

image.png

image.png

導入簡書apk為例:


================================
packageName:    com.douyu.hd.air.douyutv
label:  斗魚HD
icon:   res/drawable-xxhdpi-v4/ic_launcher.png
versionName:    1.1.9
versionCode:    169
minSdkVersion:  16
targetSdkVersion:   23
maxSdkVersion:  null
================================
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="169" android:versionName="1.1.9" package="com.douyu.hd.air.douyutv" platformBuildVersionCode="23" platformBuildVersionName="6.0-2704002">
    <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="23" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.autofocus" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <application android:theme="resourceId:0x7f080110" android:label="斗魚HD" android:icon="res/drawable-xxhdpi-v4/ic_launcher.png" android:name="com.douyu.hd.air.douyutv.control.singleton.DouyuTvHD" android:allowBackup="false">
        <activity android:theme="resourceId:0x7f08010d" android:name="com.douyu.hd.air.douyutv.control.activity.LiveActivity" android:launchMode="standard" android:screenOrientation="sensorLandscape" android:configChanges="0x4a0" />
        <activity android:theme="resourceId:0x7f08010d" android:name="com.douyu.hd.air.douyutv.control.activity.ScannerActivity" android:launchMode="standard" android:screenOrientation="sensorLandscape" android:configChanges="0x4a0" />
        <activity android:theme="resourceId:0x7f08010d" android:name="com.douyu.hd.air.douyutv.control.activity.SearchActivity" android:launchMode="standard" android:screenOrientation="sensorLandscape" android:configChanges="0x4a0" android:windowSoftInputMode="0x2" />
        <activity android:theme="resourceId:0x7f08010d" android:name="com.douyu.hd.air.douyutv.control.activity.GameSelectActivity" android:launchMode="standard" android:screenOrientation="sensorLandscape" android:configChanges="0x4a0" />
        <activity android:theme="resourceId:0x7f08010d" android:name="com.douyu.hd.air.douyutv.control.activity.RegisterActivity" android:launchMode="standard" android:screenOrientation="sensorLandscape" android:configChanges="0x4a0" />
        <activity android:theme="resourceId:0x7f08010d" android:name="com.douyu.hd.air.douyutv.control.activity.SearchResultActivity" android:launchMode="standard" android:screenOrientation="sensorLandscape" android:configChanges="0x4a0" />
        <activity android:theme="resourceId:0x7f08010d" android:name="com.douyu.hd.air.douyutv.control.activity.HistoryActivity" android:launchMode="standard" android:screenOrientation="sensorLandscape" android:configChanges="0x4a0" />
        <activity android:theme="resourceId:0x7f08010d" android:name="com.douyu.hd.air.douyutv.control.activity.RoomActivity" android:launchMode="standard" android:screenOrientation="sensorLandscape" android:configChanges="0x4a0" android:windowSoftInputMode="0x10" />
        <activity android:theme="resourceId:0x7f08010d" android:name="com.douyu.hd.air.douyutv.control.activity.MainActivity" android:launchMode="standard" android:screenOrientation="sensorLandscape" android:configChanges="0x4a0" />
        <activity android:theme="resourceId:0x7f08010d" android:name="com.douyu.hd.air.douyutv.control.activity.SplashActivity" android:launchMode="standard" android:screenOrientation="sensorLandscape" android:configChanges="0x4a0">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:theme="resourceId:0x7f08010d" android:name="com.douyu.hd.air.douyutv.control.activity.WebViewActivity" android:screenOrientation="sensorLandscape" android:configChanges="0x4a0" android:windowSoftInputMode="0x2" />
        <activity android:theme="resourceId:0x7f08010d" android:name="com.douyu.hd.air.douyutv.control.activity.FollowActivity" android:screenOrientation="sensorLandscape" android:configChanges="0x4a0" android:windowSoftInputMode="0x2" />
        <activity android:theme="resourceId:0x7f08010d" android:name="com.douyu.hd.air.douyutv.control.activity.GameCenterDetailsActivity" android:launchMode="standard" android:screenOrientation="sensorLandscape" android:configChanges="0x4a0" />
        <meta-data android:name="UMENG_APPKEY" android:value="xxx" />
        <meta-data android:name="UMENG_CHANNEL" android:value="portal" />
        <meta-data android:name="AID" android:value="androidhd1" />
        <meta-data android:name="APP_VERSION" android:value="50000119" />
        <meta-data android:name="APP_UPDATE_CODE" android:value="2" />
        <meta-data android:name="BIZ_TYPE" android:value="16" />
        <activity android:theme="resourceId:0x7f08012a" android:name="com.umeng.socialize.editorpage.ShareActivity" android:excludeFromRecents="false" />
        <activity android:theme="@android:style/Theme.Translucent.NoTitleBar" android:name="com.tencent.tauth.AuthActivity" android:launchMode="standard" android:screenOrientation="sensorLandscape" android:noHistory="false">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="xxx" />
            </intent-filter>
        </activity>
        <activity android:theme="@android:style/Theme.Translucent.NoTitleBar" android:name="com.tencent.connect.common.AssistActivity" android:configChanges="0x4a0" />
        <activity android:theme="@android:style/Theme.Translucent.NoTitleBar" android:name="tv.douyu.wxapi.WBShareActivity" android:screenOrientation="portrait" android:configChanges="0xa0">
            <intent-filter>
                <action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        <activity android:theme="@android:style/Theme.Translucent.NoTitleBar" android:name="com.sina.weibo.sdk.component.WeiboSdkBrowser" android:exported="false" android:configChanges="0xa0" android:windowSoftInputMode="0x10" />
        <service android:name="com.sina.weibo.sdk.net.DownloadService" android:exported="false" />
        <activity android:theme="@android:style/Theme.Translucent.NoTitleBar" android:name="tv.douyu.wxapi.WXEntryActivity" android:exported="false" android:screenOrientation="portrait" android:configChanges="0x4a0" />
    </application>
</manifest>

================================

com.facebook.fbcore
tv.danmaku.ijk
com.tencent.mm
com.facebook.datasource
tv.douyu.wxapi
com.douyu.lib
com.tencent.map
okhttp3.internal.tls
com.facebook.imageformat
com.tencent.stat
com.facebook.drawee
com.nineoldandroids.util
com.facebook.common
com.tencent.open
okhttp3.internal.platform
android.support.v4
android.support.v7
android.support.design
okhttp3.internal.framed
tv.douyu.b
tv.douyu.a
com.orhanobut.logger
tv.douyu.model
com.facebook.imagepipeline
okhttp3.internal.io
com.alibaba.fastjson
android.support.annotation
com.facebook.cache
com.facebook.imageutils
tv.douyu.widget
com.tencent.connect
com.sina.weibo
com.umeng.analytics
com.sina.sso
okhttp3.internal.cache
com.tencent.wxop
com.bigkoo.convenientbanner
tv.douyu.library
com.douyu.hd
tv.douyu.singleton
org.apache.http
com.facebook.drawable
com.harreke.easyapp
com.google.zxing
com.umeng.socialize
com.tencent.weibo
okhttp3.internal.connection
com.tencent.a
okhttp3.internal.http
com.facebook.binaryresource
com.tencent.qqconnect
com.tencent.tauth

項目地址:https://github.com/coding-dream/Apkparser

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末删性,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子焕窝,更是在濱河造成了極大的恐慌蹬挺,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件袜啃,死亡現(xiàn)場離奇詭異汗侵,居然都是意外死亡,警方通過查閱死者的電腦和手機群发,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門晰韵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人熟妓,你說我怎么就攤上這事雪猪。” “怎么了起愈?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵只恨,是天一觀的道長译仗。 經(jīng)常有香客問我,道長官觅,這世上最難降的妖魔是什么纵菌? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮休涤,結(jié)果婚禮上咱圆,老公的妹妹穿的比我還像新娘。我一直安慰自己功氨,他們只是感情好序苏,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著捷凄,像睡著了一般忱详。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上跺涤,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天匈睁,我揣著相機與錄音,去河邊找鬼钦铁。 笑死软舌,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的牛曹。 我是一名探鬼主播佛点,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼黎比!你這毒婦竟也來了超营?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤阅虫,失蹤者是張志新(化名)和其女友劉穎演闭,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體颓帝,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡米碰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了购城。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吕座。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖瘪板,靈堂內(nèi)的尸體忽然破棺而出吴趴,到底是詐尸還是另有隱情,我是刑警寧澤侮攀,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布锣枝,位于F島的核電站厢拭,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏撇叁。R本人自食惡果不足惜供鸠,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望陨闹。 院中可真熱鬧回季,春花似錦、人聲如沸正林。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽觅廓。三九已至,卻和暖如春涵但,著一層夾襖步出監(jiān)牢的瞬間杈绸,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工砰粹, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留攒磨,地道東北人悔政。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像劫侧,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子哨啃,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理烧栋,服務(wù)發(fā)現(xiàn),斷路器拳球,智...
    卡卡羅2017閱讀 134,628評論 18 139
  • 這篇文章主要講述在Mobile BI(移動商務(wù)智能)開發(fā)過程中审姓,在網(wǎng)絡(luò)通信、數(shù)據(jù)存儲祝峻、登錄驗證這幾個方面涉及的加密...
    雨_樹閱讀 2,351評論 0 6
  • Node.js是目前非衬拢火熱的技術(shù),但是它的誕生經(jīng)歷卻很奇特莱找。 眾所周知酬姆,在Netscape設(shè)計出JavaScri...
    w_zhuan閱讀 3,609評論 2 41
  • Installation of gnuplot and gnuplot-x11 on the DELL serve...
    hchencoder閱讀 967評論 0 0
  • 晚安!
    高崤閱讀 215評論 0 0