Skip to content

Commit

Permalink
优化代码逻辑嵌套
Browse files Browse the repository at this point in the history
适配分区存储特性
加入 ShapeView 框架
加入通配符屏幕适配方案
加入服务器动态化配置脚本
升级第三方框架和 SDK 版本
调整 module 的存放位置
调整项目 build 的输出位置
优化和统一 maven 远程仓库配置
优化 Git 忽略规则配置
优化友盟监听器回调逻辑
优化请求成功及 token 失效写法
删除 IntentKey 类
新增 TabAdapter 类
新增 NavigationAdapter 类
新增 BrowserFragment 类
新增 ImageCropActivity 类
新增 PlayButton 自定义控件
新增 SimpleRatingBar 自定义控件
新增 DrawableTextView 自定义控件
UmengClient 新增 getDeviceOaid 方法
AppAdapter 新增 containsItem 方法
ActivityManager 新增销毁指定的 Activity 的方法
ActivityManager 新增前后台切换回调监听
ActivityManager 新增 getResumedActivity 方法
BaseFragment 新增 getApplication 方法
修复 RecyclerPagerAdapter 逻辑死循环的问题
修复 DateDialog 在 2021 年 4 月出现 31 天问题
修复 StatusLayout  无法嵌套滚动的问题
修复 BasePopupWindow 生命周期不同步的问题
修复 WrapRecyclerView 刷新位置计算不正确的问题
修复 SettingBar 类设置分割线属性导致崩溃的问题
修复 CacheDataManager 缓存计算的 Bug
扩展 ShareDialog 的分享类型
优化 CrashActivity 代码高亮逻辑
优化 BrowserView 上传图片和视频的逻辑
优化 UpdateDialog 更新内容滚动的 Bug
优化 VideoPlayActivity 没有根据视频宽高进行横竖屏调整的问题
优化 BottomSheetDialog 没有状态栏和底部导航栏没有沉浸的问题
  • Loading branch information
getActivity committed Sep 21, 2021
1 parent 2308f89 commit d5c9fda
Show file tree
Hide file tree
Showing 483 changed files with 24,230 additions and 4,969 deletions.
22 changes: 10 additions & 12 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
/.gradle
/.idea
/build
*/build
/captures
/.cxx
*/.cxx
/.externalNativeBuild

._*
*.iml
.DS_Store
.gradle
.idea
.cxx
.externalNativeBuild
build
captures

._*
*.iml
.DS_Store
local.properties
Binary file modified AndroidProject.apk
Binary file not shown.
171 changes: 134 additions & 37 deletions HelpDoc.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

Apache License
Version 2.0, January 2004
Version 2.0, October 2018
http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
Expand Down
276 changes: 142 additions & 134 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,141 +1,149 @@
# 安卓技术中台

