2011-09-05 11 views
5

目前我是一個Android開發新手..我需要開發一個安全的android應用程序,以便我可以從getteg盜版保存它。Android代碼混淆和安全的android應用程序從盜版

對於應用程序的安全性我已經在J2ME.In J2ME使用RMS我用它來執行以下步驟:

  1. 生成一個序列號(一些隨機數)
  2. 保存在RMS這個數字,旁邊啓動應用程序的屏幕上顯示 相同的序列號,並且如果用戶輸入正確的激活代碼要求用戶輸入有效的激活 代碼然後再應用 激活和標誌被設置爲真,我保存在其他 均方根該標誌值
  3. 如果標誌值爲真,則主屏幕顯示給用戶, 再次啓動應用程序,否則顯示激活頁面。

我想在android ..中實現這個概念。請指導我如何做到這一點。或告訴我,如果任何機構知道一些更好的方式來做到這一點在android中。

其次我想在發佈應用程序之前對apk文件進行混淆處理。使用goggling 2天后,我發現它可以使用proguard完成。但是我沒有弄清楚如何混淆代碼。請指導並幫助我整理這兩個問題。

感謝

回答

4

是不是真的保護任何形式的客戶端代碼的方式,無論是在Android * .apk文件,一個Java * .jar文件,還是有點的JavaScript代碼運行在用戶的瀏覽器中。保護自己免受盜版的最佳方式是使應用程序依賴於您提供的某些服務器端計算。

由於您使用RMS,聽起來您已經需要服務器端計算。爲什麼您在購買應用程序時未將激活碼與用戶的電子郵件地址關聯起來,而不是讓用戶輸入激活碼?您爲什麼不使用OAuth與他們的Google帳戶來驗證用戶是否擁有已知購買該應用程序的電子郵件地址?

+0

但爲了做到這一點,我將需要一個web服務來驗證安裝 – Hisenberg

+0

@Shrey,是的,這是正確的。 –

+1

有沒有辦法開發應用程序的安全性,而不使用服務器端? – Hisenberg

0

Android中的RMS並行是SharedPreferences。 但是,sharedPreferences xml文件不像J2ME中的RMS文件(至少在某些設備中)那樣受到保護。任何擁有紮根設備的人都可以輕鬆地讀取和寫入此文件...

因此,我建議您閱讀有關Android的應用程序許可。它遠非完美,但它是一個內置的功能,可以輕鬆集成。 http://developer.android.com/guide/publishing/licensing.html

編輯: 混淆: 混淆你的項目的所有您需要做的就是增加proguard.config=proguard.cfgdefault.properties文件。

根據defult proguard.cfg文件中所述的配置進行混淆處理。 請注意,只有當您構建最終APK時,您的代碼纔會被混淆(Android Tools - > Export ...),我建議模糊處理後測試最終APK,特別是當第三方庫的構建過程

+0

你能解釋一下如何使用Shared優先 ? – Hisenberg

+0

http://developer.android.com/guide/topics/data/data-storage.html#pref – IncrediApp

+0

我們不能使用sqlite在android中作爲rms工作嗎? – Hisenberg

3
  • 關於RMS

邁克爾·亞倫Safyan所說的一切,沒有什麼要補充的一部分。

  • 關於ProGuard的

的ProGuard現在被集成到Android框架,基本上不需要工作得以成立。你只需要啓用它as explained in this article,並在需要時自定義其配置。 「如果需要」,因爲默認配置適用於大多數項目。如果作爲大多數包,類和方法的反射將被混淆處理重命名,則只需要小心使用。