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

OSCHINA-MIRROR/lody-WelikeAndroid

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

WelikeAndroid — что это?

WelikeAndroid — это удобная и готовая к использованию среда разработки, которая призвана обеспечить программистам наилучший опыт программирования. Используя WelikeAndroid, вы обнаружите, что написание кода стало гораздо проще.

Добро пожаловать в группу разработчиков Android Welike:

  • 142853711 (группа обмена WelikeAndroid).

Welike предлагает следующие функции:

Модуль изоляции исключений (на стадии эксперимента): когда любой поток генерирует любое исключение, наш механизм изоляции исключений позволяет UI-потоку продолжать работу.

Http-модуль: одна строка кода для выполнения POST, GET и загрузки запросов, поддержка загрузки, оптимизированная дисковая загрузка, возможность свободно устанавливать размер кэша и время кэширования (включая постоянное кэширование и отсутствие кэширования).

Bitmap-модуль: асинхронная загрузка изображений с помощью одной строки кода, без необходимости беспокоиться о проблемах OOM, поддержка предварительной обработки изображений перед загрузкой.

Database-модуль: поддержка аннотаций NotNull, Table, ID, Ignore и других, Bean не требует геттеров и сеттеров, однократное развёртывание базы данных.

UI-манипуляции: мы предоставили полное инкапсулирование для класса Activity, наследование от базового класса может сделать код более элегантным.

Не думайте, что если функции похожи, то фреймворк не является оригинальным. Исходный код находится прямо перед вами, почему бы не взглянуть на него?

Для использования WelikeAndroid требуются следующие разрешения:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />

Далее мы покажем вам, как эффективно использовать WelikeAndroid:

Получение контекста через WelikeContext в любом месте:

  • WelikeContext.getApplication() позволяет получить текущий контекст приложения;
  • WelikeToast.toast("Привет!"); просто выводит всплывающее сообщение Toast.

WelikeGuard (использование механизма изоляции исключений):

  • Первый шаг — включить механизм изоляции исключений:
WelikeGuard.enableGuard();
  • Второй шаг — зарегистрировать глобальный обработчик исключений:

WelikeGuard.registerUnCaughtHandler(new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread thread, Throwable ex) {

 WelikeGuard.newThreadToast("Возникло исключение: " + ex.getMessage() );

}
});
  • Вы также можете создавать собственные исключения:
/**
*
* Пользовательское исключение, которое автоматически вызывает обратный вызов onCatchThrowable при возникновении исключения.
*/
@Catch(process = "onCatchThrowable")
public class CustomException extends IllegalAccessError {

   public static void onCatchThrowable(Thread t){
    WeLog.e(t.getName() + "  выбросил исключение...");
   }
}
  • Кроме того, исключения, унаследованные от UncaughtThrowable, не будут перехвачены.

Использование Welike для адаптации экрана:

Класс ViewPorter в Welike предоставляет плавный API для адаптации экрана. Мы можем легко выполнить адаптацию экрана с помощью набора плавных API.

        ViewPorter.from(button).ofScreen().divWidth(2).commit();//ширина становится половиной экрана
        ViewPorter.from(button).of(viewGroup).divHeight(2).commit();//высота становится половиной viewGroup
        ViewPorter.from(button).div(2).commit();//ширина и высота становятся четвертью экрана
        ViewPorter.from(button).of(this).fillWidth().fillHeight().commit();//ширина и высота заполняют активность
        ViewPorter.from(button).sameAs(imageView).commit();//ширина и высота кнопки такие же, как у imageView

Введение в WelikeHttp:

Давайте сначала посмотрим на информацию о фреймворке, чтобы понять её. DEBUG DEBUG2

  • Первый шаг — получить экземпляр WelikeHttp по умолчанию.
WelikeHttp welikeHttp = WelikeHttp.getDefault();
  • Второй шаг — отправить запрос Get.
HttpParams params = new HttpParams();
params.putParams("app","qr.get",
                 "data","Test");//поместить две пары параметров и значений за один раз

//отправить запрос Get
HttpRequest request = welikeHttp.get("http://api.k780.com:88", params, new HttpResultCallback() {
    @Override
    public void onSuccess(String content) {
    super.onSuccess(content);
    WelikeToast.toast("Возвращённый JSON: " + content);
    }

    @Override
    public void onFailure(HttpResponse response) {
    super.onFailure(response);
    WelikeToast.toast("Ошибка отправки JSON.");
    }

    @Override
    public void onCancel(HttpRequest request) {
    super.onCancel(request);
    WelikeToast.toast("Запрос отменён.");
    }});

    //отменить запрос, вызовет обратный вызов onCancel()
    request.cancel();

Конечно, мы предоставляем различные расширенные обратные вызовы для удовлетворения потребностей, в настоящее время мы предоставляем следующие обратные вызовы на выбор:

  • HttpCallback (ответ — массив байтов);
  • FileUploadCallback (используется только при загрузке файлов);
  • HttpBitmapCallback (рекомендуется использовать модуль Bitmap);
  • HttpResultCallback (ответ — строка);
  • DownloadCallback (используется только для загрузки).

