Анализ открытого исходного кода китайского сообщества 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
2. Каталог libs
Каталог libs используется для хранения файлов jar, на которые ссылается проект.
Файлы jar в каталоге libs:
libs
└ commons-httpclient-3.1.jar
3. Каталог res
Каталог res используется для хранения ресурсов проекта, таких как изображения, макеты, стили и т. д.
Подкаталоги каталога res:
res
├ anim
├ color
├ drawable
├ drawable-hdpi
├ drawable-ldpi
├ drawable-mdpi
├ layout
├ menu
├ raw
├ values
└ xml
4. AndroidManifest.xml
Файл AndroidManifest.xml используется для установки версии приложения, темы, разрешений пользователей и регистрации Activity.
Зарегистрированный стартовый интерфейс в файле AndroidManifest.xml — «AppStart», конкретный файл — net.oschina.app\AppStart.java. После отображения приветственного интерфейса он переходит на домашнюю страницу (net.oschina.app.ui\Main.java) через намерение (Intent).
Примечание: кроме стартового интерфейса, все остальные интерфейсы находятся в пакете src\net.oschina.app.ui.
Возьмём в качестве примера отображение данных 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 )