Разница между appcompat_v7 и android-support-v7-appcompat?

Люди говорят, что они одинаковы, но используются в разных ситуациях, как указано в сайт разработчика

1-Добавление библиотек без ресурсов

To add a Support Library without resources to your application project:

Make sure you have downloaded the Android Support Library using the SDK Manager.
Create a libs/ directory in the root of your application project.
Copy the JAR file from your Android SDK installation directory (e.g., <sdk>/extras/android/support/v4/android-support-v4.jar) into your application's project libs/ directory.

2-Добавление библиотек с ресурсами

To add a Support Library with resources (such as v7 appcompat for action bar) to your application project:

Make sure you have downloaded the Android Support Library using the SDK Manager.
Create a library project and ensure the required JAR files are included in the project's build path:
Select File > Import.
Select Existing Android Code Into Workspace and click Next.
Browse to the SDK installation directory and then to the Support Library folder. For example, if you are adding the appcompat project, browse to <sdk>/extras/android/support/v7/appcompat/.
Click Finish to import the project. For the v7 appcompat project, you should now see a new project titled android-support-v7-appcompat.
In the new library project, expand the libs/ folder, right-click each .jar file and select Build Path > Add to Build Path. For example, when creating the the v7 appcompat project, add both the android-support-v4.jar and android-support-v7-appcompat.jar files to the build path.
Right-click the library project folder and select Build Path > Configure Build Path.
In the Order and Export tab, check the .jar files you just added to the build path, so they are available to projects that depend on this library project. For example, the appcompat project requires you to export both the android-support-v4.jar and android-support-v7-appcompat.jar files.
Uncheck Android Dependencies.
Click OK to complete the changes.
You now have a library project for your selected Support Library that you can use with one or more application projects.

когда я должен использовать appcompat_v7 (который автоматически генерируется вместе с проектом) и когда использовать android-support-v7-appcompat?

В каком случае программисту необходимо добавить библиотеку с ресурсами в проект?

пожалуйста, накорми меня своим опытом


person Lana    schedule 04.11.2014    source источник


Ответы (2)


android-support-v7-appcompat.jar — это файл JAR, содержащий только скомпилированные классы Java. appcompat_v7 — это библиотечный проект, который содержит предыдущий файл JAR, не имеет фактического исходного кода и очень много ресурсов (макеты, изображения и т. д.).

В конкретном случае appcompat-v7 вам необходимо использовать проект библиотеки, так как он содержит необходимые ресурсы пользовательского интерфейса.

Другие библиотеки (такие как MediaRouter v7 или Palette v7) не содержат этих ресурсов, поэтому файл JAR можно использовать напрямую.

Обратите внимание, что разница касается в основном Eclipse (в котором библиотеки с ресурсами необходимо импортировать как проект, а остальные можно просто поместить в папку libs). В Android Studio/gradle все это обрабатывается системой сборки, поэтому процедура одинакова для обоих. Это подробно описано в документации Настройка библиотеки поддержки.

person matiash    schedule 04.11.2014

Сгенерированный appcompat_v7 содержит библиотеку android-support-v7-appcompat вместе с некоторыми ресурсами. Если вы разрешите Eclipse генерировать ваши темы и макеты, они будут ссылаться на ресурсы в проекте appcompat_v7, и ваш проект не будет построен без него. Я никогда не сталкивался с ситуацией, когда мне нужна была только библиотека без ресурсов, но, возможно, вы могли бы, если бы захотели включить новую функцию библиотеки поддержки в существующий проект.

person Kevin Krumwiede    schedule 04.11.2014
comment
так что вы поощряете меня использовать android-support-v7-appcompat вместо этого? - person Lana; 04.11.2014
comment
@Lana Используйте appcompat_v7, если вашему проекту нужны содержащиеся в нем ресурсы, и android-support-v7-appcompat, если это не так. - person Kevin Krumwiede; 04.11.2014