Android开发框架Collection,Android社招面经分享

UniApp安卓原生插件开发指南与实战技巧 原生插件开发是跨平台框架中解决性能瓶颈和功能扩展的关键技术。通过原生代码与JavaScript的桥接,开发者可以突破Web容器的限制,直接调用平台特有API。这种技术特别适用于需要高性能计算或硬件交互的场景,如蓝牙通信、传感器数据采集等。UniApp作为基于Vue.js的跨平台解决方案,其原生插件机制支持Module和Component两种模式,分别对应功能扩展和原生UI嵌入。在实际开发中,合理处理线程通信、内存管理以及性能优化是保证插件质量的重点。本指南详细介绍了从环境搭建到插件发布的完整流程,并提供了蓝 阅读详情

前言

其实一开始我考虑的是阿里的,因为那里有认识的人,希望通过内推可以顺利进入大厂,但是却被面试官一连串问题,完虐!这时候秋招已经过半,后来在牛客上看了很多牛友面经,也加了很多交流群,受到了很多朋友的提点,今天终于轮到我还愿啦,拿到了北京教育业务客户端的 offer,总结一下自己的面经和复习历程,顺便谈谈我的一些感受,给各位牛友提供一些参考。

先说一下我的情况吧,现在就读杭州电子科技大学,本科山东农业大学,本硕都是计算机。老区山东临沂人,平常喜欢拍照、旅游、看电影和基友一起打游戏。

break;
case MultiItem.TYPE_IMG:
baseViewHolder.setImageResource(R.id.ivImg, multiItem.getRes());
break;
case MultiItem.TYPE_TEXT_IMG:
baseViewHolder.setImageResource(R.id.ivImg, multiItem.getRes());
baseViewHolder.setText(R.id.titleTv, multiItem.getTitle());
break;

}

}

