Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 15.04.2016
Сообщений: 44

Идеология com.android.support:appcompat

17.01.2017, 11:03. Показов 896. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Немного не ясно назначение данной библиотеки.
Насколько я понимаю, она нужна, чтобы новые прикольные графические фичи работали на андроидах со старым API.
Хорошо, собираю свой APK; minSDK API 15, targetSDK 25
Размер файла 2 Мб получается.
Собираю при minSDK API 25, targetSDK 25 - те же 2 Мб
Внутри в classes.dex лежит полный com.android.support, хотя я его не подключал во второй раз в build.gradle
По идее, данная библиотека не нужна на API 25.
Она же только для старых систем.
Или не так?

п.с. Моя цель была сделать APK небольшого размера для последних API
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.01.2017, 11:03
Ответы с готовыми решениями:

Android.support.v4.app.FragmentActivity не работает в Android Studio
объясните пожалуйста,как в андроид студио добавить вышеуказанную библиотеку,чтобы работало у меня вот это Активити package...

Android.support.v7
Народ, помогите пожалуйста. Интелиж не видит android.support.v7.app.ActionBarActivity хотя в android sdk manager support скачан, в...

Android-support-v7 ошибка
Добрый вечер, устанавливал google maps API для проекта. и случайно видимо обновился support вечером все работало нормально, после...

9
314 / 257 / 81
Регистрация: 31.10.2016
Сообщений: 619
17.01.2017, 12:11
ruslan13, вам тогда нужно свои Activity наследовать от Activity, для темы приложения родительской указать
XML
1
parent="android:Theme.Material.Light.DarkActionBar"
а аттрибуты в теме писать через префикс "android:"
XML
1
<item name="android:colorPrimary">@color/colorPrimary</item>
И естественно удалить все упоминания support в ваших dependencies.
тогда приложение с пустым MainActivity будет занимать 34 кб.
1
0 / 0 / 0
Регистрация: 15.04.2016
Сообщений: 44
17.01.2017, 13:26  [ТС]
То есть, если указывать везде com.android.support, то во всех API приложение будет выглядеть по-модному, а если использовать стандартные пакеты, то в в последних API приложение будет по-модному, а в старых - по-старому?
И если я делаю несколько вариантов сборки, то мне по-любому придется иметь несколько наборов исходников (flavors?)
0
314 / 257 / 81
Регистрация: 31.10.2016
Сообщений: 619
17.01.2017, 13:44
ruslan13, если есть отличия в коде, то их разрешают через проверку параметра
Java
1
android.os.Build.VERSION.SDK_INT
. Прямо целые блоки кода или функции проверяются. Или делаются интерфейсы, а реализация подсовывается в зависимости от версии андроида.
А темы раскидываются по папкам values-v13, values-v21, values-v23.
flavors излишни тут.

Добавлено через 3 минуты
То есть, если указывать везде com.android.support, то во всех API приложение будет выглядеть по-модному, а если использовать стандартные пакеты, то в в последних API приложение будет по-модному, а в старых - по-старому?
Да, так и будет. На 4+ это будет Holo, на 5+ это будет Material. На 2.3+ вообще будет ужасно.
Да, соответственно и эффекты нажатия кнопок нужны будут разные (тоже по папкам раскидывать) и анимации. И много чего нужно будет предусмотреть.

Добавлено через 5 минут
хотя да, придется flavors делать, как по другому разделить apk файлы я не вижу способа. И в них указывать minSdkVersion и targetSdkVersion
0
0 / 0 / 0
Регистрация: 15.04.2016
Сообщений: 44
17.01.2017, 14:47  [ТС]
А как быть с NavigationDrawer, к примеру? Ключевой элемент приложения, между прочим.
Он только в support библиотеках есть.
0
314 / 257 / 81
Регистрация: 31.10.2016
Сообщений: 619
17.01.2017, 15:11
Цитата Сообщение от ruslan13 Посмотреть сообщение
А как быть с NavigationDrawer, к примеру?
Никак, аналога ему нет. Тогда для уменьшения apk используйте ProGuard. Посмотрите, прочитайте что это и как использовать.
1
0 / 0 / 0
Регистрация: 15.04.2016
Сообщений: 44
17.01.2017, 15:25  [ТС]
Спасибо, у меня указаны эти настройки. Но все равно в итоговом classes.dex библиотеки support'a занимают 85% объема.
Google'у всегда было наплевать на оптимизацию и эффективность...
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
17.01.2017, 15:31
сделай лучше
0
314 / 257 / 81
Регистрация: 31.10.2016
Сообщений: 619
17.01.2017, 15:41
ruslan13, ProGuard режет все ненужные классы, оставляя только те, на которые вы ссылаетесь в проекте или ссылаются подключенные компоненты. Если они есть в проекте с включенным ProGuard, значит они используются.
А если хотите уменьшить вес, избавляйтесь от них и заменяйте чем-то другим, стандартным либо самописным.
0
0 / 0 / 0
Регистрация: 15.04.2016
Сообщений: 44
17.01.2017, 16:47  [ТС]
Лучше?
Сразу после выхода support-v4 добавить NavigationDrawer в стандартный android API - кто мешал? У меня 55% пользователей Android 5.0+, им я бы уже легкую версию раздавал.
А чтобы не было всего геморроя c прямой и обратной совместимостью в коде использовать всегда классы из стандартного API, а в манифесте приложения и при сборке указывать для какого API должны использоваться стандартные классы, для какого - support.
Что это, сложно реализовать? Всяко лучше чем мегабайтные библиотеки с собой таскать повсюду. Половина моих пользователей на хромом EDGE сидят (сельская местность), им апдейтиться раз в две недели по 2 мегабайта довольно некомфортно.

Добавлено через 5 минут
Цитата Сообщение от demixdn Посмотреть сообщение
ruslan13, ProGuard режет все ненужные классы, оставляя только те, на которые вы ссылаетесь в проекте или ссылаются подключенные компоненты. Если они есть в проекте с включенным ProGuard, значит они используются.
А если хотите уменьшить вес, избавляйтесь от них и заменяйте чем-то другим, стандартным либо самописным.
demixdn, попробую убрать весь support, что смогу, и замерю работу прогарда. О результатах отпишусь.

Добавлено через 59 минут
Отписываюсь.
Один NavigationDrawer тащит за собой 90Кб кода из support'a. Другие "незаменимые" элементы пока не тестировал.
В принципе, есть за что побороться..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.01.2017, 16:47
Помогаю со студенческими работами здесь

Android-support-v4 и настройка Eclips
Перенес проект с дом. компа на рабочий, все работало нормально до определенного момента (видимо обновилось что либо где-то). Копировал на...

Android.support.v7.widget.GridLayout
Друзья, помогите пожалуйста! Никак не получается включить GridLayout в макет из библиотеки поддержки. Создаю новый проект в Андроид...

Для чего нужен android.support.v4
Вопрос к знатокам: почему AS по умолчанию импортирует в проект классы из библиотеки поддержки? minSdk 19 (4.4). Еще просвятите плз -...

Как подключить com.android.support:design в Eclipse
Доброго дня! Недавно вышла новая библиотека com.android.support:design - вопрос как её подключить в среде Eclipse? От куда...

Ошибки рендеринга после установки android-support v4
Всем привет! Случилась непонятная фигня, решил адаптировать свое приложение под устройства с android 4 и выше, установил библиотеку...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru