1. Несколько слов
2. Детали
Android SDK
Поместите свой Android SDK в свой домашний каталог или другие места, которые не связаны с приложением. Некоторые IDE будут связывать SDK при установке и поместят SDK в тот же каталог IDE. Когда вам нужно обновить (переустановить) IDE или заменить IDE, вы найдете что -то плохое. Кроме того, если ваш IDE работает под учетной записью пользователя вместо root, не размещайте SDK в каталог системного уровня, в противном случае при его использовании требуется разрешение SUDO.
Система сборки
Выбор по умолчанию - Грэдл. У муравья много ограничений и слишком велик. С Gradle вы можете сделать это легко:
- Скомпилируйте разные вкусы или варианты применения
-Поджат простые классы -спильчатые задачи
-Ду управляй и загрузкой зависимостей
-Custom Ключевые магазины
-и т. д
Плагин Gradle для Android также обозначен Google в качестве новой стандартной системы компиляции, и Google продолжает его обновлять.
Структура проекта
Есть два популярных варианта: старая структура проекта Ant & Eclipse ADT; Новая структура проекта Gradle & Android Studio. Вы должны выбрать последнее. Если ваш проект использует старую структуру, замените ее.
Старая структура
Старая структура ├ac Assets├ac Libs├ac-Res├ac Src│ └act
Новая структура
Новую структуру ├ac Библиотека-Фубар-° App│ ├ описать либера AndroidManifest.xml│ ├ac Build.Gradle│ └actres
Основное различие между новой структурой заключается в разделении «набора исходного кода» (Main, AndroidTest), который является концепцией от Gradle.
Использование приложения для самого высокого уровня «приложение» полезно для отличия вашего приложения от других библиотечных проектов, на которые ссылается ваше приложение (например, библиотека-Foobar). Затем настройки. Gradle сохраняет индекс приложения в этих библиотеках, а App/Build.Gradle может указывать на эти библиотеки.
Конфигурация Градл
Общая архитектура, пожалуйста, следуйте руководству Google на Gradle для Android;
Небольшие задачи (сценарии), вы можете использовать Gradle для создания небольших задач вместо оболочки, Python или Perl и т. Д. Для получения подробной информации, пожалуйста, обратитесь к документации Gradle;
пароль. В вашем приложении Build.Gradle вам необходимо определить подписи для публикации компиляции. Детали следующие:
Не пишите как следующее, он появится в вашей системе управления версиями:
ingningconfigs {release {storefile file ("myapp.keystore") StorePassword "password123" keyalias "thekey" ceypassword "password789"}}Вместо этого вы должны создать файл gradle.properties, который не будет добавлен в систему управления версиями.
Keystore_password = password123key_password = password789
Этот файл будет автоматически импортирован Gradle, поэтому вы можете использовать его в build.gradle
ingningConfigs {release {try {storefile file ("myApp.keyStore") StorePasswordKeyStore_Password Keyalias "theKey" KeyPassWordKey_Password} Catch (ex) {thrownewInvaliduserDataException ("Вы должны определить KeyStore_Password и key_password in Gradle.(При использовании Maven, пожалуйста, обратитесь к исходному документу)
Библиотека
Джексон - это библиотека Java, которая может преобразовать объекты и данные JSON друг в друга. Gson также такой же хороший выбор. Тем не менее, мы думаем, что JSckson лучше, потому что он поддерживает несколько способов обработки JSON: потоковая передача, модель дерева памяти и привлечение данных JSON-Pojo. Но помните, Джексон больше GSON, поэтому вы должны считать его как вам, пожалуйста, если вы хотите избежать ограничения методов 65 тыс., Лучше всего использовать GSON. Другие варианты: JSON-SMART и BOON JSON
Сеть, кэш и картинки. Используйте залп или модернизацию. Volley также можно использовать для загрузки и кеша изображений. Если вы выберете модернизацию, вы можете использовать Picasso для загрузки и кэша. Затем используйте OKTTP, чтобы выполнить действительный HTTP -запрос. Эти три типа: модернизация, Пикассо и Ohhttp - все из одной компании, поэтому они дополняют друг друга. OKTTP можно использовать для подключения к залпом.
Rxjava - это отзывчивая библиотека программирования, другими словами, обрабатывает асинхронные события. (Для получения подробной информации, пожалуйста, обратитесь к исходному документу)
Retrolalmbda - это библиотека Java, которая поможет вам использовать Lambda Expressions на Android или других платформах перед JDK8. (Для получения подробной информации, пожалуйста, обратитесь к исходному документу)
Наконец, помните ограничения метода DEX и не используйте слишком много библиотек. (Приложения Android, когда они упакованы в файлы dex, имеют максимальный предел: 65535 Справочные методы [1] [2] [3]. Если вы превышаете предел, возникнет серьезная ошибка. Поэтому не используйте слишком много библиотек, используйте инструмент DEX-метод, чтобы решить, какие классы использовать, чтобы сохранить предел, особенно избегайте использования библиотеки Guava, потому что он содержит более 13 тыс.
Деятельность и фрагменты
Фрагменты должны быть опцией по умолчанию для вашего интерфейса пользовательского интерфейса Android. Фрагменты могут быть повторно использованы в вашем заявлении. Мы рекомендуем использовать фрагменты вместо действий для рисования интерфейсов на основе следующих точек:
Структура упаковки Java
Структура Java в приложениях Android близок к структуре MVC (модель-визитный контроллер). В Android фрагмент и активность на самом деле являются классами контроллера. С другой стороны, они являются частью взаимодействия с пользователем, то есть они принадлежат классу представления.
Следовательно, нам трудно строго различать, является ли фрагмент (или деятельность) контроллером или представлением. Таким образом, с точки зрения Java Packages, нам лучше поместить фрагменты в их собственные пакеты фрагментов, а затем активность находится в самом продвинутом пакете (следуйте предложениям, изложенным выше). Конечно, если вы хотите провести 2 или более мероприятий, то вы создаете пакет мероприятий.
Таким образом, вся структура выглядит как типичная структура MVC. Пакет моделей содержит POJOS, который используется для преобразования данных JSON, полученных интерфейсом API, а пакет представлений содержит представления, уведомления, представления стержня, виджеты и т. Д. Адаптеры - это промежуточный слой, который расположен между данными и представлениями. Тем не менее, им обычно нужно вывести представление через getView (), поэтому вы можете разместить адаптеры в местоположении подпакера пакета представлений.
Некоторые классы контроллера на уровне приложения, которые принадлежат только к системе Android, должны быть размещены в пакете менеджеров. Различные классы обработки данных, такие как DateUtils, могут быть размещены в пакете UTILS. Классы, которые взаимодействуют с фоновым сервером, должны быть размещены в сетевом пакете.
Короче говоря, общая архитектура от взаимодействия с сервером до взаимодействия с пользователем может быть спроектирована следующим образом:
com.futurice.project ├acment ├ ├ac Model
Наименование файлов ресурсов
Следуйте соглашению о префиксе, аналогично TYPE_FOO_BAR.XML, например: fragment_contact_details.xml, view_primary_button.xml, activity_main.xml.
Организовать файлы макетов
Если вы не знаете, как нормализовать макет XML -файл, вы можете обратиться к следующим соглашениям:
<? xml version = "1.0" Encoding = "UTF-8"?> <linearlayout xmlns: android = "http://schemas.android.com/apk/res/android" xmlns: tools = "http://schemas.android.com/tools" android: layout_width = "Match_parent" Match_parent "Match_parent" Match_parent "Match_parent". Android: Layout_height = "match_parent" Android: Layout_height = "match_parent" Android: Orientation = "vertical"> <TextView Android: id = "@+id/name" Android: Layout_width = "match_parent" Android: Layout_Height = "raw_content" android: layout_AlignParent = "trinOut_height =" rap_content "android: layout_alignparent =" truote_height = " Android: Text = "@string/name" style = "@style/fancytext"/> <include mayout = "@layout/re -wreeable_part"/> </linearlayout>