Skip to content

Repository files navigation

Technology Stack

IDPlatformFunctionLnguageBuild Status
1AndroidFrameworkJavakotlinBuild Status
2IosFrameworkOC SwiftBuild Status
3FlutterFlutterDartflutterBuild Status
4WebBackstageGolangJSBuild Status
5ApiInterfaceGolangBuild Status
6SparkAnalysisScalaBuild Status
7Block ChainIdentificationGolangBuild Status
8Android客户端平台基础架构JavaBuild Status

Base framework

PlatforModuleStatusOpen Level
AndroidUI模块基础完成低(可定制)
Android网络模块(http,socket)基础完成低(可定制)
Android消息模块开发中需定制
Android事件分发模块开发中需定制
Android安全控制与认证模块开发中需定制
Android数据适配模块基础完成低(可定制)
Android升级模块基础完成中(可定制)
Android错误日志模块(java,native)基础完成低(可定制)
AndroidHTML5交互模块基础完成中(可定制)

项目目的

打造最简单与最全的移动客户端基础框架,兼容所有原生接口,让开发者使用最少的代码去最大化的实现项目需求,应变各种紧急项目快速迭代输出,让开发者只需要专注于业务的实现,客户端不限于设计模式,欢迎start

项目架构

Image

image

1.UI模块(通用导航栏,通用加载刷新,通用对话实现,二维码相关,以及基础用到的view...)

1.1 通用导航栏

1.1.1 底部通用导航栏实现:可滑动
publicclassMainActivityextendsBaseActivity {
@OverrideprotectedvoidinitView(BundlesavedInstanceState) {
setView(mNavigationBar.initView(getSupportFragmentManager(), newHomeFragment(), newCircleFragment(), newPulishFragment(), newShopFragment(), newMineFragment()).initData(newint[]{R.mipmap.tab_home, R.mipmap.tab_circle, R.mipmap.ic_launcher_round, R.mipmap.tab_shop, R.mipmap.tab_mine}, newint[]{R.mipmap.tab_home_selected, R.mipmap.tab_circle_selected, R.mipmap.tab_publish_selected, R.mipmap.tab_shop_selected, R.mipmap.tab_mine_selected}, getResArrStr(R.array.tab_main_title), R.color.font_gray, R.color.colorPrimary)
.setBgColor(getResColor(R.color.app_bg)), this);
}
@OverrideprotectedvoidprocessLogic(BundlesavedInstanceState) {
mNavigationBar.showView(mTabIndex);
}
}
1.1.2 底部通用导航栏实现:不可滑动
publicclassMainActivityextendsBaseActivity { @OverrideprotectedvoidinitView(BundlesavedInstanceState) {
setView(mNavigationBar.initView(newHomeFragment(), newCircleFragment(), newPulishFragment(), newShopFragment(), newMineFragment()).initData(mTabIndex, newint[]{R.mipmap.tab_home, R.mipmap.tab_circle, R.mipmap.ic_launcher_round, R.mipmap.tab_shop, R.mipmap.tab_mine}, newint[]{R.mipmap.tab_home_selected, R.mipmap.tab_circle_selected, R.mipmap.tab_publish_selected, R.mipmap.tab_shop_selected, R.mipmap.tab_mine_selected}, getResArrStr(R.array.tab_main_title), R.color.font_gray, R.color.colorPrimary,this)
.setBgColor(getResColor(R.color.app_bg)), this);
}
@OverrideprotectedvoidprocessLogic(BundlesavedInstanceState) {
changeTab(mTabIndex);
}
}

1.2 通用加载刷新控制:只需要在设置view是添加一个bool等于true即可,如果不想有刷新就置为false

setView(R.layout.home, this,true);

1.3 通用对话框实现:在Activity与Fragment中调用

1.3.1 直接传入字符串,有取消按钮

loading("the dialog!");

1.3.2 直接传入字符串,无取消按钮

loading("the dialog!").setOnlySure();

1.3.2 自己定义View实现:可以传res与view

loading(R.layout.default_dialog, newDialogView.DialogViewListener() {
@OverridepublicvoidonView(Viewview) {
TextViewdialogContent = view.findViewById(R.id.dialogContent);
CusButtondialogCancel = view.findViewById(R.id.dialogCancel);
CusButtondialogSure = view.findViewById(R.id.dialogSure);
//...
}
});

