iT邦幫忙

0

討論:手機自動化的程式碼如何模組化

目前學了ADB從Activity跟Fragment認知apk裏頭的情形
也用了像是Appium studio這種可以將程式碼透過web轉成UI的指令給Android跟IOS


例如 今天我要做一個 登入的自動化程式碼 (登入whatsapp/skype等APP)
根據不同的app去資料庫拿登入資訊,自動打上帳號密碼,再登入

我想會遇到的情況有下列這些,會造成原本寫好的程式碼自動化失敗
1.
雖然每個app登入的介面跟方式不同
像是whatsapp 需要有手機電話接收簡訊
而skype 需要帳號密碼
2.
應用程式改版過後介面會不同
例如:原本是一次打上帳號密碼,改版之後變成先輸入帳號->進入下一個頁面再輸入密碼
3.還有更多其他沒想到的情形


以下是想法還未實作
步驟1.
ui automator來獲取物件ID
步驟2.
拿物件ID套入if/esle,switch多種登入的方式
步驟3.
try/catch來做 做錯後的返回上一步BACK
步驟4.
重新來過

看更多先前的討論...收起先前的討論...
通常如果有登入一次
我會將帳密存放於手機本地端+資料庫
如果本地端有儲存過帳密與資料庫核對後則判斷直接登入
若沒有則請他按照順序輸入即可
ant1017 iT邦新手 5 級 ‧ 2019-03-20 14:00:24 檢舉
其實就類似一個外掛程式,但這外掛用在沒root的機種應該不太好寫
況且自動登入在一般的APP內通常都會幫你做紀錄,只要輸入一次,下次就會幫你自動登入。
你要做這東西時,有考量過目前的市場需求嗎?
也許我舉這個例子有些問題,但我想說舉一個比較基本的,去探討手機自動化的程式碼如何模組化這樣的概念,因為我目前google的情形是沒有對手機自動化的程式碼再加以模組化的情形發生,所以想藉此發問,是否有遺漏或者對這塊有甚麼線索的想法提供
你要先確定你的目標及目的。
如果說今天你做的東西都是自已的。那當然是沒問題了。
或許還有可能會有一些外部資源如google api等啟用的情況下。
你最多就是依照人家原本給與的規範下去重新做你要的結合性。
但基本的不是你的東西。你並無法要求或請求他們沒有提供或支援的應用。
只能用現有的來做改變請求處理。

且很多東西並不是不想做模組化。而是某些動作並不能這樣做。
這除了本身程式的問題之外。也需要考量到一定的本機安全性原則。
還有我說的其它非程式的問題。(如侵權操作之類的)

討論起來很難有一定的規範。
ant1017 iT邦新手 5 級 ‧ 2019-03-21 13:16:29 檢舉
就目前的環境來說可以直接跟你說,很難,甚至可以說沒有意義
Ios系統有機會可以達成,但Android系統可以說做不太到
我背後的目標是 要做自動化測試並做紀錄成功與否
其實您說的我能理解,因為我在實作的時候有利用 adb shell dumpsys packages package.name 叫出vending api 跟 skype api來看
裡面有限定提供的fragment給我使用,所以有期限訂,像是skype裡面就有

Non-Data Actions:
com.microsoft.onlineid.internal.SIGN_UP_ACCOUNT:
53a8b36 com.skype.raider/com.microsoft.onlineid.ui.AddAccountActivity

當我要使用的時候,就有permission的問題
所以我想要做到模組化,他的概念就是要一直將小問題切得更小,再像樂高那樣組起來
但當要把問題切小的時候,就會遇到別人寫的app有它限制的部分,所以並不容易做到
其實是因為我BOSS有提到:也許有模組化的可能性,可是我本身學識不多,在google過後,似乎也沒有找到甚麼可行的方法,所以才想說提問看看

謝謝你們花時間幫忙解答,讓我收穫更多

1 個回答

0
浩瀚星空
iT邦高手 1 級 ‧ 2019-03-20 13:33:47

一般我只能跟你說,加油。

雖然你是說想要討論。可是你所述說的內容,跟你的題目可以說是完全不相關的事。
這樣說其實好像也不對。

正常來說,你想要的需求是什麼及其目的是什麼。
如果就單純研究性質這樣當然是ok了。

但如果想要做到能實用的地步。畢竟你目前想要做的是意圖用程式操作不屬於你的程式的東西。
這樣的挑戰難度會非常高,就算是程式可以的情況下。你還是會有面臨可能性的其它問題存在。

所以,甘巴爹!!

謝謝指教
可能我舉例的部分舉得不好,沒有指出問題所在
不好意思,不過也謝謝您的留言

我要發表回答

立即登入回答