* 码云地址:[Gitee](https://gitee.com/getActivity/AndroidProject)

* Kotlin 版本:[AndroidProject-Kotlin](https://github.com/getActivity/AndroidProject-Kotlin)

* 博客地址:[但愿人长久,搬砖不再有](https://www.jianshu.com/p/77dd326f21dc)

* 当我们日复一日年复一年的搬砖的时候,你是否曾想过提升一下开发效率,如果一个通用的架构摆在你的面前,你还会选择自己搭架构么,但是搭建出一个好的架构并非易事,有多少人愿意选择去做,还有多少人选择努力去做好,可能寥寥无几,但是你今天看到的,正是你所想要的,一个真正能解决你开发新项目时最大痛点的架构工程,你不需要再麻木 Copy 原有旧项目的代码,只需改动少量代码就能得到想要的效果,你会发现开发新项目其实是一件很快乐的事。

* AndroidProject 已维护两年多的时间,几乎耗尽我所有的业余时间,里面的代码改了再改,改了又改,不断 Review、不断创新、不断改进、不断测试、不断优化,每天都在重复这些枯燥的步骤,但是只有这样才能把这件事做好,因为我相信把同样一件事重复做,迟早有一天可以做好。

* 已经正式投入到多个公司项目实践中,暂时没有发现任何问题或者 Bug,[点击下载 Apk 体验](AndroidProject.apk),又或者扫码下载

![](picture/demo_code.png)

#### 常用界面

![](picture/activity/1.jpg) ![](picture/activity/2.jpg) ![](picture/activity/3.jpg)

![](picture/activity/4.jpg) ![](picture/activity/5.jpg) ![](picture/activity/6.jpg)

![](picture/activity/7.jpg) ![](picture/activity/8.jpg) ![](picture/activity/9.jpg)

![](picture/activity/10.jpg) ![](picture/activity/11.jpg) ![](picture/activity/12.jpg)

![](picture/activity/13.jpg) ![](picture/activity/14.jpg) ![](picture/activity/15.jpg)

![](picture/activity/16.jpg) ![](picture/activity/17.jpg) ![](picture/activity/18.jpg)

![](picture/activity/19.jpg) ![](picture/activity/20.jpg) ![](picture/activity/21.jpg)

![](picture/activity/22.jpg) ![](picture/activity/23.jpg) ![](picture/activity/24.jpg)

![](picture/activity/25.jpg) ![](picture/activity/26.jpg) ![](picture/activity/27.jpg)

![](picture/activity/28.jpg) ![](picture/activity/29.jpg)

------

![](picture/activity/30.jpg)

![](picture/activity/31.jpg)

![](picture/activity/32.jpg)

![](picture/activity/33.jpg)

![](picture/activity/34.jpg)

![](picture/activity/35.jpg)

![](picture/activity/36.jpg)

![](picture/activity/37.jpg)

#### 常用对话框

![](picture/dialog/1.jpg) ![](picture/dialog/2.jpg) ![](picture/dialog/3.jpg)

![](picture/dialog/4.jpg) ![](picture/dialog/5.jpg) ![](picture/dialog/6.jpg)

![](picture/dialog/7.jpg) ![](picture/dialog/8.jpg) ![](picture/dialog/9.jpg)

![](picture/dialog/10.jpg) ![](picture/dialog/11.jpg) ![](picture/dialog/12.jpg)

![](picture/dialog/13.jpg) ![](picture/dialog/14.jpg) ![](picture/dialog/15.jpg)

![](picture/dialog/16.jpg) ![](picture/dialog/17.jpg) ![](picture/dialog/18.jpg)

#### 动图欣赏

![](picture/gif/1.gif) ![](picture/gif/2.gif) ![](picture/gif/3.gif)

![](picture/gif/4.gif) ![](picture/gif/5.gif) ![](picture/gif/6.gif)

#### 项目亮点

* App 优化:已经进行了全面的内存优化、布局优化、代码优化、瘦身优化,并且对结果进行了严格的长久测试。

* 代码规范:参照 Android SDK 、Support 源码和参考阿里巴巴的代码规范文档对代码进行命名,并对难点代码进行了注释,对重点代码进行了说明。

* 代码统一:对项目中常见的代码进行了封装,或是封装到基类中、或是封装到工具类中、或者封装到框架中,不追求过度封装,根据实际场景和代码维护性考虑,尽量保证同一个功能的代码在项目中不重复。

* 敏捷开发:一个 App 大概率会出现的功能已经写好,对项目的敏捷开发起到了至关重要的作用,可用于新项目开发或者旧项目重构,可将开发周期缩短近一半的时间,并且后续不会因为前期的快速开发而留下成堆的技术遗留问题,万丈高楼平地起,AndroidProject 属于基建工程,而在软件行业我们称之为技术中台。

* 无任何瑕疵:对小屏手机、全面屏手机、带虚拟按键手机进行了适配和优化,确保每一个界面细节都能处理到位、每一个功能细节都能符合大众的需求、乃至每一行代码都能贴合 Android 程序员的审美观。

# 安卓技术中台

* 项目地址:[Github](https://github.com/getActivity/AndroidProject)[码云](https://gitee.com/getActivity/AndroidProject)

* Kotlin 版本:[AndroidProject-Kotlin](https://github.com/getActivity/AndroidProject-Kotlin)

* 博客地址:[但愿人长久,搬砖不再有](https://www.jianshu.com/p/77dd326f21dc)

* 当我们日复一日年复一年的搬砖的时候,你是否曾想过提升一下开发效率,如果一个通用的架构摆在你的面前,你还会选择自己搭架构么,但是搭建出一个好的架构并非易事,有多少人愿意选择去做,还有多少人选择努力去做好,可能寥寥无几,但是你今天看到的,正是你所想要的,一个真正能解决你开发新项目时最大痛点的架构工程,你不需要再麻木 Copy 原有旧项目的代码,只需改动少量代码就能得到想要的效果,你会发现开发新项目其实是一件很快乐的事。

* AndroidProject 已维护三年多的时间,几乎耗尽我所有的业余时间,里面的代码改了再改,改了又改,不断 Review、不断创新、不断改进、不断测试、不断优化,每天都在重复这些枯燥的步骤,但是只有这样才能把这件事做好,因为我相信把同样一件事重复做,迟早有一天可以做好。

* 已经正式投入到多个公司项目实践中,暂时没有发现任何问题或者 Bug,[点击下载 Apk 体验](AndroidProject.apk),又或者扫码下载

![](picture/demo_code.png)

#### 常用界面

![](picture/activity/1.jpg) ![](picture/activity/2.jpg) ![](picture/activity/3.jpg)

![](picture/activity/4.jpg) ![](picture/activity/5.jpg) ![](picture/activity/6.jpg)

![](picture/activity/7.jpg) ![](picture/activity/8.jpg) ![](picture/activity/9.jpg)

![](picture/activity/10.jpg) ![](picture/activity/11.jpg) ![](picture/activity/12.jpg)

![](picture/activity/13.jpg) ![](picture/activity/14.jpg) ![](picture/activity/15.jpg)

![](picture/activity/16.jpg) ![](picture/activity/17.jpg) ![](picture/activity/18.jpg)

![](picture/activity/19.jpg) ![](picture/activity/20.jpg) ![](picture/activity/21.jpg)

![](picture/activity/22.jpg) ![](picture/activity/23.jpg) ![](picture/activity/24.jpg)

![](picture/activity/25.jpg) ![](picture/activity/26.jpg) ![](picture/activity/27.jpg)

------

![](picture/activity/28.jpg)

![](picture/activity/29.jpg)

![](picture/activity/30.jpg)

![](picture/activity/31.jpg)

![](picture/activity/32.jpg)

![](picture/activity/33.jpg)

![](picture/activity/34.jpg)

![](picture/activity/35.jpg)

![](picture/activity/36.jpg)

#### 常用对话框

![](picture/dialog/1.jpg) ![](picture/dialog/2.jpg) ![](picture/dialog/3.jpg)

![](picture/dialog/4.jpg) ![](picture/dialog/5.jpg) ![](picture/dialog/6.jpg)

![](picture/dialog/7.jpg) ![](picture/dialog/8.jpg) ![](picture/dialog/9.jpg)

![](picture/dialog/10.jpg) ![](picture/dialog/11.jpg) ![](picture/dialog/12.jpg)

![](picture/dialog/13.jpg) ![](picture/dialog/14.jpg) ![](picture/dialog/15.jpg)

![](picture/dialog/16.jpg) ![](picture/dialog/17.jpg) ![](picture/dialog/18.jpg)

#### 动图欣赏

![](picture/gif/1.gif) ![](picture/gif/2.gif) ![](picture/gif/3.gif)

![](picture/gif/4.gif) ![](picture/gif/5.gif) ![](picture/gif/6.gif)

![](picture/gif/7.gif) ![](picture/gif/8.gif) ![](picture/gif/9.gif)

![](picture/gif/10.gif) ![](picture/gif/11.gif) ![](picture/gif/12.gif)

#### 项目亮点

* App 优化:已经进行了全面的内存优化、布局优化、代码优化、瘦身优化,并且对结果进行了严格的长久测试。

* 代码规范:参照 Android SDK 、Support 源码和参考阿里巴巴的代码规范文档对代码进行命名,并对难点代码进行了注释,对重点代码进行了说明。

* 代码统一:对项目中常见的代码进行了封装,或是封装到基类中、或是封装到工具类中、或者封装到框架中,不追求过度封装,根据实际场景和代码维护性考虑,尽量保证同一个功能的代码在项目中不重复。

* 敏捷开发:一个 App 大概率会出现的功能已经写好,对项目的敏捷开发起到了至关重要的作用,可用于新项目开发或者旧项目重构,可将开发周期缩短近一半的时间,并且后续不会因为前期的快速开发而留下成堆的技术遗留问题,万丈高楼平地起,AndroidProject 属于基建工程,而在软件行业我们称之为技术中台。

* 无任何瑕疵:对小屏手机、全面屏手机、带虚拟按键手机进行了适配和优化,确保每一个界面细节都能处理到位、每一个功能细节都能符合大众的需求、乃至每一行代码都能贴合 Android 程序员的审美观。

* 兼容性优良:在此感谢开源道路上给予我支持和帮助的小伙伴,一个人一台机在兼容性面前无能为力,而在几百人几百台机面前却不是问题。如果没有这些的测试,有些问题我一个人可能这辈子都发现不了,纵使代码写得再好,逻辑再严谨,没有经过大众的验证,无异于纸上谈兵。

#### [代码规范文档请点击这里查看](https://github.com/getActivity/AndroidCodeStandard)

#### [常见问题解答请点击这里查看](HelpDoc.md)

#### 作者的其他开源项目

* 网络框架:[EasyHttp](https://github.com/getActivity/EasyHttp) (已集成)

* 权限框架:[XXPermissions](https://github.com/getActivity/XXPermissions) (已集成)

* 吐司框架:[ToastUtils](https://github.com/getActivity/ToastUtils) (已集成)

* 标题栏框架:[TitleBar](https://github.com/getActivity/TitleBar) (已集成)

* Gson 解析容错:[GsonFactory](https://github.com/getActivity/GsonFactory) (已集成)

* 悬浮窗框架:[XToast](https://github.com/getActivity/XToast) (未集成)

* 国际化框架:[MultiLanguages](https://github.com/getActivity/MultiLanguages) (未集成)

* 日志查看框架:[Logcat](https://github.com/getActivity/Logcat) (未集成)

* 优秀的代码设计:AndroidProject 对 startActivityForResult 的设计进行了改良,使得可以直接在方法上传入监听对象,这样我们就不需要重写 onActivityResult 方法来拿到回调,另外原生的 startActivityForResult 还需要传 requestCode 参数,而 AndroidProject 会自动帮你生成这个 requestCode 码,并在 onActivityResult 进行判断,如果满足条件,那么就会回调外层传入的监听对象。然而这只是冰山一角,更多优秀的代码设计还需要你通过阅读 AndroidProject 源码的形式来发掘,在这里不再细说。

#### [代码规范文档请点击这里查看](https://github.com/getActivity/AndroidCodeStandard)

#### [常见问题解答请点击这里查看](HelpDoc.md)

#### 作者的其他开源项目

* 网络框架:[EasyHttp](https://github.com/getActivity/EasyHttp) (已集成)

* 权限框架:[XXPermissions](https://github.com/getActivity/XXPermissions) (已集成)

* 吐司框架:[ToastUtils](https://github.com/getActivity/ToastUtils) (已集成)

* 标题栏框架:[TitleBar](https://github.com/getActivity/TitleBar) (已集成)

* Gson 解析容错:[GsonFactory](https://github.com/getActivity/GsonFactory) (已集成)

* Shape 框架:[ShapeView](https://github.com/getActivity/ShapeView) (已集成)

* 悬浮窗框架:[XToast](https://github.com/getActivity/XToast) (未集成)

* 国际化框架:[MultiLanguages](https://github.com/getActivity/MultiLanguages) (未集成)

* 日志查看框架:[Logcat](https://github.com/getActivity/Logcat) (未集成)

#### 微信公众号:Android轮子哥

![](https://raw.githubusercontent.com/getActivity/Donate/master/picture/official_ccount.png)

#### Android 技术分享 QQ 群:78797078

#### 如果您觉得我的开源库帮你节省了大量的开发时间,请扫描下方的二维码随意打赏,要是能打赏个 10.24 :monkey_face:就太:thumbsup:了。您的支持将鼓励我继续创作:octocat:

![](https://raw.githubusercontent.com/getActivity/Donate/master/picture/pay_ali.png) ![](https://raw.githubusercontent.com/getActivity/Donate/master/picture/pay_wechat.png)

#### [点击查看捐赠列表](https://github.com/getActivity/Donate)

## License

```text
Copyright 2018 Huang JinQun
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
#### Android 技术分享 QQ 群:78797078

#### 如果您觉得我的开源库帮你节省了大量的开发时间,请扫描下方的二维码随意打赏,要是能打赏个 10.24 :monkey_face:就太:thumbsup:了。您的支持将鼓励我继续创作:octocat:

![](https://raw.githubusercontent.com/getActivity/Donate/master/picture/pay_ali.png) ![](https://raw.githubusercontent.com/getActivity/Donate/master/picture/pay_wechat.png)

#### [点击查看捐赠列表](https://github.com/getActivity/Donate)

## License

```text
Copyright 2018 Huang JinQun
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
```
Loading

0 comments on commit d5c9fda

Please sign in to comment.