導航:首頁 > 操作系統 > android插件化開發

android插件化開發

發布時間:2022-01-13 04:44:33

A. android應用插件式開發

不解釋!!!
https://github.com/mmin18/AndroidDynamicLoader

B. Android插件式開發,動態載入apk是怎麼實現的呢請大神指教

你說的插件式開發應該是那種用
html5
來開發安卓吧,就是會提供一些常用的模塊,比如
下拉刷新,列表,掃描二維碼等等,你只需要引入模塊就可以使用了,開發相對簡單迅速。
你可以看看
apicloud,還可以。

C. 如何使用ApkPlug進行Android平台下模塊化開發

步驟1:注冊ApkPlug官網賬號:

打開Apkplug官網後,點擊右上角的「注冊」,在跳轉頁面填入相關信息,注冊界面如下:

確認後注冊成功,使用你的賬號登錄網站。你就可以用Apkplug開發應用了
END
步驟2:開發插件

Apkplug中的插件也是一個完整的apk,它與普通應用的區別有以下3點:
1, 插件assets目錄下有一個plugin.xml文檔,通過它可判斷一個工程是主應用還是插件。
2, 插件有一個入口類BundleActivator
3, 插件會外部引用一個osgi.jar文件
開發插件的步驟有如下4步:
1,引入osgi.jar庫文件
Apkplug中插件需要導入的庫文件只有一個osgi.jar。
導入osgi.jar庫文件需要注意一下
osgi.jar文件只能引用不能編譯到apk文件中,否則會出現類沖突的情況
異常代碼:had used a different Lorg/osgi/framework/BundleActivator; ring pre-verification。
osgi.jar包導入方法:

這文件在Apkplug SDK中可以找到。

2,編寫插件入口類BundleActivator
插件啟動時首先調用BundleActivator,其功能類似android中的application類。

public class SimpleBundle implements BundleActivator
{
private BundleContext mcontext = null;
public void start(BundleContext context) throws Exception
{
System.err.println("你好我是插件,我將為你展示啟動acitivty我已經啟動了 我的BundleId為:"+context.getBundle().getBundleId());
}
public void stop(BundleContext context)
{
System.err.println("你好我是插件,我被停止了 我的BundleId為:"+context.getBundle().getBundleId());

}

}
3,編寫plugin.xml配置文件
plugin.xml
是一個配置表,它跟AndroidManifest.xml作用類似。 plugin.xml文檔放置在assets中即可 重要屬性說明:
Bundle-Name 插件名稱 Bundle-SymbolicName 插件包名
-與應用packagename可一一對應 Bundle-Version 插件版本 -1.0.0
Bundle-Activator 插件入口 -與Appliction 類似
Bundle-Activity 插件界面 -多個Activity可用 , 分割
Bundle-Service 插件Service -多個Service可用 , 分割
(v2.0.0新增) Bundle-Receiver 插件廣播 -多個廣播類可用 , 分割
(v2.0.0新增)
4, 編譯生成插件apk文件
插件工程中添加的文件目錄結構如下:

最後編譯運行插件工程,生成的apk文件即為插件文件
END
步驟3:開發主應用

Apkplug 主應用開發分兩步集成:
1. 獲取主應用授權AppAuth。
登錄賬號進入Apkplug後台後,切換到「應用授權頁面」,按要求填寫好應用信息,然後確定,你就擁有了一個等待開發的應用授權AppAuth。應用授權界面如下:

進入「授權列表」頁面,點擊「查看詳情」鏈接,進入「應用詳情界面」,就可以看到已申請的AppAuth,點擊其後面的「復制」,即可直接復制AppAuth,如下圖所示

2. 對接Apkplug SDK 導入相關庫文件。
①配置應用許可權
主應用需要幾個基礎的許可權配置,請將以下的幾個許可權加入到主應用的AndroidManifest.xml中。
<!-- 插件平台需要的許可權! -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE">
</uses-permission>

另外將一下加入到<application></application>節點中
<!-- 插件平台需要的配置! -->
<activity
android:name="org.apkplug.app.apkplugActivity"
android:theme="@style/android:Theme.Light"
android:configChanges="orientation|keyboardHidden"
/>
最後將我們從Apkplug管理後台申請到的AppAuth加入到配置文件中。