1.4. 附加Toast实现

1.4.1 字符串
CusToast.fixTxt(getActivity(), "the toast!");
1.4.1 自定义View:res与view
CusToast.fixView(getActivity(), R.layout.toast);

1.4 二维码实现

1.5 通用手势密码实现

1.6 通用滚轮实现

1.7 高级按钮操作等

2.网络模块

3.消息模块

4.事件分发模块

5.安全控制与认证模块

6.数据适配模块

7.升级模块(普通更新,热更新)

7.1 普通同更新~默认:只需要一段代码即可

new UpdateView(this).init().setListener(this);

7.2 普通更新~截取更新核查结果

newUpdateView(this).init(newCallback() {
@OverridepublicvoidonSuccess(NetInfoinfo) throwsIOException {
}
@OverridepublicvoidonFailure(NetInfoinfo) throwsIOException {
}
});

7.3 普通更新~截取更新文件下载请求过程

newUpdateView(this).init().setProgressListener(newProgressCallback(){
@OverridepublicvoidonProgressMain(intpercent, longbytesWritten, longcontentLength, booleandone) {
super.onProgressMain(percent, bytesWritten, contentLength, done);
}
@OverridepublicvoidonResponseMain(StringfilePath, NetInfoinfo) {
super.onResponseMain(filePath, info);
}
});

7.4 普通更新~同时截取更新核查与文件下载:自定义场景与界面展示

newUpdateView(this).init(newCallback() {
@OverridepublicvoidonSuccess(NetInfoinfo) throwsIOException {
}
@OverridepublicvoidonFailure(NetInfoinfo) throwsIOException {
}
}).setProgressListener(newProgressCallback(){
@OverridepublicvoidonProgressMain(intpercent, longbytesWritten, longcontentLength, booleandone) {
super.onProgressMain(percent, bytesWritten, contentLength, done);
}
@OverridepublicvoidonResponseMain(StringfilePath, NetInfoinfo) {
super.onResponseMain(filePath, info);
}
}); 

8.错误日志模块(java,native)

9.HTML5交互模块

10.分享模块

项目集成(非常优雅的集成,最大化灵活控制,只需要几个步骤)

1.在你的项目工程根目录所在的build.gradle中添加:maven { url "https://jitpack.io" }

allprojects {
repositories {
google()
jcenter()
maven { url "https://jitpack.io" }//当前需要添加的
}
}

2.在你项目工程app所在目录下build.gradle中添加:implementation 'com.github.jiangshide:framework:1.0.7'

dependencies {
implementation 'com.github.jiangshide:framework:1.0.7'//当前需要添加的
}

3.拷贝demo中gradle.properties文件覆盖自己项目中的gradle.properties,需要注意:

3.1 如果打release包的话需要替换成自己的密钥文件与相关信息:

KEY_FILE=demo
KEY_ALIAS=jsd
KEY_PASSWORD=jsddemo
STORE_PASSWORD=jsddemo

3.2 网络主机替换:需要替换成自己的IP或域名

 #the net config
PRODUCTION=http://10.20.6.50:8091PREPRODUCTION=http://10.20.6.50:8091TEST=http://10.20.6.50:8091API=/api/zdb/UPDATE=update

3.3 api协议配置,可替换成自己实际协议的名称

 #BaseData protocol
CODE=code
SUCCESS=success
TIME=date
MSG=msg

3.4 可修改网络默认配置

the http params
HTTP_CONNECT_TIME=30HTTP_READ_TIME=30HTTP_WRITE_TIME=30HTTP_MAX_CACHE_SIZE=10*1024*1024
##### the four type:1~FORCE_NETWORK;2~FORCE_CACHE;3~NETWORK_THEN_CACHE;4~CACHE_THEN_NETWORKHTTP_CACHE_TYPE=4HTTP_IS_GZIP=trueHTTP_SHOW_LIFECYCLE_LOG=true

服务宗旨:

一.面向中小企业及个人:

1.提供专业的技术支持

2.可做高度定制化需求

#项目案例:

友情合作:

Image

鼓励与支持:

Image

About

this for android with framework

Topics

Resources

Stars

30 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages