Android工程模板,包含基础工具,包括图片缓存、网络请求、日志、推送、相机、二维码等。 会存在Java、kotlin混合开发的情况
工程使用多模块设计,每个模块尽量坚持单一功能原则。
lib-application
lib-glide
lib-http
网络请求,使用Retrofit+协程
自定义Retrofit使用单例,初始化参数配置,并可通过create方法快速创建Service请求接口实体类
RetrofitManager第一次使用前需要调用init方法,可在此时设置拦截器用于填充token参数等
SSL忽略,可根据需要自行修改
请求数据基类ApiBase,成功请求的返回基本格式,可根据需要自行修改
请求状态基类ApiStatus,包含请求失败的返回数据格式
分页请求数据基类ApiPage,分页成功请求的返回基本格式,属于ApiBase的data,可根据需要自行修改
返回ApiStatus的请求方法
viewModelScope.launch {
val result = apiCall {
RetrofitManager.create(Login::class.java).login()
}
when(result){
is ApiStatus.Success ->{}
is ApiStatus.Error ->{}
is ApiStatus.Canceled ->{}
}
}
通过try catch的请求方法
viewModelScope.launch {
try{
val result = apiCallExp {
RetrofitManager.create(Login::class.java).login()
}
} catch(e: ApiExeptions){
when(e){
is ApiExeptions.Canceled ->{}
else ->{}
}
}
}
自定义URL拼接工具类,可自动进行URLEncoder并进行拼接
lib-logger
lib-push
lib-camera
ExampleCamera.from(this)
.feature(ExampleCamera.Feature.BUTTON_STATE_BOTH)
.savePath(filesDir.absolutePath)
.forResult(1)
lib-qrcode
new IntentIntegrator(context)
.setBarcodeImageEnabled(false)
.setBeepEnabled(true)
.setCaptureActivity(CaptureActivity.class)
.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE)
.setOrientationLocked(true)
.addExtra(Intents.Scan.CHARACTER_SET, "UTF-8")
.initiateScan();
lib-widget
BASE_URL在com.simple.lib.http.RequestUrl 中修改 BASE_FILE_URL是文件上传下载的
网络请求需要先调用RetrofitManager.init()方法进行初始化,可添加拦截器
Timber需要先绑定Tree
Timber.plant(Timber.DebugTree())
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。