PLib是一个Android应用开发库,集成了流行的开源库,整合一些Util,可以帮助开发者更快开发应用.仅支持Android Studio。v1.6 开始移除Volley,网络请求使用OKHttp封装,简单高效。
1.AndroidAnonations
2.gson
3.eventbus
4.fresco
5.OKHttp3
1.OKHttp3封装,可以很容易用一两行代码实现post,get请求,上传下载文件
2.SharedPreference封装,一行代码实现保存读取配置
3.Toast封装
4.Log封装
5.其他一些常用Utils(md5,DES,日期处理,字符串处理,图片处理,网络判断,首次运行检测,版本号比较等)
6.CarouselViewPager 轮播幻灯片
7.BoldTextView 加粗的TextView
...
参考Demo项目,导入Android Studio,Rebuild Project,改包名,直接使用。 Demo包含的内容:
Demo项目使用单Activity架构,UI使用Fragment展示,通过PageManger控制。
#####1、切到项目(仅支持Android Studio项目)根目录下,添加子模块
git submodule add -b v1.5 https://git.oschina.net/pocketdigi/PLib.git plib
#####2、修改项目的build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.0'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
####3、修改项目的settings.gradle
include ':app', ':plib'
将plib模块加进来 ####4、修改app模块的build.gradle
apply plugin: 'com.neenbedankt.android-apt'
def AAVersion = '4.0.0'
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':plib')
apt "org.androidannotations:androidannotations:$AAVersion"
compile 'com.android.support:appcompat-v7:23.2.1'
compile 'com.android.support:cardview-v7:23.2.1'
compile 'com.android.support:recyclerview-v7:23.2.1'
}
apt {
arguments {
resourcePackageName android.defaultConfig.applicationId
androidManifestFile variant.outputs[0].processResources.manifestFile
}
}
完成后,可以使用标准的AndroidAnnotations注解开发。Application继承PApplication,Activity继承PFragmentActivity.
###网络请求 ####v1.6开始不再使用volley,而是通过封装OKHttp实现网络请求.
GET:
PRequest<String> request=new PRequest<>("http://git.oschina.net/pocketdigi/PLib/raw/master/README.md", listener,String.class);
PHttp.getInstance().addRequest(request);
listener 是
PResponseListener<String>
的实例,如果PResponseListener的泛型是String,则直接不处理返回字符串,如果是其他类型,则通过GSON转换成对象。
POST:
public static void post(PResponseListener<String> listener) {
PRequest<String> request=new PRequest<>(PRequest.POST, API_PREFIX+"add", listener,String.class);
request.addParam("p1","value1");
request.addParam("p2","value2");
PHttp.getInstance().addRequest(request);
}
POST Json
public static void postObject(Person person,PResponseListener<String> listener) {
PRequest<String> request=new PRequest<>(PRequest.POST, API_PREFIX+"add", listener,String.class);
request.setPostObject(person);
PHttp.getInstance().addRequest(request);
}
通过Gson将对象转成json放在request body里发送 上传
public static PUploadRequest upload(String filePath,UploadListener<String> listener) {
PUploadRequest<String> request=new PUploadRequest<>(API_PREFIX+"upload","file",filePath, listener,String.class);
PHttp.getInstance().addRequest(request);
return request;
}
下载
public static PDownFileRequest downloadFile(String url, String savePath, DownProgressListener listener) {
PDownFileRequest pDownFileRequest = new PDownFileRequest(url, savePath,listener);
PHttp.getInstance().addRequest(pDownFileRequest);
return pDownFileRequest;
}
###常用Util
1.SharedPreference封装
使用SharedPreference可以串联:
PreferenceManager.getDefaultManager().putBoolean(KEY1,Value1).putString(KEY2,Value2).commit();
最后加Commit()方法即可保存,支持指定保存的文件
2.Toast封装
Toast封装后,支持在非UI线程直接调用:
PToast.show(message);
3.Log封装
PLog类支持更多的参数类型,如Tag可以直接传入Object,会取object的类名作tag,Message支持基本类型.
其他
md5,DES,日期处理,字符串处理,图片处理,网络判断,首次运行检测等
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型