您好,欢迎您来到林间号!
官网首页 小额贷款 购车贷款 购房贷款 抵押贷款 贷款平台 贷款知识 手机租机

林间号 > 贷款知识 > 公积金贷款app哪个好(借款app哪个好)

公积金贷款app哪个好(借款app哪个好)

“贵阳公积金”APP即将上线,下面是贵阳公积金给大家的分享,一起来看看。

公积金贷款app哪个好

为进一步提升我市住房公积金信息化服务水平,满足缴存职工多元化服务需求,贵阳市住房公积金管理中心于5月1日正式启用“贵阳公积金”APP安卓版,让您足不出户,享受大厅服务。

01.“贵阳公积金”APP下载及安装

(一)微信扫描识别下方二维码,下载并安装“贵阳公积金”APP;

(二)APP采用人脸识别免密登录。首次登录需采取输入姓名+身份证号码+人脸识别(或密码方式)。再次登录可自行选择手势方式、人脸识别方式或密码方式。

注意:1.目前仅支持安卓和鸿蒙系统下载,苹果ios系统目前正在开发中。

2.“贵阳公积金”APP登录密码与中心个人网厅、微信公众号登录密码通用

02.“贵阳公积金”APP主要功能

(一)业务办理

可办理以下服务事项:

1、商贷提取;

2、购房提取:

购买商品房提取、购买二手房提取、大修自住住房提取、购拆迁安置房提取、职工翻建自住住房提取、职工建造自住住房提取、集资建房或购房改房提取、补交土地出让金提取、补交土地收益金提取、城镇老旧小区改造提取;

3、租房提取:

租住商品房提取、租住公租房提取;

4、退休提取:

正常退休提取、提前退休提取;

5、离职提取;

6、委托代办授权;

7、提前偿还住房公积金贷款;

8、出具异地贷款缴存证明;

9、出具住房公积金贷款结清证明。

(二)账户查询

主要提供:个人账户信息查询、公积金收支明细查询、公积金贷款信息查询等。

(三)便民服务

主要提供:政策法规、办事指南、网点查询、在线客服等。

借款app哪个好

背景

借款App一直比较关注启动流程的高效与稳定,启动流程承载的不止是用户体验的第一场景,更是一款产品技术形象的初始印象。

传统的App启动流程主要经过应用创建,闪屏页倒计时,然后再进入主页(如下图A方案)。借款App最早也是这么做的,启动应用后会先进入一个广告闪屏页,然后再跳转至借款主页。但是闪屏页跳转至主页的时候有割裂感,有时主页尚未渲染完成,用户体验不太好。

我们希望倒计时结束进入主页的时候,页面给用户一种迸发而出的感觉,提升用户体验。


问题

解决这个问题有一个简单的思路:把闪屏Activity与主Activity合并,闪屏页作为Fragment挂载到主页,利用广告倒计时的时间去加载主页,当倒计时结束,主页Fragment已经请求好数据并渲染完成,给用户一种更好的视觉体验。

但是闪屏类PPDSplashActivity仍然不能去除,除了一些业务逻辑之外,更重要的是PPDSplashActivity一旦去掉会引起Activity栈异常,而且还会引起多实例的bug。

所以相当长的一段时间PPDSplashActivity是以一个透明Activity的方式存在(如下图B方案),App启动后先打开PPDSplashActivity后立马finish掉自己,再跳转至主页。


启动速度是指从创建applicaiton开始,一直到首个Activity第一个可视画面展现出来。

但是上述B方案中的PPDSplashActivity是透明的并无画面展示,所以启动速度的统计就变成了PPDHomeActivity 首个画面展示出来。可想而知这个方案的启动速度并不快,体验差强人意。

在启动流程多执行一次Activity的创建与销毁工作,对整个启动流程来说也是一种拖累,我们希望可以去除闪屏页直接启动主页(如下图C方案)。

本文主要介绍下,最终是如何啃下这块硬骨头,去除掉这个多余的PPDSplashActivity,优化启动流程的。


方案第一步:平移业务逻辑

PPDSplashActivity虽然已经没有视图显示了,但是它还承担了隐私协议,权限相关业务逻辑。

这些逻辑需要平移至PPDHomeActivity。push,deeplink数据不再通过PPDSplashActivity透传,打开主页时直接从intent获取。

这样PPDSplashActivity被彻底掏空,为去除做好准备工作。测试通过再进行下面的工作。

第二步:解决Activity栈异常问题

将 PPDSplashActivity删除以后,我们的 launcher Activity 变成了 PPDHomeActivity,如果继续使用 singletask 这个 launchMode,当我们App从主页打开二级页面,然后点击 home键出去,再次点击手机桌面icon进入App时,我们将无法回到刚才打开的二级页面,而会回到主页,因为singletask具有清栈功能,因此合并后 PPDHomeActivity 的 launch mode 将不再能够使用 singletask。

经过调研,我们最终选择了使用 singletop 作为主页Activity的 launchMode。但用singletop模式又会引起多实例的问题,即有可能会打开两个首页。

