2011-04-19 64 views
2

我的主要活動基本上沒有其他活動(act2)是無用的。 act2可以通過主要活動中的按鈕進行訪問。它也可以通過主屏幕小部件,點擊時調用我的主要活動並立即調用act2。多久檢查一次許可證?

現在,我有它設置爲檢查許可證隨時處理按鈕單擊函數被調用。這包括主要活動中的按鈕按下以及來自小部件的按鈕。

我的問題是,這是否太頻繁?比起檢查一個變量來得到一個緩存響應已經耗盡了嗎?

我試過把它放在onCreate上,但是當它說它沒有授權時,您可以關閉應用程序並再次打開它,它不會再次通過onCreate運行。

回答

7

這裏我假設您已經閱讀了所有licensing documentation,並且您使用的是SDK。你什麼也沒說,所以我要去「默認」。 Android開發者博客和互聯網上有一些線索。我問自己the same question last year。或者至少是類似的東西。所以讓我們一次一步:

我的問題是,這是否太頻繁?是 得到一個緩存響應 排水比檢查一個變量爲 例子?

我會說差異將「不可感知」到「不多」。首先,有效性時間戳(VT字段來自extras)存儲在本地,正確加密/模糊處理。我假設你正在使用ServerManagedPolicy政策,因爲你對此一無所知。

根據應用程序的種類,我們應該注意到,例如,您可能會甚至writing things on onPause(當然,如果適用,請檢查更改)。所以,我不會爲此擔心。

但是因爲沒有可察覺的傷害並不意味着你應該做點什麼。這就是爲什麼我不同意Kerin發佈的內容:

我相信你會阻止盜版,並且你不會浪費你的時間。

更多內容。現在我說你不需要做很多檢查。這就是政策的目的。他們處理它可能比你和我更好。其他任何事情都是浪費。就我個人而言,我只在onCreate(顯然)上進行檢查,並且在另一個很少使用的情況下(但對應用程序有用性非常重要)。

然而,你應該做什麼,我說因爲沒有人在這裏說過,正確混淆和改變LVL庫,以及你自己的代碼方(checkerCallback)。在這裏,我改變了LVL庫中的很多東西,包括一些簡單的單密鑰密碼術(弱),還改變了接口的實現方式以及參數如何傳遞等等。基本上,我在SO上發佈這個問題後創建了自己的LVL。

與您正在做的相反,我還自定義了VT字段,以便爲緩存響應的有效性指定最短時間。這就是爲什麼我的應用程序要在野外使用,網絡訪問並不總是可用的。這些細微的細節取決於你的應用程序,它做了什麼,它是如何做的,人們會在哪裏使用它們。

如果您是開發人員,很容易忘記用戶。沒有什麼比合法用戶被拒絕訪問他所購買的應用程序更糟糕了。到目前爲止,我沒有問題(我檢查使用情況統計數據並與我的帳戶進行比較),但我相信遊戲會有更多麻煩(這是該領域的典型特徵)。所以,回到我的建設性(請大家,我們都試圖在這裏學習,包括我自己在內)批評克林的帖子,我會說,即使LVL本身還不足以「阻止盜版」。

如果你知道Android的工作方式,你會知道,可以很容易地解密到源代碼,只需使用dex2jarjdgui(Google他們)。實際上,我總是在發佈之前解密我的應用程序,以檢查是否所有應用程序都按照應有的方式運行。考慮到我從來沒有上過電腦大學,我只是碰巧學習java和Android來創建我自己的應用程序,我需要並且不適合Android(我的國家的潮汐應用程序)。我確信有更多更聰明的黑客和技術人員可以做得更多。

人們開始認爲LVL會停止盜版,然後學習醜陋的真相併失望。這不是LVL的目的。只要看看代碼......它是爲了避免「自動」盜版。這是強迫某人親自查看代碼,看看它是如何工作的,然後「切換」正確的標誌,如果他能理解它們的話。但是,如果你使用了proguard,它會使任務變得可怕,詳盡(相信我,這就是爲什麼我自己使用dex2jar + jdgui)。

如果您的應用程序以1美元或甚至5美元或更多的價格出售,它會使這個麻煩不值得。這是我對LVL的立場。很明顯,例如,如果你有一個價格爲100美元的小衆應用程序,那麼你可以在服務器端用公鑰進行正確的配置。但我覺得這不是這種情況。

無論如何,只是我的2美分。

0

您可以首次檢查許可證,然後將其緩存。當您的應用下次運行時,請從緩存中讀取許可證,並啓動一個從您的服務器獲取許可證的線程。如果從服務器獲得的許可證現在無效。您可以彈出一個對話框告訴用戶許可證無效,刪除緩存的許可證並退出應用程序。

+0

是的,這基本上會是一種實現onCreate方案的方式。就我個人而言,我認爲關閉應用程序太苛刻。一般來說,你會想幫助用戶解決這個問題。我相信某種「重新檢查」按鈕,或者甚至是一種自動化的方式(使用X個可能的試驗)會更好。此外,還有帶說明的幫助信息。 – davidcesarino 2011-04-20 18:20:42