记录第一次开发android的学习心得


前言

刚毕业参加工作的新手小白,自学前端,实习三个月,做过一个Vue项目,结果工作要求学习安卓开发,无奈从零开始。本文仅仅只是记录自己的学习过程,大佬勿喷!


一、自定义View

老板为了给我们增加难度,要求我们用自定义view组件化开发的模式进行开发。方法如下:

1、编写自定义view的样式

在这里插入图片描述
随便写了一个样式。

2、在activity对应的页面引用

在这里插入图片描述

3、编写自定义view java文件

在这里插入图片描述
自定义view的java文件,需要继承layout样式里最外层的控件,本文是RelativeLayout。需要有一个创建实例化的对象,实现activity页面的调用,activity调用是俩个参数的TogglePositionView(Context context, AttributeSet attrs)。

自定义view里可以创建本样式所需的一些方法,方便activity去直接调用。

二、mvp框架

MVP算是android开发中常用的基础框架了,m便是数据层例如model、bean等。v是样式层,也就是样式对应的activity文件。p也就是presenter,也就是数据处理层,网络请求要在这里面发起。
在这里插入图片描述

1.contract

contract相当于是一个桥梁,连通了activity与presenter。如下是一个contract代码:
在这里插入图片描述
在contract里定义的方法。

2、activity里继承

在这里插入图片描述
在activity引用它。就会自动生成contract里对应的方法。

3、presenter里引用

在这里插入图片描述
在basePresent或者直接在内部实例化contract,俩种方法都可以实现。

通过这种方式,presenter就可以直接调用到activity里的方法,实现数据的交互。activity调用presenter可以直接实例化对象,进行调用。

三、retrofit2网络请求框架

1、封装网络发起请求设置

在这里插入图片描述
在这里插入图片描述
RetrofitClient主要对网络请求进行配置,例如请求头,请求时长、重连等。RetrofitConst存放的是网络请求的端口。

2、APIService

在这里插入图片描述
apiservice采用注解描述和配置网络请求参数,用动态代理将该接口的注解“翻译”成一个Http请求,最后执行Http请求。设置了发起请求的bean类与响应返回接收的bean类。

3、presenter里发起请求

在这里插入图片描述
注意发起请求的bean类一定要与apiService的bean类相同,接受的bean也是一样。当请求成功时会走onsuccess,请求失败或bean解析错误都会走onerror,请求结束时都会走onfinish。请求到数据后,可以用contract调用activity方法,传递数据。

四、后端数据返回数据不同的bean类接收解决方案

因为后端偷懒,所以直接把web端的接口给了我们(顺便想说,还是前端容易啊,没有bean类的日子太好过了),传递过来的数据的层级与key值都是不一样,这种难度,直接交给我一个小白来做,我好难。最后想到了一个简单的实现方式,就是把几个表单的数据都在bean类里定义,通过判断里面某一个区分的数据,进行不同的页面赋值,但是这种方式,缺点很多,以后如果新加表单,项目还需大改。而且四张表单的数据,我一个一个的核对,差点要了我的命啊。

五、360插件化框架

因为我们所负责的只是整个项目里的一部分。根据学习,发现这种插件化开发的实现方式是基于360插件化框架,具体使用请参考这个链接:https://blog.csdn.net/AlpinistWang/article/details/86773020

总结

在开发过程中,要记得注意代码的规范,否则,最后还要返回来改自己屎一样的代码,真的是头疼。本文只是记录了自己目前开发中大方向的难点问题,还有很多技术难点例如nfc、拍照、ocr等,等后续再记录吧。

经过这个项目,我大概算是入门了吧,未来需要掌握和学习的还有很多很多。之后我会继续记录自己的学习心得,记录自己的成长。唉,打工人好难,我还是念念不忘我的前端。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值