2010-07-20 53 views
0

我有一些java代碼,我想與一些同學共享,但我不想與他們分享源代碼。如何分發Android應用程序(以便人們無法看到源代碼)

向某人提供可執行的Java可執行文件的標準方法是什麼?他們可以使用但不能看到源代碼。

不知道這是否相關,但我將給他們的代碼將在Android上運行。

+1

請注意,您的同學可能會很聰明,知道如何運行Java反編譯器。 – 2010-07-20 19:58:05

+0

@Greg不會對它們做任何好處,Android不會編譯爲JVM字節碼,它會編譯成特殊的字節碼,只能將其反編譯爲像指令那樣的指令。他們將無法從.dex文件中獲得「Java源代碼」。 – 2010-07-20 20:06:01

回答

2

這取決於你的意思是「他們可以使用」。

如果你只是希望他們能夠在他們的手機(或模擬器)上運行你的應用程序,你可以給他們an .apk file,這是Android應用程序的標準格式。生成.apk的最簡單方法是使用適用於Eclipse的Android開發工具(ADT)插件。否則,你將不得不使用aapt command

如果你想允許他們將你的類添加到他們的應用程序中,你將不得不給他們一個.jar文件,其中包含你編譯的.class文件。但是,使用反編譯器可以將.class文件重新轉換爲.java文件,因此如果您不希望它們看到代碼,則可能會被卡住。

有一些工具 - 被稱爲混淆器 - 這使得反編譯過程變得更加困難,但是我個人不會在這裏打擾他們,因爲他們也會使調試更加困難。

任何人都不可能將您的.apk恢復爲源代碼。 Android使用不同的虛擬機來標準Java,因此0123¾文件帶有Dalvik字節碼,而不是帶有JVM字節碼的.class文件,並且當前沒有將.dex文件轉回到.java源文件的工具。

1

僅將類文件打包到.jar文件中,並且不給它們提供源文件。

編輯: Android有它自己的打包應用程序的方式,我建議使用它。

+0

+1爲了進一步保護(和複雜性),使用代碼混淆器 – OscarRyz 2010-07-20 19:57:00

1

Android不使用Java運行時。我只使用Java作爲源語言,它使用自定義字節碼格式運行自定義運行時。您可以decompile the .dex byte code,但不能到Java源代碼,至少不是在這篇文章的時間。

相關問題