Исходник лаунчера для андроид
Если очень грубо определить, что такое лаунчер, то это приложение, которое может представлять домашний экран устройства и показывать список работающих на устройстве приложений. Другими словами, лаунчер это то, что вы видите при нажатии кнопки Home на устройстве. Сейчас вы скорее всего используете стандартный лаунчер, который был установлен вместе с операционной системой. На Play Market существует множество таких программ, установив которые, вы можете видоизменить оформление своего аппарата:
Фактически каждый производитель смартфонов и планшетов имеет свой собственный лаунчер и стиль оформления (например, Samsung — TouchWiz, HTC — Sense).
В этом уроке мы научимся создавать простой лаунчер с базовым пользовательским интерфейсом. В нашем приложении будет два экрана:
— домашний экран, отображающий обои рабочего стола;
— экран, показывающий список установленных приложений и некоторую информацию о них;
Итак, начинаем. Создаем новый проект, названия традиционно оставляем по умолчанию, можете ввести какие нибудь свои. Минимальная версия для запуска приложения — Android 2.2, выбираем Blank Activity.
Сразу идем редактировать файл манифест приложения. Нам нужно добавить здесь 2 activity и задать им некоторые настройки. Открываем файл AndroidManifest.xml и добавим туда следующее:
В этот код мы добавили категории android.intent.category.HOME и android.intent.category.DEFAULT для того, чтобы наше приложение вело себя как лаунчер и отображалось при нажатии на кнопку Home устройства.
Также нужно настроить режим запуска launchMode на singleTask для того, чтобы на данный момент работает только одно нужное Activity. Для отображения пользовательской картинки на заставке, мы использовали настройку темы Theme.Wallpaper.NoTitleBar.FullScreen.
Второе activity, как уже было сказано, будет отображать установленные на устройстве приложения и немного информации о них. Для этой activity не будет использоваться никаких особенных настроек, назовем ее AppsListActivity:
Создадим xml файл разметки для будущего класса HomeActivity. В папке res/layout создаем файл по имени activity_home.xml. Он будет содержать всего одну кнопку, при нажатии на которую пользователь с домашнего экрана будет попадать на экран со списком установленных приложений:
Далее создаем файл xml для AppsListActivity в той же папке, назовем его activity_apps_list.xml. Он будет содержать ListView для отображения списка приложений:
Создаем еще один xml файл по имени list_item.xml. Этот файл будет определять вид заданного выше ListView. Каждый пункт списка будет представлять одно установленное на устройство приложение. Здесь будет отображаться иконка, название и имя пакета приложения. Отображение иконки будет происходить через элемент ImageView, а имя приложения и пакета в TextView:
Теперь нужно создать необходимые java классы. Когда будете создавать классы, убедитесь, что они связаны с данными в файле манифеста, что мы выполняли в начале.
Создаем в приложении файл HomeActivity.java, задаем ему наследование от класса Activity и настраиваем переход на другой экран со списком приложений при нажатии на кнопку, созданную нами ранее (подробный урок по созданию перехода):
Создаем еще одно activity с именем AppsListActivity.java. Настроим этому классу вид интерфейса с ранее созданного файла activity_apps_list.xml:
Уже сейчас можно попробовать протестировать приложение на эмуляторе/устройстве. Пока, что оно не обладает желаемым функционалом, но все же. Запустите приложение и нажмите кнопку Home, вы увидите окно в котором вам будет предложено выбрать лаунчер для запуска, стандартный и наш. Запускаем наш и видим примерно следующее:
Мы видим заставку рабочего стола и нашу кнопку запуска второго activity.
Полюбовались и хватит, возвращаемся к работе в Android Studio. Создаем еще один класс по имени AppDetail, который будет содержать более детальную информацию о приложении, название пакета, имя приложения и иконку. Код этого класса предельно простой и выглядит так:
В методе loadApps класса AppsListActivity мы используем метод queryIntentActivities, он нужен для того, чтобы выбрать все объекты Intent, которые имеют категорию Intent.CATEGORY_LAUNCHER. Запрос будет возвращать список приложений, которые могут быть запущены нашим лаунчером. Мы запускаем цикл по результатам запроса и создаем и добавляем каждый его пункт в список по имени apps. Чтобы реализовать все сказанное, добавляем следующий код:
Теперь нужно настроить отображение списка приложений. В созданном списке apps мы поместили все необходимые данные о приложении, теперь их надо отобразить в созданном в начале урока ListView. Для этого мы создаем ArrayAdapter и описываем метод getView, а также связываем ArrayAdapter с ListView:
Когда пользователь нажимает на пункты списка с приложениями, то наш лаунчер должен запускать соответствующее приложение. Это будет выполняться благодаря методу getLaunchIntentForPackage , создающего намерение Intent, запускающее нужное приложение:
Осталось собрать все описанные выше методы в один рабочий механизм. В классе AppsListActivity вызываем методы loadApps, loadListView и addClickListener:
Запускаем наше приложение. Теперь при нажатии на кнопку вызова второго activity «Show Apps» мы видим список из установленных приложений. При нажатии на выбранный элемент списка, мы будем запускать соответствующее приложение:
Поздравляю! Теперь в придачу до собственных калькулятора, браузера, конвертера и много другого, мы имеем еще и собственный Android Launcher. Надеюсь урок был вам интересен и полезен.
Источник
38 лучших Open Source Android-проектов на Java
Проекты с открытым исходным кодом являются ценным ресурсом для всех программистов. Вы можете многому научиться, просто изучив исходный код или же создав что-то поверх существующего проекта.
В этом списке лучшие open source приложения для Android, написанные на Java. Среднее число звезд Github в нем – 3,874.
Социальные сети
Kickstarter – официальное приложение платформы.
NewPipe – легковесный фронтэнд для YouTube.
WordPress – официальное приложений платформы.
Новости
Plaid – пример реализации материального дизайна в новостном агрегаторе.
Materialistic – клиент Hacker News в материальном дизайне.
Фото и видео
LeafPic – галерея в материальном дизайне.
Продуктивность
ownCloud – хранение и организация всего.
Музыка
Pixel Dungeon – традиционная аркада в пиксель-арте.
2048 – классическая игра с числами.
Мессенджеры
Telegram – исходники того, кого скоро в России закроют.
Медиа
VLC – один из лучших плееров для платформы.
MovieGuide – приложение для открытия новых фильмов.
Финансы
Kickmaterial – приложение для краудфандинга.
Архитектура
Archi – Standard Android, MVP и MVVM.
Утилиты
SoundRecorder – диктофон с материальным дизайном.
Справочники
iosched – приложение Google I/O 2017.
Wikipedia Android – официальное приложение энциклопедии.
Источник
Создайте кастомный лаунчер на Android
Вступление
В своей самой основной форме, средство запуска — это приложение, которое выполняет следующие действия:
- он представляет домашний экран устройства
- он перечисляет и запускает приложения, которые установлены на устройстве
Другими словами, это приложение, которое появляется при нажатии кнопки «Домой». Если вы еще не установили пользовательский модуль запуска, в настоящее время вы используете модуль запуска по умолчанию, который поставляется с вашей установкой Android. Многие производители устройств имеют свои собственные стандартные пусковые установки, которые соответствуют их фирменному стилю, например, Samsung TouchWiz и HTC Sense.
В этом уроке мы собираемся создать простой модуль запуска с базовым пользовательским интерфейсом. У него будет два экрана:
- домашний экран, показывающий обои устройства
- экран, показывающий значки и информацию о приложениях, установленных на устройстве
Кстати, если вы много работаете с Android, вы можете попробовать один из 1000+ шаблонов приложений Android на Envato Market. Есть огромное разнообразие, так что вы обязательно найдете что-то там, чтобы помочь вам с вашей работой. Или вы могли бы передать области, которые не являются вашей специальностью, наняв разработчика приложений или дизайнера в Envato Studio.
1. Требования
На вашем компьютере разработки должно быть установлено и настроено следующее:
- Android SDK и инструменты платформы
- Eclipse IDE 3.7.2 или выше с плагином ADT
- эмулятор или устройство Android под управлением Android 2.2 или выше
Вы можете скачать SDK и инструменты платформы на портале разработчиков Android .
2. Настройка проекта
Запустите Eclipse и создайте новый проект приложения для Android. Я называю приложение SimpleLauncher , но вы можете назвать его как угодно. Убедитесь, что вы используете уникальный пакет. Самая низкая версия SDK, которую поддерживает наша программа запуска, — это Froyo, а целевой SDK — Jelly Bean .
Поскольку мы не хотим создавать Activity , отмените выбор « Создать активность» . Нажмите Готово, чтобы продолжить.
Источник
Исходник лаунчера для андроид
14 Способов сделать вклад в открытое программное обеспечение, не будучи Гениальным Программистом или Рок-Звездой
Множество людей хотят влиться в open source, но не знают с чего начать. Вот несколько способов, которые помогут, даже если вам недостаёт технических знаний и способностей.
Открытое программное обеспечение изменило мир, и многие хотят внести свой вклад. К сожалению, люди ужасаются от барьера на вступление в open source проект. Я часто слышу от людей, которые хотят помочь, но не могут:
«Я не очень хороший программист.»
«Я не смогу выделять достаточно времени.»
«Я не знаю к какому проекту подключится.»
Существует 3 основных принципа, которые следует помнить, если вы ищете возможность внести свой вклад:
Проектам нужны люди с любым уровнем знаний и опыта.
Маленький вклад лучше, чем никакой.
Если не знаешь с чего начать — начни с того, что используешь!
Среди новичков самая разрушительная мысль которую я наблюдал — мнение что для вклада в open source ты должен быть гениальным разработчиком. Это не так! Конечно, есть некоторые «рок-звёзды» в open source и они даже могут быть гениальными программистами. Тем не менее, подавляющее большинство таковыми не являются! Мы просто люди которые делают своё дело. Иногда мало, иногда много. Иногда это программирование, а иногда и нет.
Большинство из того, что делает open source это работа и время потраченное на проект. Большинство таких вещей не требуют интеллекта или взгляда как у Ларри Уолла, создателя Perl’а, или Давида Ханссона, создателя Rails. Для разработки нового языка программирования или web-фреймворка вдохновение надо, но остальное, что делает проекты уровня Perl и Rails успешными — тяжкий труд. За это вы, возможно, и не получите славу, но всё равно необходимо и через какое-то время ваш вклад будет замечен.
Прислушайтесь к другим
Всё в open source включает себя других людей. Желание присоединиться к команде значит, что ты понимаешь сообщество проекта и как в нём всё крутится. Прогулка в проект со словами «Привет! Я думаю что делать следует вот так.», как правило, не расценивается хорошим тоном. Некоторые проекты может и приветствуют такого рода подход, но если проект уже устоявшийся, такой подход имеет мало шансов на успех. Слушать — это лучший способ узнать в чём проект нуждается.
Списки рассылок: Для многих проектов, списки рассылок являются основным каналом связи по разработке проекта. У больших проектов есть много рассылок и есть из чего выбрать. К примеру, для PostgreSQL существует не менее 12 рассылок для пользователей и 6 для разработчиков. Я предлагаю подключится к основной рассылке как для пользователей, так и для разработчиков, чтобы начать слушать.
Подпишитесь на блог: Блоги которые ведут основные разработчики часто полны информацией про будущие релизы. Существуют агрегаторы новостей и блогозаписей проекта. Если такой сайт есть, к примеру planet.gnome.org или planet.mysql.com, начните оттуда. Попробуйте поискать в Google «planet ».
Подключитесь к IRC каналу: Многие open source проекты имею IRC-каналы где разработчики и пользователи зависают для обсуждения разработки и решения проблем. Посмотрите на странице проекты как называется канал и в какой сети IRC он находится. (прим. перев. Как показывает практика самой популярной сетью есть Freenode, а потом — собственные серверы проектов. Не редки случаи запуска собственных серверов Jabber и конференций.)
Работа с ошибками
Код — сердце практически любого open source проекта, но не думайте что писать код это единственная возможность сделать вклад. Поддержкой кода и системы в целом часто пренебрегается в погоне за новыми возможностями и исправлениями ошибок. Осмотритесь, возможно это ваш путь вступления в проект.
Большинство проектов имеют публичные, видимые для всех, системы отслеживания ошибок, связанные со страницей проекта и документацией. Это второй важный канал связи между разработчиками и пользователями. Поддержание его в актуальном состояние это отличный способ помочь проекту. Возможно, вам понадобятся дополнительные полномочия, которые большинство руководителей будут рады вам дать, если вы изъявите желание помочь.
Диагностика ошибок: Ошибки часто имеют плохое описание. Диагностика и сортировка ошибок сильно помогут разработчикам (даже более того, сэкономят им время) в определении в чём же действительно проблема. Если пользователь сообщает, что «Приложение не работает когда я делаю X», потратьте немного время что бы уточнить что именно идёт не так. Ошибку можно воспроизвести? Можно сделать пошаговый мануал по проблеме? Можно ли сузить проблему: воспроизводится только в одном браузере, работает только в некоторых дистрибутивах? Если да, то в каких?
Даже если вы не знаете в чём именно проблема, затраченные усилия помогут кому-то уточнить или даже решить проблему. Заносите всё что вы нашли по проблеме в bug-трекер, что бы все имели доступ к актуальной информации.
Закрывайте исправленные тикеты: Часто в коде ошибки уже исправлены, но запись в bug-трекере ещё есть. Зачистка этого «хлама» может занять уйму времени, но принесёт неоценимый вклад для всего проекта.
Начните с поиска старых записей и посмотрите, действительно ли ошибка ещё присутствует. Проверьте, возможно в новых релизах ошибка уже исправлена и запись может быть закрыта. Если известно что исправлено — укажите версию и можете закрывать.
Если явных следов исправления нет — попробуйте воссоздать ошибку на новых версиях. Если не воспроизводится — откомментируйте тикет и закройте. При наличии ошибки отметьте это, но, оставьте открытым.
Программисты с любым уровнем знаний и опытом могут помочь проекту. Не думайте что надо быть настоящим гением для существенного вклада в проект.
Если ваша работа включает изменение кода, посмотрите в какой форме происходит передача кода в проект. У каждого проекта свой рабочий процесс, поэтому уточните как правильно делать прежде чем отправлять код.
К примеру для PostgreSQL процесс очень строгий: модификации кода, в виде заплатки, отправляются в список рассылок разработчикам, где они изучают каждый аспект изменений. С другой стороны, есть проекты, такие как Parrot, в которых очень просто получить привилегию делать commit в основную ветку кода. Если проект использует GitHub, вероятно рабочий процесс основан на системе pull-запросов. Нет двух одинаковых проектов!
Всякий раз когда вы изменяете код, следите что бы вы действовали как ответственный участник сообщества и ваш код соответствовал стилю всего остального проекта. Добавленный или изменённый вами код не должен отличаться от остального! Вам может и не нравится использование текущего стиля скобок или пробелов для создания отступов, но это грубо когда вы добавляете код, который не соответствует стандарту. Это тоже самое: «Мне не нравится ваш стиль, мой лучше, делайте как я.»
Тестируйте: Почти все проекты предназначенные для использования на нескольких платформах могут иметь проблемы переносимости. Когда релиз скоро и бета- или релиз-кандидат- версии готовы, руководитель проекта надеется что проект будет тестирован разными людьми в разных условиях. Вы можете быть именно таким человеком и проверить что на вашей платформе пакет работает правильно.
Как правило, нужно лишь скачать, собрать и начать использовать приложение. Но вклад может быть огромен если у вас непопулярная платформа или аппаратное обеспечение (прим. перев. К примеру помочь разработчикам nouveau сделать поддержку современной видеокарты, что переводчик и сделал летом.). Просто комментарий о том, что сборка и испытания прошли успешно, дают знать что предстоящий релиз проверен и может быть опубликован.
Исправляйте ошибки: Это, как правило, путь для людей которые хотят сразу влиться в код. Тут всё просто: ищем интересную ошибку в bug-трекере и исправляем её в коде. Документируем исправления в коде, если это принято.
Хорошая идея — это создание тестов для кода, который вы исправили; а некоторые проекты даже требуют исправление ошибок с тестами! Возьмите блокнот и ручку для записей при копании в незнакомом коде. Даже если вы не можете исправить ошибку, запись в bug-трекере это отметка что вы пытались сделать. Это поможет другим, кто придёт после вас.
Пишите тесты: Большинство проектов имеют наборы тестов, но сложно себе представить такой набор, в котором больше нечего тестировать. Используйте такие инструменты для исследования покрытия кода как gcov для C или Devel::Cover для Perl. А затем, добавьте тесты для улучшения покрытия.
Заставьте замолчать компилятор: Процесс сборки для проектом на C часто сопровождается странными предупреждениями компилятора. Эти предупреждения редко показывают на реальную проблему, но они могут так выглядеть! Да и слишком много предупреждений делает компилятор похожим на ноющего ребёнка.
Убедитесь что код действительно содержит ошибку. Если нет, исправьте код так что бы избавиться от ложного срабатывания (или, не совсем ложного).
Добавьте комментарии: Если вы копаетесь в чужом коде, вы часто находите места которые вас сбивают с толку. Если даже вас он сбивает, то какие чувства у остальных на этом месте? Сделайте полезный комментарий и отправьте заплатку.
Работа с документацией
Документация это важная часть любого проекта. Она может страдать от того, что была написана с точки зрения человека знакомого с проектом, а не глазами человека, который только хочет туда попасть. Если вы когда-то читали документацию с мыслью «Он что, думает что я знаю как это делать?» то вы понимаете о чём я говорю. Свежий взгляд всегда благотворно влияет на документацию и указывает на недостатки, которые остальные уже не замечают.
Создавайте примеры: Нет ни одного проекта в котором достаточно примеров. Web-API, библиотеки, графические приложения (такие как, GIMP) или командные утилиты, для всех них хороший пример лучше покажет использование, чем сухая документация.
Для API или библиотеки не лишним будет написать приложение которое её использует. Это могут быть даже куски ранее написанного кода с отсечением всего ненужного. Живой пример использования в повседневной жизни также будет не лишним! Если приложение графическое — рассмотрите создание скрин-каста разных процессов.
Работа с сообществом
Открытое программное обеспечение это только отчасти код. Сообщество, вот что движет им. Вот способы которым вы можете тут помочь.
Отвечайте на вопросы: Лучший способ построить сообщество — помогать друг-другу. Отвечать на вопросы, особенно новичков, это важный шаг в росте и процветание. Время затраченное на помощь «нубу», даже если его вопрос можно легко найти в документации (с ответом: «RTFM»), оплатится новым, активным участником. Каждый с чего-то начинал, а приток новых пользователей это жизненно важно для любого сообщества.
Пишете блогозаписи: Если у вас есть блог, поделитесь опытом. Расскажите о проблемах с которым вы столкнулись и как вы их решили. Этим вы сразу поможете в двух направлениях: продвижения проекта и помощь людям, которые столкнулись с такой же проблемой. Блог ваших технических похождений также очень неплохой способ показать опыт использования технологий и приложений и будет полезен при поиске новой работы.
Улучшите сайт проекта: Большинство программистов — дерьмовые дизайнеры и редкий проект которому не нужна помощь талантливого дизайнера. Помогите улучшить дизайн сайта, всё-таки это лицо проекта. Поверьте, затраченное время окупится с лихвой! Возможно проекту нужен капитально новый дизайн или логотип, а таких способностей может не хватать у сообщества. Я знаю это, потому-что сам хотел бы улучшить дизайн сайтов собственных проектов.
В конце-концов. Прежде всего, слушайте о чём люди говорят. Смотрите, возможно именно тут вы можете чем-то помочь. Например, недавно в рассылке проекта Parrot было решено использовать GitHub и их систему bug-трекера взамен старого Trac. Некоторые люди были против — не было способа перенести всю старую базу Trac на новую платформу. После целого дня споров, я влез и сказал: «А что если я напишу преобразователь?». Люди пришли в восторг от моей идеи! Я потратил время, чтобы написать программу для преобразования 450+ тикетов. Ведь в противном случае была б потеряна история. Это был успех! Я взялся за дело, а в это время основные разработчики оставались сосредоточены на развитии Parrot.
Существует так много способов внести свой вклад, особенно если мы посмотрим мимо очевидного — добавление нового функционала. Каждый, кто использует open source, может помочь своими талантами и способностями в развитии проекта и его сообщества.
FDroid — F-Droid сетевой репозиторий Open Source проектов, сам является открытым ПО, исходники сервер и клиент, и хвалебная ода на хабре.
AOpenSource — база данных Open Source проектов включает
Источник