1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/jason1987-oschina_studio

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 7.2 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 25.11.2024 05:10 ca4583e

Анализ открытого исходного кода китайского сообщества Android-клиента

Примечание: предполагается, что у вас уже есть среда разработки для Android.

Запустите Eclipse, нажмите меню и импортируйте проект Android-клиент. Убедитесь, что ваш текущий Android SDK является последней версией.

Если компиляция не удалась, измените файл project.properties в корневом каталоге проекта. Рекомендуется использовать версию SDK выше 4.0 и использовать JDK1.6 для компиляции:

target=android-15

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

Далее будет проведён простой анализ проекта:

Структура каталогов проекта

корневой каталог
├ src
├ libs
├ res
├ AndroidManifest.xml
├ LICENSE.txt
├ proguard.cfg
└ project.properties

1. Каталог src
Каталог src используется для хранения пакетов проекта и файлов исходного кода Java.

Ниже приведены подкаталоги каталога src:

src
├ com.weibo.net
├ greendroid.widget
├ net.oschina.app
├ net.oschina.app.adapter
├ net.oschina.app.api
├ net.oschina.app.bean
├ net.oschina.app.common
├ net.oschina.app.ui
└ net.oschina.app.widget

  • com.weibo.net — исходный код пакета SDK Sina Weibo
  • greendroid.widget — компонент панели быстрого меню (библиотека пользовательского интерфейса GreenDroid за рубежом)
  • net.oschina.app — пакет запуска и управления APP
  • net.oschina.app.adapter — пакет адаптера списка APP
  • net.oschina.app.api — пакет доступа к API
  • net.oschina.app.bean — пакет сущностей APP
  • net.oschina.app.common — набор инструментов APP
  • net.oschina.app.ui — пакет интерфейса APP
  • net.oschina.app.widget — пакет компонентов APP

2. Каталог libs
Каталог libs используется для хранения файлов jar, на которые ссылается проект.

Файлы jar в каталоге libs:

libs
└ commons-httpclient-3.1.jar

  • commons-httpclient-3.1.jar — пакет Apache HttpClient

3. Каталог res
Каталог res используется для хранения ресурсов проекта, таких как изображения, макеты, стили и т. д.

Подкаталоги каталога res:

res
├ anim
├ color
├ drawable
├ drawable-hdpi
├ drawable-ldpi
├ drawable-mdpi
├ layout
├ menu
├ raw
├ values
└ xml

  • anim — эффекты анимации
  • color — цвета
  • drawable/drawable-hdpi/drawable-ldpi/drawable-mdpi — значки, изображения
  • layout — макет интерфейса
  • menu — меню
  • raw — звук уведомления
  • values — языковой пакет и стиль
  • xml — настройки системы

4. AndroidManifest.xml
Файл AndroidManifest.xml используется для установки версии приложения, темы, разрешений пользователей и регистрации Activity.

Функциональный поток проекта

1. Поток запуска APP

Зарегистрированный стартовый интерфейс в файле AndroidManifest.xml — «AppStart», конкретный файл — net.oschina.app\AppStart.java. После отображения приветственного интерфейса он переходит на домашнюю страницу (net.oschina.app.ui\Main.java) через намерение (Intent).

Примечание: кроме стартового интерфейса, все остальные интерфейсы находятся в пакете src\net.oschina.app.ui.

2. Поток доступа APP к API

Возьмём в качестве примера отображение данных API в списке новостей на домашней странице:

1) Инициализация компонента
На домашней странице Activity (Main.java) загружает файл макета (Main.xml) в методе onCreate(), инициализирует компонент нижнего колонтитула (PullToRefreshListView) и устанавливает адаптер данных (ListViewNewsAdapter).

Примечание: файл макета Main.xml находится в каталоге res\layout; компонент нижнего колонтитула PullToRefreshListView находится в пакете net.oschina.app.widget; адаптер данных ListViewNewsAdapter находится в пакете net.oschina.app.adapter.

2) Асинхронный поток доступа
После инициализации компонента запускается метод потока (loadLvNewsData()), который вызывает класс глобального приложения (AppContext) для доступа к классу клиента API (ApiClient). Через класс клиента API клиент запрашивает серверный API через HTTP. Возвращает ответ XML-данных, а затем анализирует XML с помощью класса сущности (NewsList) и возвращает сущность (NewsList) компоненту пользовательского интерфейса (PullToRefreshListView).

Примечание: класс глобального приложения AppContext находится в пакете net.oschina.app; класс клиента API ApiClient находится в пакете net.oschina.app.api.

3) Анализ данных и отображение
Сервер получает запрос и возвращает соответствующие данные новостей XML, затем анализирует данные XML с помощью класса сущностей (NewsList), а затем возвращает сущность (NewsList) компоненту пользовательского интерфейса (PullToRefreshListView) для отображения.

Примечание: класс сущности NewsList находится в пакете net.oschina.app.bean.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/jason1987-oschina_studio.git
git@api.gitlife.ru:oschina-mirror/jason1987-oschina_studio.git
oschina-mirror
jason1987-oschina_studio
jason1987-oschina_studio
master