一次Android相册的开发日志记录 Day1

我实在受够啦!!!!
这个市面上就没有简单好用的相册管理软件了么!!!
尝试了我能找到的市面上所有的相册管理软件,没有一个能完全做到我想的样子。
手机自带的相册软件+云同步确实可以在单个或同品牌手机内,完成我想要的需求,但是我手上的设备众多,每次更换设备不一定会使用原品牌,那么这就变得非常的麻烦了。

我的需求实际相对简单:
1.相对可用的UI,比如三星相册,小米相册
2.照片存储在服务器上,本地只缓存缩略图,只有用到的时候展示全图。
3.支持文件夹管理,这个非常关键。并且对应在服务器的文件目录结构要一致。
4.支持隐藏显示部分相册,保护隐私。
5.支持文件夹->远程文件夹的定向同步(单向或双向)

但是同时满足这些点的相册,或多或少都有些问题。

Android打印日志到文件

项目遇到一个问题需要排查,由于是偶现的问题,所以需要打印特定的日志并保存下来,但是并不需要将所有的Log都保存下来,
那么就需要一个小工具来解决这个问题了。

逻辑也很简单,当需要写入日志时,调用函数进行写入即可。简单封装下的代码如下,便于使用。

Android内存泄露的排查

在一次项目开发中,测试提到了一个问题,在详情数据页左右反复滑动多次,页面会越来越卡顿,加载速度也会越来越慢,需要我排查一下问题。
由于这个详情数据页面是一个Fragment,数据量特别大,并且嵌套在ViewPage中可以左右滑动,并且ViewPage的页数可以非常多。那么首先想到的问题是ViewPage + Fragment,Fragment没有被正确回收导致的。
首先来排查下Fragment的生成逻辑:

1
2
3
4
5
6
7
8
@Override
public Fragment getFragment(Fragment fragment, int currentPage) {
DemoFragment fragment = new DemoFragment();
Bundle bundle = new Bundle();
bundle.putInt("page", currentPage);
fragment.setArguments(bundle);
return fragment;
}

记一次生产环境上线的经历

最近写了一个项目,也是两三年没写后端的我再次尝试后端项目,在开发和部署的过程中,都遇到了许多奇奇怪怪的问题,
记录下来,也算是对这段时间惊心动魄经历的一次总结吧。

K8s容器内部时间错误

项目上线后,是使用Docker+K8s进行运维和部署的,但是测试环境是普通ECS主机。测试环境一切正常,
但是在生产环境出现了订单时间出现了错误,起初是认为自己项目时间没有做"UTC+8"处理,或者是mysql连接时
未指定时区。不过这两点检查之后,都没有问题。最后把目光放到了容器里。

Java关于时间操作整理

由于最近的项目中,经常需要对时间进行操作和计算,每次搜索出的计算方式都不一样,为了保证代码的统一性,还是仔细的看一下,java的时间和相关处理类,到底都有什么吧。

Date (java.util.date)

Date类的大部分方法都被标记为Deprecated过时方法。在java1.8之后,增加了新的时间处理类(java.time)。

AndroidStudio生成模板代码

由于我的项目是MVP分层架构的,其实分层架构本身是一个好事,结构清晰,代码的健壮性强,但是每次创建页面都需要生成四五个类,页面一多,就要重复非常多次,这样的效率太低了,那有没有什么办法可以一次性,将样板代码生成好呢?

答案当然是有的,注意过么,每次我们通过AndroidStudio创建一个新Activity的时候,是会生成完整Activity模板代码的,那么我们是否可以自定义这个行为呢?

可以的!方法如下:

首先进入到AndroidStudio软件目录下android-studio\plugins\android\lib\templates\activities\,这里面可以看到很多熟悉的名字,这就是平时使用的模板的存放位置。

在这里可以建立一个模板文件夹,举例为MVPActivity。也可以复制一个模板以此为基础修改。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×