Если вам нужно настроить конфигурацию Http-модуля (например, время кеширования), обратитесь к HttpConfig.

Введение в WelikeBitmap:

  • Первый шаг — получение экземпляра WelikeBitmap по умолчанию:
//получение экземпляра WelikeBitmap по умолчанию
WelikeBitmap welikeBitmap = WelikeBitmap.getDefault();
  • Второй шаг — асинхронная загрузка изображения:
BitmapRequest request = welikeBitmap.loadBitmap(imageView,
"http://img0.imgtn.bdimg.com/it/u=937075122,1381619862&fm=21&gp=0.jpg",
android.R.drawable.btn_star,//изображение для отображения во время загрузки
android.R.drawable.ic_delete,//изображение, отображаемое при сбое загрузки
new
``` **BitmapCallback()**

    @Override
    public Bitmap onProcessBitmap(byte[] data) {
        //如果需要在加载时处理图片,可以在这里处理,
        //если не нужно обрабатывать, то вернуть null или не переопределять этот метод.
        return null;
    }

    @Override
    public void onPreStart(String url) {
        super.onPreStart(url);
        WeLog.d("===========> onPreStart()");
    }

    @Override
    public void onCancel(String url) {
        super.onCancel(url);
        WeLog.d("===========> onCancel()");
    }

    @Override
    public void onLoadSuccess(String url, Bitmap bitmap) {
        super.onLoadSuccess(url, bitmap);
        WeLog.d("===========> onLoadSuccess()");
    }

    @Override
    public void onRequestHttp(HttpRequest request) {
        super.onRequestHttp(request);
        WeLog.d("===========> onRequestHttp()");
    }

    @Override
    public void onLoadFailed(HttpResponse response, String url) {
        super.onLoadFailed(response, url);
        WeLog.d("===========> onLoadFailed()");
    }
});

* Если нужно настроить Config, смотрите класс BitmapConfig.

##WelikeDAO: введение

* Сначала создайте Bean.

```java
/*Таблица имён, может быть, может и нет, по умолчанию — имя класса.*/
@Table(name="USER",afterTableCreate="afterTableCreate")
public class User{
    @ID
    public int id;//id может быть, а может и не быть, в зависимости от того, нужен он или нет.

    /*Эта аннотация означает, что поле name не может быть пустым.*/
    @NotNull
    public String name;

    public static void afterTableCreate(WelikeDao dao){
        //При создании текущей таблицы вызывается обратный вызов, здесь можно выполнить некоторую работу по инициализации таблицы.
    }
}
  • Затем запишите его в базу данных.
WelikeDao db = WelikeDao.instance("Welike.db");
User user = new User();
user.name = "Lody";
db.save(user);
  • Извлеките Bean из базы данных.
User savedUser = db.findBeanByID(1);
  • SQL-запрос с несколькими условиями.
List<User> users = db.findBeans().where("name = Lody").or("id = 1").find();
  • Обновите указанный ID Bean.
User wantoUpdateUser = new User();
wantoUpdateUser.name = "NiHao";
db.updateDbByID(1,wantoUpdateUser);
  • Удалите указанный ID Bean.
db.deleteBeanByID(1);
  • Дополнительные примеры см. в DEMO и API документации.

##Освойте WelikeActivity за десять секунд

  • Мы разделим жизненный цикл Activity следующим образом:
=>@initData (все методы, помеченные InitData, будут вызваны первыми в дочернем потоке)
=>initRootView(bundle)
=>@JoinView (автоматически findViewByID и setOnClickListener для просмотра с этой аннотацией)
=>onDataLoaded (обратный вызов при загрузке данных)
=>события кликов будут вызывать onWidgetClick (виджет View)

###Подробности о @JoinView:

  • Есть три способа написания:
@JoinView(name = "welike_btn")
Button welikeBtn;
@JoinView(id = R.id.welike_btn)
Button welikeBtn;
@JoinView(name = "welike_btn",click = false)
Button welikeBtn;
  • click равно true, автоматически вызовет метод view setOnClickListener и вызовет обратный вызов в onWidgetClick.
  • Когда необходимо связать Button, click по умолчанию равно true, для других видов по умолчанию равно false.

##Есть вопросы?

Если у вас возникнут проблемы при использовании, пожалуйста, свяжитесь со мной. Вы можете использовать следующие способы связи:

  • QQ: 382816028
  • Email: 382816028@qq.com
  • Присоединяйтесь к группе 142853711 и обсуждайте с другими участниками.

Git: https://github.com/FinalLody/WelikeAndroid
Git@OSC: http://git.oschina.net/lody/WelikeAndroid

Комментарии ( 0 )

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

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/lody-WelikeAndroid.git
git@api.gitlife.ru:oschina-mirror/lody-WelikeAndroid.git
oschina-mirror
lody-WelikeAndroid
lody-WelikeAndroid
master