Android开发中的MVP模式概念以及网络请求实现顺序

MVP模式

三层

1.view
2.presenter
3.model

View

1.view职责,继承view接口,实现方法,持有presenter,this传入presenter

Presenter

2.presenter职责,实现databridge接口,接收view实现,处理逻辑,完成后使用view回调,与model交互,this传入model实例

Model

3.model职责,接收databridge实现,做网络请求,调用databridge实例做回调

结构如上图

1`7.view层创建presenter实例,并实现view接口
2.presenter层接收[……]

Read more

React Native Windows平台配置+接入typescript总结

配置

1.根据https://facebook.github.io/react-native/docs/getting-started.html的配置来进行初步设置
2.设置完毕后如果出现各种网络请求错误/拉取错误,使用android studio打开android目录,进行一次拉取
3.完毕之后再运行react-native run-android会遇到500错误,这是由于reactnative的版本错误造成的,按照下面步骤执行命令

接入typescript

1.在项目目录下运行命令行
2.执行以下指令

[crayo[……]

Read more

AndroidStudio报错dl.google.com:443 访问失败解决方案

这个问题分两种情况:

1.网络问题

这是由于访问网络不通畅引起的,需要设置代理解决,这也是最常见的一种,无需赘述

2.gradle中文路径问题

这种情况虽然也报错访问失败,但其实不是网络问题,打开setting,找到gradle选项卡,查看里面的路径是否包含中文,全部改成英文,即可解决,如下图。

Android架构–测试选择

需要用到的测试工具库

1.espresso google官方提供的一个ui测试库
2.mockito 一个可以模拟各种类并进行注入/返回的库
3.junit 测试常用库

View的测试

使用espresso测试,espresso是一个谷歌官方推出的测试库,可以模拟进行各种ui操作,并判断组件状态。
例子

关于espresso的使用详见官方手册,这里只做引出,如果要做进一步测试,可以用mock来模拟一个ViewModel并inject来进行测试。

ViewModel

ViewModel部分与repositor[……]

Read more

Android架构体系–样例解析

接上一篇文章的概念分析的内容,这篇文章主要给出一个实际的mvvm例子来分析。

上一篇文章在这里Android架构体系–结构和组件选择

样例目的

通过mvvm模式和room(google提供的持久化库)来进行user类的显示/添加功能

结构

view:MainActivity(显示user),AddNewUserActivity(添加user)
viewmodel:UserViewModel(负责与model层通信,持有repository实例,并提供获取/插入user的操作)
model:user(实例类),userdao,appdatabase(初始化数据库实例类),userrep[……]

Read more

Android架构体系–结构和组件选择

Android架构的必要性

随着业务的发展,Android以前那种瀑布流式的开发模式的弊端越来越明显,例如
1.无法拆分逻辑和页面
都写在Activity中,无法拆分,非常混乱
2.无法测试等
由于界面和逻辑连在一起,无法写出良好的单元测试
3.过长的Activity代码
由于各种逻辑都在一起,经常会有三四百行的超长文件

Android官方解决方法 

这时候我们就需要对项目进行良好的架构来解决这些问题,Android官方提出MVVM架构模式并推出了诸多工具来实现,与最初不同的是,android官方推出了多个新的工具库来解决实现过程中的问题。

什么是MVVM

将整个项目分为三个层次
V[……]

Read more

几种神经网络的定义/结构/用途

人工神界网络

定义

分为多层的机器学习算法,将上一层的输出作为下一层的输入,直到最后一层输出

结构

用途

用于基本的分类或者预测学习,是一种基础的神经网络机器学习算法

卷积神经网络(CNN)

定义

同样为多层的神经网络,每次使用relu激励函数加上卷积层和池化层进行处理,最后通过全连接层输出

结构

作用

主要用在图像识别,每次卷积/池化都能过滤信息,最终得到判断结果

循环神经网络(RNN)

定义

把神经网络上次的输出作为输入之一再次进行运算的神经网络结构

结构

用途

主要用于有顺序的场景,比如语义和语法等具有连续性的场景学习,但是每次只接收上一次的[……]

Read more

协同过滤推荐算法相关步骤和细节

推荐算法分类

1.基于内容的推荐算法
2.协同过滤推荐算法

基于内容推荐

1.需要知道每个项目的特征,以及详细的特征值,比如一个电影的爱情元素占比,动作成分占比等
2.需要用户事先评价几部电影,得到用户的评分特征向量,比如,对动作电影的偏好程度等
3.把特征和用户偏好相乘,得到预估得分,得到推荐结果集

基于内容算法弊端

需要详细知道每个元素的具体特征和值,这是基本不可能实现的

协同过滤推荐算法

1.随机初始化用户偏好θ和项目特征x
2.直接使用代价函数同时求上述两个随机变量的最优解,梯度下降或者高级算法均可
3.预测过程与内容推荐相同

协同过滤的优点

1.不需要知道x的具体内[……]

Read more

机器学习算法性能的检测和调优方法【方法+代码】

常见的几种方法

1.收集更多样本
2.使用更小规模的方法
3.增加方法的规模
4.使用多项式
5.增加正则化参数λ

如何判断下一步该采用什么方法

引入概念,误差(error),可用下面公式求得

对于线性回归:

对于分类算法:

如何划分我们的样本

按照比例6:2:2划分为三个样本,训练集,验证集,测试集
训练集:找到方法参数theta
验证集:确定方法多项式的度数d
测试集:确定正则化参数λ

通过学习曲线来确定高方差/高偏差

[W6]机器学习应用建议

根据学习曲线来选择要使用哪种优化方法

同上

代码部分

1.error的计算代码

[crayon-5ba11ab1[……]

Read more