第三步:解决多实例问题

应用内部跳转引起打开多个主页的问题,可以在启动 PPDHomeActivity 的 Intent 增加 FLAG_ACTIVITY_NEW_TASK 与 FLAG_ACTIVITY_CLEAR_TOP 的 flag,以实现类似于 singletask 的 clear top 的特性。

这个比较好解决。但是应用外引起的多实例,比如我现在已经打开了App,通过push短链唤起App时又打开了一个,缺少了PPDSplashActivty做屏障,这种外部多实例问题真的很棘手。

要避免同时出现多个 PPDHomeActivity 对象,我们首先需要知道当前是否已经存在 PPDHomeActivity 对象,解决这个问题的思路比较简单,我们可以去监听 PPDHomeActivity 的生命周期,在 PPDHomeActivity 的 onCreate 和 onDestroy 中分别去增加减少 PPDHomeActivity 的实例数。如果 PPDHomeActivity 实例数为 0 则认为当前不存在 PPDHomeActivity 对象。

解决了 PPDHomeActivity 对象数统计的问题,接下来我们就需要让 PPDHomeActivity 同时存在的对象数永远保持在 1 个以下。

要解决这个问题我们需要回顾一下 Activity 的启动流程,启动一个 Activity 首先会经过 AMS,AMS 会再调用到 Activity 所在的进程,在 Activity 所在的进程会经过主线程的 Handler post 到主线程,然后通过 Instrumentation 去创建 Activity 对象,以及执行后续的生命周期。对于外部启动 PPDHomeActivity ,我们能够控制的是从 AMS 回到进程之后的部分,这里可以选择以 Instrumentation 的 newActivity 作为入口。

1:反射获取 ActivityThread 中 Instrumentaion 对象,并以其为参数创建一个自定义的 Instrumentaion 对象,通过反射方式用自定义的 Instrumentaion 对象替换 ActivityThread 原有的 Instrumentaion;

public class PPDHomeHooker {private static final String TAG = "Hooker";public static void hookInstrumentation() {    Class<?> activityThread = null;    try {        activityThread = Class.forName("android.app.ActivityThread");        Method sCurrentActivityThread = activityThread.getDeclaredMethod("currentActivityThread");        sCurrentActivityThread.setAccessible(true);        //获取ActivityThread 对象        Object activityThreadObject = sCurrentActivityThread.invoke(activityThread);        //获取 Instrumentation 对象        Field mInstrumentation = activityThread.getDeclaredField("mInstrumentation");        mInstrumentation.setAccessible(true);        PPDInstrumentation customInstrumentation = new PPDInstrumentation();        //将我们的 customInstrumentation 设置进去        mInstrumentation.set(activityThreadObject, customInstrumentation);    } catch (Exception e) {        e.printStackTrace();        }    }}

2:继承 Instrumentation 实现一个自定义的 Instrumentaion 类,以代理转发方式重写里面的所有方法;

public class PPDInstrumentation extends Instrumentation {public PPDInstrumentation() {}@Overridepublic Activity newActivity(ClassLoader cl, String className, Intent intent) throws InstantiationException, IllegalAccessException, ClassNotFoundException {    if (className.equals(PPDHomeActivity.class.getName()) && PPDaiApplication.homeActivityCount > 0) {        return super.newActivity(cl, PPDSplashActivity.class.getName(), intent);    }    return super.newActivity(cl, className, intent);    }}

3:在自定义 Instrumentaion 类的 newActivity 方法中,进行判断当前待创建的 Activity 是否为 PPDHomeActivity,如果不是 PPDHomeActivity 或者当前不存在 PPDHomeActivity 对象,则调用原有实现,否则替换其 className 参数将其指向一个空的 Activity,以创建一个空的 Activity;

在这个空的 Activity 的 onCreate 中 finish 掉自己,同时通过一个添加了 FLAG_ACTIVITY_NEW_TASK 和 FLAG_ACTIVITY_CLEAR_TOP flag 的 Intent 去启动一下 PPDHomeActivity。

通过外链启动App的整体流程改造如下:

public class PPDEmptyActivity extends AppCompatActivity {    @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        finish();    }}

至此,通过层层关卡后,终于啃下这块硬骨头,闪屏Activity被彻底删除,启动流程变的更简洁也更合理。该方案上线以后启动速度从1.5s降低至1s左右,实现了App秒开,慢启动占比也有显著下降,得益于启动流程的整体优化,App的卡顿率也从0.71%也降低至0.35%。

作者介绍

Star,移动研发专家

来源:微信公众号:拍码场

出处:https://mp.weixin.qq.com/s/Jukr2eAQ9qFZSMwGgEF5fQ

温馨提示:注:内容来源均采集于互联网,不要轻信任何,后果自负,本站不承担任何责任。若本站收录的信息无意侵犯了贵司版权,请给我们来信,我们会及时处理和回复。

原文地址"公积金贷款app哪个好(借款app哪个好)":http://www.ljycsb.cn/dkzs/101614.html

微信扫描二维码投放广告
▲长按图片识别二维码