<meta-data android:name="apkplug-auth" android:value="xxxxxxxx" ></meta-data>
註:由於3.2.2節中我們直接復制了AppAuth,此處直接粘貼到AndroidManifest文檔中。
如下圖:

②導入SDK庫文件
主應用需要導入兩個文件,將其放入libs目錄中即可。
1, libndkfoo.so
2, Bundle2.0.0.jar
如下圖:

這兩個庫文件在Apkplug SDK中可以找到。
然後:
主應用啟動Apkplug最簡只需要一段代碼即可,建議在Application中啟動框架。

FrameworkInstance frame=FrameworkFactory.getInstance().start(List<BundleActivator>,Context);
將上一步驟開發好的插件apk,放置在主應用工程里的assets路徑下。
http://jingyan..com/article/ca41422fc2ce471eae99ed3d.html

D. android插件化原理要多久

插件化技術發展到現在其實已經很成熟了,但是相應的問題,如果沒有真正地去實踐過,根本不了解其中有多少問題,會牽涉到多少技術細節,多少被外人膜拜的外表光鮮的技術大牛都被『插件化』這三個字折磨地死去活來,這對於 Android 整個生態的損害也讓人無法忽視。
我們首先要想一下,我們做插件化的目的是什麼?
為了滿足產品隨時上線的需求?
為了修復因為我們對自己要求不嚴格而寫出來的 bug ?
為了向人炫耀自己的技術實力?
很抱歉,如果是為了這些目的,那就真的太對不起自己是『開發者』這個如此高逼格的身份了。
做插件化真正的目的:是為了去適應並行開發,是為了解耦各個模塊,是為了避免模塊之間的交叉依賴,是為了加快編譯速度,從而提高並行開發效率。
明確了這些,我們再來看插件化的結果,每個模塊都支持獨立運行測試,分為穩定的 release 版本和不穩定的 snapshot 版本,每個模塊都高度解耦,沒有交叉依賴,不會出現一個模塊依賴了另一個模塊,其中一個人改了這個模塊的代碼,對另一個模塊造成影響。
按照這個思路,我們再來看看一些其他的細節:
在 Android 里有一個比較爽的一點是,作為 library 的時候,aar 里的引用依賴,在宿主 Application 里也有同樣的引用依賴,並不會打包兩份到宿主 Application 里;
模塊之間的跳轉,除了使用別名的方式,我能想到的還有另外一種方式,同樣是通過 gradle 腳本,將跳轉用到的類打成一個 jar ,作為一個 API 服務提供給其他模塊作為編譯期依賴(provided)引入;
各個 library 在 debug 的時候作為 apk ,要獨立打包運行測試,這時就需要有一個啟動 Activity ,而 library 是不需要的,我的想法是放置兩個 AndroidManifest.xml ,使用 sourceSets 分別在 debug 和 release 的時候載入不同的 AndroidManifest.xml 。

E. 谷歌官方支持android插件化開發嗎

要想從Eclipse遷移到Android Studio,推薦閱讀這份遷移指南來理解新的項目結構以及如何通過Gradle構建Android項目。如果滿足先決條件,那麼可以使用Android Studio導入Eclipse項目,然後執行驗證(構建與運行)來確保一切都是正確的。如果有問題,Google建議調整一下Eclipse ADT項目,然後再次導入。
建議那些還想繼續使用Eclipse的開發者們看看Andmore項目並參與進去,該項目旨在讓Android工具能夠繼續在Eclipse中發揮作用。Andmore包含了JDT、CDT與ADT,並且支持Maven與Ant,同時還計劃對Gradle提供支持,它現在可以與Mylyn、EGit與GitHub集成。
眾所周知,Google啟動了很多項目,提出了很多大膽的創新,不過很多時候都會輕易扼殺一個事實證明不可行的項目,Reader、Wave、Buzz、Knol、Code、Dart Editor以及Chrome Dev Editor等莫不如此。這與很多軟體開發者的做法大相徑庭,後者會對那些缺乏動力的項目採取跟進的方式,從而確保項目能夠重現生機。雖然Google的這種靈活的做法已經融入到了公司的DNA當中,但很多開發社區對此還是感到非常不舒服。我們看到了很多開發者的評論,他們不願意參與Google