4.添加拖拽、滑动删除

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WOobZZmq-1649914548331)(https://user-gold-cdn.xitu.io/2020/2/29/1708f5daef719975?imageslim)]

局限:只针对RecyclerView,对本框架封装的PullToRefreshRecyclerView会出现混乱。
①BaseRecyclerViewAdapter和BaseRecyclerViewMultiItemAdapter都已经封装支持拖拽、滑动,适配器只需要根据需求继承其中一个即可。
②框架提供了一个BaseRecycleItemTouchHelper,对于普通的左右滑动删除、拖拽已经实现,如果想自定义可以继承BaseRecycleItemTouchHelper类,再重写相对应的方法进行实现。
④在Activity/Fragment中需要实现以下代码:

ItemTouchHelper.Callback callback=new BaseRecycleItemTouchHelper(dragAndDeleteAdapter);
ItemTouchHelper itemTouchHelper=new ItemTouchHelper(callback);
itemTouchHelper.attachToRecyclerView(mRecyclerView);

⑤BaseRecyclerViewAdapter.OnDragAndDeleteListener进行操作动作完成之后的回调。

@Override
public void onMoveComplete() {
ToastUtils.showToast(this, “移动操作完成”);
}

@Override
public void onDeleteComplete() {
ToastUtils.showToast(this, “删除操作完成”);
}

四、MVP+RxJava+Retrofit的封装使用

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YLqiaVKc-1649914548332)(https://user-gold-cdn.xitu.io/2020/2/29/1708f5db05d9cbb8?imageslim)]

1.在使用Retrofit请求网络之前需要进行配置,在框架中提供了了Config配置类
属性 作用
DEBUG 是否为BuildConfig.DEBUG,日志输出需要
CONTEXT 设置Context,必填项
URL_DOMAIN 网络请求的域名,需要以“/”结尾
URL_CACHE 网络缓存地址,需要设置缓存才可以成功
MAX_CACHE_SECONDS 设置OkHttp的缓存机制的最大缓存时间,默认为一天
MAX_MEMORY_SIZE 缓存最大的内存,默认为10M
MClASS 设置网络请求json通用解析类
EXPOSEPARAM Json数据某些字段在没有数据是会不返回来,可通过这个属性设置过滤
USER_CONFIG SharePreference保存的名称
CONNECT_TIMEOUT_SECONDS 请求接口超时设定
READ_TIMEOUT_SECONDS 请求接口超时设定
HEADERS 设置Http全局请求头
SQLITE_DB_NAME 数据库名称
SQLITE_DB_VERSION 数据库版本名
在项目中需要根据项目需要进行配置,在Application中设置

private void config(){
//基本配置
Config.DEBUG= BuildConfig.DEBUG;
Config.CONTEXT=this;
//Retrofit配置
Config.URL_CACHE=AppConfig.URL_CACHE;
Config.MClASS= Result.class;
Config.URL_DOMAIN=“https://api.apiopen.top/”;
//SharePreference配置
Config.USER_CONFIG=“Collection_User”;
Config.SQLITE_DB_VERSION=0;
}

根据项目需要定义一个通用的数据实体类,这是本例通用实体类,这个类需要设置到Applicatin中

public class Result implements Serializable {

private int code;
private String msg;
private T newslist;

public int getCode() {
return code;
}

public void setCode(int code) {
this.code = code;
}

public String getMsg() {
return msg;
}

public void setMsg(String msg) {
this.msg = msg;
}

public T getNewslist() {
return newslist;
}

public void setNewslist(T newslist) {
this.newslist = newslist;
}
}

注意:由于每个项目返回来的json数据格式有所不同,如果Result中代表的字段例如newslist没有内容返回来的时候这个字段需要后台控制不返回,如果不做处理会报解析错误,可以通过设置Config.EXPOSEPARAM属性过滤字段。
2.RxJava+Retrofit+OkHttp

(1)RequestBuilder的设置(网络请求的配置)

属性 作用
ReqType 数据处理的方式,默认DEFAULT_CACHE_LIST,使用到OkHttp缓存的需要需要设置Config.URL_CACHE
NO_CACHE_MODEL 不设置缓存,返回model
NO_CACHE_LIST 不设置缓存,返回list
DEFAULT_CACHE_MODEL 使用Okttp默认缓存,返回model
DEFAULT_CACHE_LIST 使用Okttp默认缓存,返回list
DISK_CACHE_LIST_LIMIT_TIME 限时使用自定义磁盘缓存,返回List
DISK_CACHE_MODEL_LIMIT_TIME 限时使用自定义磁盘缓存,返回model
DISK_CACHE_NO_NETWORK_LIST 自定义磁盘缓存,没有网络返回磁盘缓存,返回List
DISK_CACHE_NO_NETWORK_MODEL 自定义磁盘缓存,没有网络返回磁盘缓存,返回Model
DOWNLOAD_FILE_MODEL 文件下载模式,返回Model
HttpType 网络请求方式,默认DEFAULT_GET
DEFAULT_GET GET请求
DEFAULT_POST POST请求
FIELDMAP_POST 如果请求URL出现中文乱码,可选择这个
JSON_PARAM_POST json格式请求参数
ONE_MULTIPART_POST 上传一张图片
MULTIPLE_MULTIPART_POST 上传多张图片
DOWNLOAD_FILE_GET 下载文件
ReqMode 请求模式,默认ASYNCHRONOUS
ASYNCHRONOUS 异步请求
SYNCHRONIZATION 同步请求
其它参数
setTransformClass 设置请求转化Class
setUrl 设置请求url,如果不设置完全连接则会使用Config.URL_DOMIN进行拼接
setFilePathAndFileName 设置自定义缓存时的路径和文件名
setLimtHours 设置自定义缓存的有效时间
setH
Android:Java集合面试题集锦 前言 很多人面试之前,可能没有在互联网公司工作过或者说工作过但年头较短,不知道互联网公司技术面试都会问哪些问题? 再加上可能自己准备也不充分,去面试没几个回合就被面试官几个问题打蒙了,最后以惨败收场。 下述是我收录整理的Android面试题汇总,由于篇幅原因,在这只把Java集合的题目列举出来,后续还会更新其余面试题内容,大家可以关注一下我,及时知晓我更新的知识点,同时这份面试集锦的整理也花费了我... 阅读详情

相关推荐

储能逆变器动态无功补偿:从原理到算法实现

本文深入解析了储能逆变器动态无功补偿的核心原理与算法实现。通过四象限运行与解耦控制技术,储能逆变器可在充放电的同时,快速、精准地调节无功功率,有效提升电网电能质量与功率因数。文章详细阐述了从相位调节、容量限制到PI控制算法的完整技术路径,并结合工程实践,探讨了其在光伏/储能系统中的协同控制策略与进阶应用价值。

weixin_29216353的博客 208

法律AI工具横评:Kimi Work与WorkBuddy,谁更适合法律人?

在人工智能技术日益普及的今天,自然语言处理(NLP)和大语言模型(LLM)正深刻改变着专业领域的工作范式。其核心原理在于通过海量数据训练,使模型能够理解、生成和推理人类语言。这一技术价值在于将从业者从繁琐、重复的信息处理工作中解放出来,极大提升工作效率与知识获取的便捷性。在法律、金融、咨询等对文本处理要求极高的行业,AI助手已展现出在文档分析、信息检索和内容生成方面的巨大潜力。具体到法律应用场景,AI工具能够辅助完成合同审查、法律检索和文书起草等核心任务,成为专业人士的得力助手。本文聚焦于近期备受关注的两款

weixin_30279671的博客 563

SAP MM委外加工保姆级教程:从BOM配置到MIGO发货的完整避坑指南

本文提供SAP MM模块中委外加工的完整操作指南,涵盖从BOM配置到MIGO发货的全流程。详细解析委外采购和工序委外两种模式,包括主数据配置、采购订单创建及物料移动等关键步骤,帮助用户规避常见错误,提升供应链管理效率。特别适合制造业企业实施SAP外包业务参考。

weixin_26905487的博客 529

STM32F103 实例应用(10)——I2C读写24C32

一、应用简介 本文介绍24C32的读写,基于野火的软件I2C程序。 board_i2c.h /**=========================================================================== @file board_i2c.h @brief 本文件是用于I2C驱动 @author 青梅煮久 @version r0.1 @date 2021/01/13 -------------------------.

qq_34118600的博客 3447

高德地图爬虫

高德地图爬虫 工具:Pycharm,win10,Python3.6.4 1.需求分析 这篇爬虫和上一篇百度地图爬虫要求一样,百度地图爬虫我发现有一个auth参数会一直变化,一旦变化则获取的数据是不准确的,所以我上高德地图看了一下,高德地图没有这个反爬机制。但是高德地图大概爬取120个页面就会跳一次验证码,我这里是通过换IP解决这个问题的。 2.数据准备 同样我们需要全国地级市信息,用之前...

123的博客 1万+

注意力机制篇 | YOLOv8改进之在C2f模块添加EMA注意力机制(附2种改进方法)

EMA(Exponential Moving Average)注意力机制是一种用于增强模型性能的注意力机制,它通过对模型的特征图进行加权平均来提取更有用的特征信息。具体来说,EMA注意力机制通过引入一个权重因子来调整特征图中每个位置的重要性,从而使模型能够更好地关注重要的特征。🌈

小哥谈 4180

LVGL 丝滑菜单3(Silk Menu)

h。

摸鱼专家 92

BPC坏点矫正

whatis the Bad Pixel? 坏点为死点,也就是基本不随照度变化呈现光电线性转换的关系。表现为暗态常亮,亮态常暗。 坏点分类:静态坏点:亮坏点,暗坏点。 动态坏点:在一定像素范围内,该点表现正常,而超过这一范围,该点表现的比周围像素要亮。与sensor ...

camerall 1万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

上一篇: Android----Matrix-与坐标变换,最新Android开发进阶
下一篇: Android强行进阶—按键事件&焦点事件攻略,android开发零基础教学
普通网友
博客等级 码龄5年 4697粉丝 610原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值