# Android项目基础框架 **Repository Path**: gengyanfei/project_framework ## Basic Information - **Project Name**: Android项目基础框架 - **Description**: 自己整理的Android项目基础框架,旨在快速搭建Android原生项目。 - **Primary Language**: Android - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2021-04-01 - **Last Updated**: 2021-04-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 项目框架 #### 项目介绍 自己用的Android基础框架,旨在快速搭建项目,快速开发。欢迎关注我的公众号:JairusTse的日常 #### 软件架构 使用到的框架包括:MVP、Retrofit2.0、ButterKnife、glide、PhotoPicker、RxAndroid、RxBinding、RxBus、Gson、SwipeRefreshLayout、LitePal、logger、RxPermissions #### 快速搭建新项目 - 创建新项目 - 把 Module 的`build.gradle`文件内容复制到新项目并同步 - 把 Project 的`build.gradle`文件内容复制到新项目并同步 - 在 `gradle.properties` 加上: ``` android.useAndroidX=true android.enableJetifier=true ``` - 把`assets`目录拷贝到`app/src/main`目录下: ![输入图片说明](https://images.gitee.com/uploads/images/2019/0716/160659_6f825b65_1159756.png "屏幕截图.png") - 把`com.baseproject`目录下的全部拷贝到新项目的根目录下: ![输入图片说明](https://images.gitee.com/uploads/images/2019/0716/160905_11cd08a2_1159756.png "屏幕截图.png") - 把`res`下的这几个目录&文件拷贝到新项目对应的目录下: ![输入图片说明](https://images.gitee.com/uploads/images/2019/0716/161149_0a2811ec_1159756.png "屏幕截图.png") - 把`AndroidManifest.xml`文件内容复制到新项目,更新appid,如友盟等,修改编译错误 #### 如何使用 - 打印Log(`utils/LogUtil - 基于Logger`) ``` LogUtil.d(object); LogUtil.i("日志内容"); LogUtil.json(json); LogUtil.xml(xml); ``` - Activity跳转(`utils/RouteUtil`) ``` RouteUtil.go2Activity(TwoActivity.this, ThreeActivity.class); ``` - Toast(`使用blankj.utilcode的ToastUtils`) ``` ToastUtils.showShort("没有更多了"); ``` - 请求授权(`utils/PermissionUtil - 基于RxPermissions`) ``` /**请求用户授权相册和访问存储**/ PermissionUtil.requestEach(getActivity(), new PermissionUtil.OnPermissionListener() { @Override public void onSucceed() { //授权成功 } @Override public void onFailed(boolean showAgain) { } }, PermissionUtil.STORAGE, PermissionUtil.CAMERA); ``` - 相册选择图片(`基于Matisse`) ``` /**请求用户授权相册和访问存储**/ PermissionUtil.requestEach(getActivity(), new PermissionUtil.OnPermissionListener() { @Override public void onSucceed() { //授权成功,打开相册 Matisse.from(HomePageFragment.this) .choose(MimeType.ofImage()) .countable(true) .capture(true) .captureStrategy(new CaptureStrategy(true, BuildConfig .APPLICATION_ID + "" + ".fileprovider")) .maxSelectable(9) .restrictOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED) .thumbnailScale(0.85f) .imageEngine(new Glide4Engine()) .forResult(REQUEST_CODE_CHOOSE); } @Override public void onFailed(boolean showAgain) { } }, PermissionUtil.STORAGE, PermissionUtil.CAMERA); ``` - 正则表达式判断手机号、邮箱、身份证,隐藏手机号(`utils/StringUtil - 基于blankj.utilcode的RegexUtils`) ``` StringUtil.isMobile(mobile); StringUtil.isEmail(email); StringUtil.isIDCard(idCard); StringUtil.hideMobile(mobile); ```