##abase
abase интегрировал util, который я часто использую, а также такие open-source фреймворки, как androidannotations и xutils. Затем я немного модифицировал его в соответствии со своими привычками. Моя цель — обеспечить быстрое создание проектов.
##abase состав
#androidannotations xUtils
Я заменил xUtils ViewUtils на androidannotations, используя более мощный ioc annotations. Также я интегрировал три других больших модуля и провёл частичную оптимизацию Db, Http и Bitmap модулей. На основе abase я создал свою собственную настройку.
#abase-util
Включает более 100 утилит, содержащих все методы, которые я могу повторно использовать на данный момент.
#abase-ext
Предоставляет поддержку для расширений, таких как sdk firewall, umeng статистика, автоматическое обновление и обратная связь. Для использования достаточно добавить необходимые зависимости.
#abase-view
Поддерживает UI, включая автоматическую прокрутку viewpage и компоненты для обновления по запросу. Для использования необходимо добавить необходимые зависимости.
##Изучение
Перед использованием рекомендуется изучить документацию по androidannotations и xUtils.
Если вы хотите использовать только abase-util, просто добавьте следующий код перед использованием:
Abase.setContext(context);
// Конечно, вам также нужно добавить некоторые разрешения и другие настройки самостоятельно.
##Demo
В каталоге demo находятся примеры проектов, которые могут служить образцом (версия abase может отличаться).
##Пример
// androidannotations
//activity форма обычно использует привязку объекта AActivity + AAdapter +ItemView<T>
@EActivity(R.layout.activity_main)
public class MainActivity extends AActivity {
@ViewById
GridView gv;
ABaseAdapter<Book> adapter;
@Bean
ADao db;
/**
Этот метод можно использовать вместо onCreate().
**/
public void init() {
// Используйте BookItemView для замены адаптера
adapter = new AeBaseAdapter<Book>(BookItemView.class, this);
gv.setAdapter(adapter);
setData();
}
@EViewGroup(R.layout.gv_item)
public class BookItemView extends ItemView<Book> {
@ViewById
Button gv_bt;
public BookItemView(Context context) {
super(context);
}
@AfterInject
public void init() {}
// bind метод используется для установки соответствующих свойств.
public void bind(final Book book) {
gv_bt.setText(book.name);
}
}
//fragment tabs использование формы
AFragmentActivity+AFragmentPagerAdapter+Viewpage+TabPageIndicator+AFragment
@EActivity(R.layout.activity_viewpage)
@NoTitle
public class RankActivity extends AFragmentActivity {
@ViewById
TextView tv_title;
@ViewById
ViewPager vp;
@ViewById // viewindicator open source project
TabPageIndicator tpi;
private AFragmentPagerAdapter adapter;
protected void init() {
tv_title.setText("Rank");
adapter = new AFragmentPagerAdapter(getSupportFragmentManager());
adapter.setFragment(AFragment.newInstances(MsgKit.getBundle("url", new String[]{Config.apprank_url, Config.gamerank_url}),
RankFragment.class, RankFragment.class));
adapter.setLable("Application rank", "Game rank");
vp.setAdapter(adapter);
tpi.setViewPager(vp);
}
}
@EFragment(R.layout.lay)
public class RankFragment extends AFragment {
@ViewById
ListView lv;
@ViewById
ProgressBar pb;
@Bean
AppAdapter adapter;
@FragmentArg
String url;
@Override
protected void init() {
pb.setVisibility(View.VISIBLE);
setDate(xxx);
}
@Override
public void setDate(String data) {
adapter.setData(AppInfo.paraseData(data));
adapter.setListView(lv);
lv.setAdapter(adapter);
pb.setVisibility(View.GONE);
}}
// Common kit some useful and useless things
/**
* SharedPreferences kit
*
*/
public class ConfigKit
/**
* Handler related msg tool
* @author jayqqaa12
* @date 2013-6-8
*/
public class MsgKit
/***
* Time stamp
*
* @author 12
*
* SystemClock.elapsedRealtime
*/
public class TimeKit
/**
* String operation tool class.
*
*/
public final class Txt
/***
* Used to judge the version
*
* @author 12
*
*/
public class VersionKit
/***
* Date operation tool
* @author 12
*
*/
public class DateKit
/**
* Print log
*
* @author jayqqaa12
* @date 2013-6-5
*/
public class L
/**
* Obtain logcat log information
*
* <uses-permission android:name="android.permission.READ_LOGS" />
*
* @author jayqqaa12
* @date 2013-5-15
*/
public class LogcatKit
/**
* Toast
*
* @author jayqqaa12
*
*/
public class T
/**
* Validation toolbox
*/
public class Validate {
/**
* File tool bar
*
*/
public class FileKit
/**
* Java Kits implemented Zip tool
*
*/
public class ZipKits
/**
* Media type toolbox
*
* @author 12
*
*/
public class MediaTypeKit
*Примечание: в тексте запроса присутствуют фрагменты кода, но они не содержат синтаксических ошибок и не требуют перевода. Поэтому перевод выполнен без изменений.*
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )