2015-05-15 1 views
2

Я использую многие сторонние библиотеки, такие как AndEngine, ButterKnife, Parse, Picasa и т. Д. В своем приложении для Android.Какая часть сторонней андроидной библиотеки включена при создании apk?

Означает ли это, что я должен включить их все в свой APK? Например, я использую только один статический метод из библиотеки Picasa для загрузки изображений:

Picasa.load(image, this, null, null); 

Но я до сих пор добавить весь файл банка в качестве поддерживаемых библиотек в моем Eclipse IDE.

Когда создается APK, он каким-то образом улавливает/включает только определенные методы из сторонней библиотеки или включает в себя всю библиотеку?

ответ

2

Я думаю Proguard является то, что вы ищете:

http://developer.android.com/tools/help/proguard.html

Инструмент ProGuard сжимается, оптимизирует, и запутывает ваш код удаления неиспользуемого кода и переименования классов, полей и методов с семантически неясными именами. Результатом является файл .apk меньшего размера , который сложнее переделать.

Удостоверьтесь, что вы тщательно протестировали, после того как вы начали использовать его, поскольку он имеет тенденцию быть чрезмерно агрессивным.

1

У меня была та же проблема. Я не знаю, это хороший вариант или нет. Я взял код из исходного кода библиотеки независимо от того, какой метод, класс и слушатель мне нужен. Затем я добавил в свой проект. Вот и все. Я не добавил всю банку. Но я не знаю, в вашем случае, возможно ли получить исходный код или нет.

+1

Это, как правило, не очень хорошее решение. Это делает модернизацию сторонней библиотеки очень тяжелой, среди других проблем. – ajpolt

+0

Что я имею в виду, если вам нужна только одна особенность, и это не изменит будущего. –

+0

Несомненно. Я не говорю, что НИКОГДА не подходит. Просто, что это обычно не лучший способ пойти. «не изменится», как правило, является плохим предположением. Иногда я только обнаруживаю ошибки в сторонних библиотеках после использования их в течение года. Кроме того, я не юрист, но я бы предположил, что могут быть случаи, когда лицензия требует от вас сделать что-то по-другому, если вы скопировали или модифицировали код, а не включали его в качестве библиотеки, поэтому сначала убедитесь, что вы проверяете. – ajpolt

Смежные вопросы