F. 怎麼將 Android 程序做成插件化的形式

有個框架叫apkplug
就是apk插件式的開發框架
其實原理都一樣,因為android不支持動態的增加jar
因此插件需要做成一個單獨的apk,框架APK去查找系統中的其它插件
然後結合一起調用即可

G. 如何評價360的Android插件化框架RePlugin

APP推廣渠道主要付費BD合作兩種式: 先說說付費推廣吧(IOS&Android) •IOS(appstore&越獄) APPStore刷榜 1.找刷榜技術公司排名刷top榜單(其實作弊式讓appstore載APP排名靠前)排名越靠前讓越看產品帶更自用戶刷榜排名越高價格越高雙十候總榜TOP501萬6千塊/前禮拜TOP50價格已經要3萬左右/ PS:建議使用刷榜存風險 1、appstore鑒定刷榜收警告信超3產品能架 2、且刷榜市場傳聞目前家北京公司刷榜技術十穩定能刷刷 3、刷榜ROI高容易讓營銷團隊其產依賴降低其營銷渠道興趣優化萬刷榜 網盟&平台類 1.積牆:盟、力美、米、點入……結算式CPA(激/注冊)渠道本身用戶價值低用於appstroe沖榜效較明顯需求量需要同接進幾公司API 2.平台:admob(google)、inmobi……in-APP展示類banner、插屏廣告結算式CPC競價用於推廣品宣較合適缺點global公司都提供用戶ID准確評估用戶本想要監測數據產品嵌入SDK造APP數據公給情況嵌入SDK完全屬於盲投優化效理想目前看投放平台公司游戲類居都土豪呀另外些平台海外資源相錯滴據說微信類推海外效錯哦~ 3.網盟&代理:adsage、億瑪……結算式CPACPC網盟用戶量缺點用戶質量控(數據能偶摻水情況現-_-#) 4.移DSP:目前知道力美mediav做移DSP剛起步兩家公司同自都建議我做沒歷史數據優化依據少價格高順說媒體資源般都接入google、inmobi些平台移DSP未比較靠譜投放式清楚靜靜期待吧~ 應用推薦類 1.APPStore:金山、限免全、搞趣、APP123……結算式CPT由於IOS推廣渠道資源限價格直漲金山14合作都需要走度框架即使按照CPA合作電商類價格要12塊/激類渠道用戶質量錯渠道基本摻水數據比較靠譜滴期投放用戶產審美疲勞推廣效慢慢降些今條百思姐些應用內容植入談CPS前百思姐見著口袋購物身影 2.越獄類:PP助手、同步推、快用、91......結算式CPT溝通CPA合作幾家量錯自木推越獄渠道所解少(補課) •Android 網盟&平台 1.積牆:情況android積牆建議做原android像IOS應用商店APPStore展示資源相較需通積牆沖榜(BTW想要拉高某特定市場排名買些載量萬能淘寶能找提供服務商家前1萬載量要50元性價比高要別市場發現^_^)說要問既android用積牆沖榜幹嘛存呀嘿嘿句叫做切存都合理滴~KPI激用戶數量且要真用戶要買積牆呀物美價廉渠道啊...... 2.網盟&平台:億瑪、安沃、adsage、微創...…按CPA購買跟商定CPA價格(價格越高獲取用戶數越啦)能定KPI例留存低於**或24購物率低於**等約定用戶質量保障IOS平台類網盟inmobi,adwords類公司購買 3.代理公司:微創、adsage、AdTouch些代理公司產品豐富合作式CPC(圖片展示類CPA(般應用推薦位置)、代理些應用市場資源比AT跟安卓91、360市場關系比較合作讓其代理刊例價格基礎打折啥另外推廣費用簽框架每月都優先選擇媒體資源權利哎土豪啊 應用市場 1.主流應用市場些:360、豌豆莢、網路、安卓91、米安智些google-play、N、機鋒類市場流量相少些應用市場資源售賣式CPT、CPD(載)CPA等合作發現直接買CPTROI肯定虧,借用安卓市場舉例吧計算激用戶本需要10塊左右於電商說偏高或許說電商說價格高游戲類APP說便宜啊接想說應用市場跟游戲聊CPT滴面游戲應用市場基本要求聯運或者CPS做游戲我想肯定懂酸呀再說CPA合作合作般沒所謂刊例價格需要跟市場商定價格比5塊錢激量般市場剩餘流量所每流量少起伏且像91市場要求產品載激轉化能低於35%能要求自量需要結算雖條條框框CPA比CPT合算所框框忍吧 2.按競價CPD合作應用市場:豌豆莢、網路米三市場都CPD投放操作台根據提示步步操作通載起拍價0.5元CPA(激)本概8塊左右同APP獲取用戶本肯定差異CPD合作相較於CPTCPA更靈控平控制本保證ROI,遇節慶典啥調高價格獲取較流量想補充說豌豆莢米流量都市場本身流量網路則自網路手機助手網路網盟屬於春華條產品線 預裝機 1.塊我自沒嘗試般找品牌廠商、運營商、手機銷售渠道rom製作自APP內置操作系統根據文件包、產品知名度激數支付同cpa費用做預裝機建議:1、找偏游服務商游(廠)裝機零售商能重新刷錢白花另外找品牌廠商直接合作第合作談判艱難第二裝機消費者手周期2、要考慮清楚自APP用戶使用機型比高尚APP刷500塊部手機浪費面向民工游戲要刷三星劃 純花錢渠道主要面說些接著要說通BD合作式獲取些性價比較高或免費流量 •換量:APP相互導流量比眾點評APP面推薦安居客般情況APP猜喜歡或熱門應用推薦Tab位置用跟其APP置換流量(APP夠熱門些位置廣告位售更像墨跡氣美圖秀秀模式) •聯合運營:比聚美跟美相機做曬素顏照即登陸聚美APP領取價值**元面膜盒比美相機提供廣告位宣傳聚美提供獎品贊助等(純粹舉例雷同純屬巧合)首先要明確雙目標各自能提供資源盡量雙贏提前聯合非性 •針手機應用市場BD合作: 1、每應用市場都首發特權合作APP更新版本早幾某應用市場發布市場通免費給1-3首發專區位置配合應用市場做些比給自米商場用戶雙倍積或參與應用市場運營比十假游市場般做些跟旅行相關APP專題候跟運營員熟悉提前通知比較容易免費些專題(至於跟家打片家各顯神通吧) 2、跟應用市場換量所APP應用市場需要增加流量要控制本情況換量各應用市場獲取流量普遍途徑跟市場換量兩種情況首先像豌豆莢接受自APP本身流量說跟豌豆莢換量能自APP面給導流量其像跟米合作比較Open願意接受非APP本身流量哪怕花錢網盟買用戶給要真實行應用市場根據給帶用戶數量(通激數量)復同等價值廣告位比給米導5000用戶給banner,價值概1萬 用請公表揚疏漏差錯請私信批評^_^ 作者:StarWalking 作PM移互聯網混沌初期連市場同都迷糊候自始嘗試各種推廣式扛真槍打實彈推千萬級別項目~~~搞留存60項目~~ 面我幾重點說項目推廣吧: 1.各平台都市場 win7:躍終端都千萬沒玩必要 ios:市場單itunes越獄ios7向已經足10%現象應該發者市場妥協吧搞付費越越少 ios第三市場我簡單推薦幾:搞趣限免師91,360金山電池 android:安卓市場相比較元市場政策問題google play沒像itunes擔起重戲終端市場運營商介入變更加復雜我android市場劃: A官市場google play B第三市場機鋒安卓安智等 C終端品牌市場智匯雲三星市場金立市場等 D room市場Android 4.3Jelly Bean(凍豆)等等 E運營商市場移MM等等 Fwap站PC客戶端web站快平台流量站 android要載手機安裝所GHIJK類市場省略互聯網朋友應該都知道其推廣類型 2.特殊市場 我覺鑽空民族任何諧環境都打破平衡我推薦兩任何平台都適用強市場: A積牆等廣告商刷量市場 B肉刷市場 C劣質伺服器刷量市場(高危) D真機刷量市場(ios用) E push市場 F惡意軟體潛伏安裝市場 做互聯網做兩事抄刷 3.流量共享 貌似每軟體都應用推薦合理自資源置換 公司安排實習刷臉必要並且選擇渠道精準性 4.線渠道 用戶量少情況產品品牌概念未形所線推廣都太扯淡形品牌型傳播試試看核算CPA陳本 5.社化營銷 現興起種網路SNS推廣式比較偏軟式植入快速傳播文字圖片視頻各SNS社區傳播帶高爆發流量能需要產品本身營造題性營銷團隊執行力我覺親向放棄吧沒啥碰運氣 6.SNS享 接入主流社區享功能做自我營銷功能我說家熟悉所APP都適合內容型產品或者產內容型產品試試例優伶畫報魔漫相機啥理解 7.於團隊建議 應該能涵蓋移互聯網主流推廣模式於團隊說除才外本能推廣建議千萬要全平台線團隊精力根本負荷特別android平台變現能力強用戶基數導致android渠道用戶水比較低握產品轉換率留存受渠道質量波影響建議先搞iosios推廣本效驗證產品需求否靠譜您itunes都勃起勸別做 光搞ios沒前途像私密相冊2013.團隊5半做30萬iphone用戶本1萬元推廣值研究畢竟競品比較 吧我覺起析志同道合加我~ 注:android第三渠道我見 android第三渠道我幾類 1.論壇早批:機鋒網安卓網安智網等 2.PC工具:豌豆莢91助手等 3.市場:應用匯等 4.巨介入:騰訊(等)網路(弱)360(強) 其實android第三放渠道五花八門我自統計共534~項收集夠牛B吧呵呵 自:張巧忠

H. 包建強 為什麼我說android插件化從入門到放棄

首先就是去寫代碼。有一個做Android的哥們升級為架構師,需要了解iOS這門技術,來問我怎麼能迅速精通iOS,我就告訴他,別玩虛的,腳踏實地跟著iOS開發團隊做幾個需求,半年之後再來談這個話題。Android和iOS的很多現金思想可以相互借鑒,我建議做一門技術的同學,也適當學習另一門技術。
咬著牙看開源項目。比如說JSPatch,怎麼看?我有個建議,你看JSPatch的版本提交歷史,從第一次提交看起,這時候的功能應該是最簡單的,也是最容易看懂的,然後看歷史每次提交都修改了哪些東西,你能搞清楚作者的思路是什麼。
Android插件化雖然有被React Native取代的勢頭,但還是要搞清楚插件化所涉及的各種思想和技術。我這一年來的心得是,這是提高自身內功的極好辦法。尤其是涉及到Android系統底層的各種Hook。
寫技術博客吧。每天看文章只能是看過,一個月後能沉澱下來的沒有多少,好記性不如爛筆頭。一開始你可以轉載或羅列精品文章的鏈接,慢慢的開始分享自己的心得,翻譯些技術文章,技術水平提高是一個循序漸進的過程。

I. android插件化框架哪個好

首先由於我自己也是個新手,也是在學習各種框架然後給公司項目選定相應自動化框架,研究移動自動化測試框架也就近段時間而已,所以我只能從我自己今天為止的認知角度給各個框架抒發我自己的拙見,你看是否能從中接納一二吧(對於我自己的話還需要再花一段時間去學習各個框架才能確定哪個/些是適合我們項目的了,也許到時我會寫個正式的總結)。

根據你的要求,應該不會考慮MonkeyRunner和Robotium,但我還是想跟你說下其實Robotium還是挺不錯的,如果你沒有考慮跨進程調用其他APP的話。至於MonkeyRunner我就不大推薦了,你可以看下我對金陽光老師的一個評論的回復《MonkenRunner通過HierarchyViewer定位控制項的方法和建議》(文章最後我乾脆也貼出來了)。至於Robotium,你對比下本人博客裡面各個框架編寫的Note的測試示例就可以看出來Robotium相對其他框架會簡介很多,況且發展的比UIAutomator和Appium長久很多,所以也應該會更成熟,和Eclipse集成調試起來也很方便。比起後兩者如果有不足的話我覺得就以下幾點吧:

1. 所有的操作抽象到一個Solo類裡面,缺乏面向對象的編程思想,有時會讓人不適應。如果你熟悉C語言等面向過程的語言思想的話應該沒有問題。
2. 獲取控制項的方法比較缺乏,大概就幾種:通過Text,ID, ClassName,Index。沒有後兩者的多種多樣
3. 跨進程:因為底層使用Instrument框架,測試包和被測應用包打包在一起作為一個進程運行而線程間通過instrumentaiton進行通信,導致了逃不出這個進程設沙箱(sandbox)
4. 做不了模擬鍵盤的測試(但同時這個也是Robotium非常巨大的優點,因為不像後兩者那樣需要調用鍵盤導致輸入的各種各樣的問題),因為Robotium輸入讀出其實是直接對控制項的text屬性進行操作沒有通過鍵盤驅動的,你如果做過UI編程應該就明白我的意思了,因為記住你的測試代碼和目標應用是打包在同一個進程中的,同一個進程中想訪問另外一個線程的某個變數,運用相應的IPC(Interprocess Communication)機制當然是沒有問題的了。

然後到了你問的主題UIAutomator和Appium的對比,我個人是這樣看的:

1. UIAutomator是親爹(google)生的,所以可以保證後續的開發維護力量,除非google倒閉(這里我有點不懂的是為什麼google對Monkeyrunner的態度這么讓人摸不著頭腦,具體請看以上我說的對MonkeyRunner的評論)
2. Appium雖然不是親爹生的,但是乾爹實力雄厚把它武裝的無所不能(android,ios,firefox,browser通殺),單單以android來說,底層用得還是UIAutomator,所以只要它能及時跟上UIAutomator的更新,功能上面我不是很擔心。
3. 但是也這是Appium的這種架構:UIautomator/seledroid<->Appium Server<->Selenium/AppiumDriver<->Test Case (《Appium架構框架圖整理》http://blog.csdn.net/zhutian/article/details/39453505),導致框架有點復雜,當問題出現的時候調試起來比較難以定位,不知道哪個模塊出錯了。但是說道調試,總比UIAutomator好,起碼Appium可以直接集成到eclipse上面進行debug,UiAutomator卻每次都要push到目標機器然後再去執行,怎麼調試呢?到現在為止我知道的只能原始的print了。
4. 向下兼容問題:Appium可以通過底層UIAutomator/Selendroid(不記得是不是這名字了)通殺;UIAutomator只能在API Level
17(包含)以上使用
5.語言支持:appium基本通殺,UIAutomator用java足矣
6.跨平台:如你所說的只是android兩者都沒有問題,如果往後需要擴展到ios,那麼建議appium
7.bug數量:UIAutomator有的問題Appium都會有,UIAutomator沒有的問題Appium也有可能有^_^(不過我還是很看好Appium的)
8. 輸入問題,都有bug,具體請查看我相應blog,特別是中文輸入,這就是為什麼我剛才特意提出Robotum的原因之一
9. WebView支持:UIAutomator據說今年年初已經開始支持,個人沒有這方面要求所以沒研究;Appium的框架用的Selenium本身就是PC上最流行的開源Web測試框架,所以必然支持了。注意這你你要有點android編程知識了,WebView指的不僅是WebView控制項還包含如用sencha+phonegap把webview封裝成一個跨平台app的情況了,具體如果不清楚請google。

其他區別我現在就沒有想到了,希望能幫助到你,從我自己的角度來看,我覺得UIAutomator繼續往前發展是必然的了,但是它不可能最終支持ios。至於Appium我同樣有很大的信心它會繼續往好的方向發展,且考慮到它的跨平台支持,基於node.js(現在非常流行哦),兼容性等,我如果是你的話我會考慮用Appium的(拋開Robotium不說,如果你又要考慮的話就需要你根據我之前說的再總結下了^_^)。

我覺得這個可以類比之前的微軟和Borland的關系,API是Windows,但是IDE是Borland的,各專所長了。可惜(或者慶幸)後來微軟發力一下把Borland打得滿地找牙一蹶不振,不過這是題外話了,略過......

對了,我有可能會對這封郵件整理下發到博客了,也希望其他網友能評點一二給你出主意。今晚本來想看下easy_monkey的知識了,給你寫這個email變成臨時性總結了。^_^

給金陽光老師評論的回復如下(關於MonkeyRunner的個人觀點)
-----------------------------------------------------------------------------------------------------------------
回復haorenmin2008:首先膜拜下,金老師大駕光臨蓬蓽生輝啊!
對於後者,確實如此,UIAutomator需要API Level17(包含)以上。
對於前者,因為還沒有MonkeyRunner的項目經驗,所以是否很強大我就不敢妄加評論了,但是在我近來的tryout過程中,鄙人有以下的一些不成熟的認知:

1. 感覺功能不是很穩定,之前嘗試一個MonkeyDevice的getProperty方法,竟然有時成功有時失敗。
2. 性能不好,特別是當我們要用到hierarchyviewer的功能的時候很明顯。
3. 只能用MonkeyImage的sameAs做截屏的對比,雖然加上hierarchyviewer後可以用它的getText,但還是很有限。
4. 控制項定位方面主要是坐標點和HierarchyViewer提供的根據ID。前這兒在UI布局稍微有調整位置的話就需要跟著變動,沒有像其他控制項類框架那樣做高層抽象除非換控制項不然都不需要怎麼變動;後者的話很多控制項是沒有id或者是有多個控制項id相同的。
5. 可調試性也不強(起碼我摸索了這幾天沒有發現一個很好的調試方法,比如IDE Ecilpse等的集成調試方法)
6. HierarchyViewer的穩定性也讓我擔憂,碰到過幾次取控制項信息的時候報exception的。
7. 資料稀缺,不僅網路,google也一樣
8. Google支持讓人覺得摸不著頭腦,sdk給出的API和官方提供的API竟然不一致,以MonkeyDevice為例子,而sdk多出來的API竟然還不能用,google出來的信息不超過10個page,還要很多都是重復的石沉大海的網友報的問題。
9. 再一個的我真心搞不懂為什麼本身java寫的庫非要搞個jython來調用,首先我不說性能損耗(這點肯定是有的,native庫當然用native語言調用效率最好嘛),我想在eclipse上對以下的"device."做自動補全是做不到的「device = MonkeyRunner.waitForConnection()\n device.",而只有直接調用個構造函數實例化的device = MonkeyDevice(xxx)才能做到,這個我不相信是我配置的問題,換了個jython標准編譯器以調用標准庫問題同樣存在。

閱讀全文

與android插件化開發相關的資料

熱點內容
黑龍江日報伺服器ip地址 瀏覽:541
安卓光遇圖標長什麼樣 瀏覽:455
安卓手機如何打開oa文件 瀏覽:970
新能源電動壓縮機過熱保護 瀏覽:578
程序員下海區塊鏈 瀏覽:334
g68編程入門教程 瀏覽:286
程序設計與案例教程pdf 瀏覽:892
小碼王少兒編程價格 瀏覽:634
次元網盤怎麼解壓 瀏覽:181
安卓手機怎麼鎖屏下亮屏 瀏覽:92
單片機定時器模塊 瀏覽:266
py編譯安卓 瀏覽:941
iPhone怎麼關掉app跟蹤 瀏覽:359
linux中的ping命令 瀏覽:229
c語言游戲編程教程 瀏覽:1000
數控銑床編程圖紙 瀏覽:823
口頭指派或命令 瀏覽:893
壓縮機經常碰有沒有毒 瀏覽:98
iphone如何批量添加app到主屏幕 瀏覽:682
國內雲伺服器廠商價格實惠 瀏覽:568