首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android面试题含答案「建议收藏」

那么如何利用系统的漏洞呢,大致的实现思路和代码如下: 思路一:API < 18,启动前台Service时直接传入new Notification(); 思路二:API >= 18,同时启动两个id相同的前台...当应用创建的时候,就会在主线程中创建handler对象 我们通过要传送的消息保存到Message中,handler通过调用sendMessage方法Message发送到MessageQueue中,Looper...OKhttp:Android开发中是可以直接使用现成的api进行网络请求的。就是使用HttpClient,HttpUrlConnection进行操作。...https实现原理: 客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。 Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。...Web服务器利用自己的私钥解密出会话密钥。 Web服务器利用会话密钥加密与客户端之间的通信。 7、Http位于TCP/IP模型中的第几层?为什么说Http是可靠的数据传输协议?

1.4K20

Retrofit如何创建的?为什么要用动态代理

Retrofit使用 通常我们是Retrofit是和Rxjava配合使用,这里我们不做用法上的过多研究,主要看原理,所以下面的代码都是Retrofit的自身API,没有用Rxjava。...的核心-动态代理 Retrofit如何将我们定义的接口方法最后转化成请求发送出去呢,这里就到源码去看看 创建者模式 首先来看Retrofit的创建,这里使用了创建者模式 new Retrofit.Builder...);//第一步创建的API接口传入 首先来看Retrofit.Builder()这个类的构造方法 public static final class Builder { public Builder...执行请求的客户端,这里是OkHttpClient,在创建的时候.client传入 converterFactories json解析处理工厂数组,这里是GsonConverterFactory。...进行请求和响应的解析,json字符串转换为具体的实体类 callAdapterFactories 请求和响应的具体处理适配器工厂数组,这里没有传的话默认为ExecutorCallAdapterFactory

2.3K00
您找到你想要的搜索结果了吗?
是的
没有找到

RetrofitOkhttp 网络接口加固技术实践(上)

在写这篇文章之前,我纠结了很久,本篇到底属于app安全系列,还是属于Retrofit系列,最终我还是选择了本篇文章归类到Retrofit下。...解密过程也直接使用map操作符转换后返回给业务层。 HTTPS 以前写过一篇文章可以参考 :Retrofit 2.0 超能实践(一),完美支持加密Https传输,怎么让自己api加入SSL认证。...遇到三方恶意攻击,服务端确定并接受客户端发来的权限,判断并不是我们固定的角色,那么服务端也视这次请求为无效的。...一般时间值参数,不会单纯的在请求中单一传输,一般采用某种算法把客户端的时间戳 加密成一定字符后,在进行发送到SERVICE.这种策略对于重复恶意刷单,有很好的防御作用。...在客户端api加固中,常用上面这几种综合来实现,做到万无一失,数据源的加密,到传输过程中加密,到数据源获取到权限的校验,整个过程都是做了防御的,这种思维我们可以参考:OAuth 工作原理,那么很多时候我们也要对服务端返回的数据进行校验

75610

字节跳动Android工程师秋招面筋

——顾城 《错过》 阿里实习回来后,投了字节跳动的秋招内推,因为一直听说头条的面试比较快,通过了就会有一下轮,所以想体验一下,投的是上海的研发岗位,下面是头条面试的面筋 2018/9/22 一面 自我介绍...介绍SS助手项目 介绍下Retrofit框架,retrofit为什么要包装okhttp呢?...retrofit的常用配置有哪些? android的序列化对象的两种方式? 序列化对象用在什么方面?(没回答全) Android的handler的postdelayed原理?...远程写代码:一个数组有1个数字出现了一次,其他数字出现了三次,请问不用map的情况如何找到这个只出现了一次的数(不会) 远程写代码:二叉搜索树中第K小的元素 activity的onSavedInstace...(问了下部门,貌似是抖音客户端的) 总结

1.1K20

HTTP 的基础概念

以上定义中 Hyper 有拓展的一层意思,互联网创始之初,人们就在思考如何更加方便的在互联网传输信息,最初这些信息都是以文本形式进行传输,随着互联网信息越积约多,就急需一种让文件之间互相关联起来的方式来提高信息查找效率...gender); HEAD 和 GET 使用方法完全相同 和 GET 唯一区别在于,返回的响应中没有 Body 一般用于下载比较大的文件,响应报文头获取文件大小等属性 状态码(Status Code...单项内容(文本或⾮文本都可以),用于 Web Api 的响应或者 POST / PUT 的请求 Content-Length 指定 Body 的长度(字节) Transfer:chunked(分块传输编码...其他 Headers Accept: 客户端能接受的数据类型。如 text/html Accept-Charset: 客户端接受的字符集。...如 gzip Cache 作用:在客户端或中间⽹络节点缓存数据,降低服务器取数据的频率,以提⾼网络性能。

82910

七大主流的HttpClient程序比较

3.支持http24.Android4.4开始换成okHttp 1.使用时需要自己封装2.new OkHttpClient()每次使用都需要new出来(晚上看到说作者可能是考虑可以忽略此开销)3.超时配置在...3、Apache HttpClient 在Android中,AndroidSDK中集成了Apache的HttpClient模块,HttpClient就是一个增强版的HttpURLConnection,它只是关注于如何发送请求...Android4.4开始HttpURLConnection的底层实现采用的是okHttp. 5、Retrofit Retrofit 是 Square 公司出品的默认基于 OkHttp 封装的一套 RESTful...Retrofit 的封装可以说是很强大,里面涉及到一堆的设计模式,你可以通过注解直接配置请求,你可以使用不同的 http 客户端,虽然默认是用 OKhttp ,可以使用不同 Json Converter...Retrofit retrofit = new Retrofit.Builder() .baseUrl(API_URL) .addConverterFactory

62420

RetrofitOkhttp API接口加固技术实践(上)

加固API主要由四种方案: 使用Https URL加密 参数加密 加入权限 时效验证 数字签名 Https 以前写过一篇文章可以参考 :Retrofit 2.0 超能实践(一),完美支持加密Https传输...遇到三方恶意攻击,服务端确定并客户端发来的权限并不是我们固定的角色,那么服务端也视这次请求为无效的。 时效验证 时效验证一般是用来校验API是否过期,业内常用来做订单是否重复的依据之一。...一般时间值参数,不会单纯的在请求中单一传输,一般采用某种算法把客户端的时间戳 加密成一定字符后,在进行发送到SERVICE.这种策略对于重复恶意刷单,有很好的防御作用。...总结 通过以上Retrofitapi加密列子。...在客户端api加固中,常用上面这几种综合来实现,做到万无一失,数据源的加密,到传输过程中加密,到数据源获取到权限的校验,整个过程都是做了防御的,如过需要给第三方提供接口认证, 可以使用授权,类似微信提供给你的三方登录一样

60820

深入浅出 Retrofit,这么牛逼的框架你们还不来看看?

Android 开发中,原生的 HttpUrlConnection 到经典的 Apache 的 HttpClient,再到对前面这些网络基础框架的封装,比如 Volley、Async Http Client...也许你会问,这里的 Part 和 Field 究竟有什么区别,其实功能上讲,无非就是客户端向服务端发起请求携带参数的方式不同,并且前者可以携带的参数类型更加丰富,包括数据流。...文件内容成功上传了,当然其中还存在一些问题,这个目前直接使用 Retrofit 的 Converter 还做不到,原因主要在于我们没有办法通过 Converter 直接 File 转换为 MultiPartBody.Part...2、Retrofit 原理剖析 前一个小节我们把 Retrofit 的基本用法和概念介绍了一下,如果你的目标是学会如何使用它,那么下面的内容你可以不用看了。...于是我们需要能够模拟网络请求来调试我们的客户端逻辑,Retrofit 自然是支持这个功能的。

98460

源码解析: Retrofit2.5

究竟是如何使用,以及内部工作原理 一.概述 作用   OKHttp 做的更加简洁,更加方便,同时影藏了oKHttp的某些功能。...我们先带着问题看源码,Retrofit有几个关键的流程 Retrofit 如何将定义的interface转换成网络请求? Retrofit的Converter机制是如何实现?...Retrofit的CallAdapter机制是如何实现? 1. 寻找入口   一行一行读,肯定是不可行的,太累了,而且脑容量不够,记不住,合适的读源码方式是程序入口开始入手。当前功能开始读。   ...建造者模式 Retrofit对象的创建、ServiceMethod对象创建都使用Build模式,复杂对象的创建和表示分离,调用者不需要知道复杂的创建过程,使用Build的相关方法进行配置创建对象。...外观模式 Retrofit对外提供了统一的调度,屏蔽了内部的实现,使得使用该网络库简单便捷。

75500

android面试题2022

.bitmap是在什么内存里 1 android2.2(API level 8)和更早的版本,垃圾回收时,会阻塞UI线程,造成卡顿。...android3.0(API level 11)到android7.1(API level 25),bitmap对象及其像素数据都存储在虚拟机的堆里。...android8.0(API level 26)开始,bitmap对象存储在虚拟机的堆里,而对应的像素数据存储在native堆里。...8.双校验锁单例 9.项目中遇见的问题 二、xm Hanlder机制 ThreadLocal原理 retrofit动态代理 zxing原理 线程池的使用 mvvm和mvp的区别 如何监听生命周期变化...3.retrofit原理 动态代理的作用 4.livedata如何监听生命周期 5.glide如何监听生命周期 6.tcp包含哪些东西 7.retrofit注解的原理实现 发布者:全栈程序员栈长,转载请注明出处

64530

深入浅出 Retrofit,这么牛逼的框架你们还不来看看?

文章来源:腾讯Bugly Android 开发中,原生的 HttpUrlConnection 到经典的 Apache 的 HttpClient,再到对前面这些网络基础框架的封装,比如 Volley、Async...也许你会问,这里的 Part 和 Field 究竟有什么区别,其实功能上讲,无非就是客户端向服务端发起请求携带参数的方式不同,并且前者可以携带的参数类型更加丰富,包括数据流。...文件内容成功上传了,当然其中还存在一些问题,这个目前直接使用 Retrofit 的 Converter 还做不到,原因主要在于我们没有办法通过 Converter 直接 File 转换为 MultiPartBody.Part...2、Retrofit 原理剖析 前一个小节我们把 Retrofit 的基本用法和概念介绍了一下,如果你的目标是学会如何使用它,那么下面的内容你可以不用看了。...于是我们需要能够模拟网络请求来调试我们的客户端逻辑,Retrofit 自然是支持这个功能的。

1.7K50

飞书前端提到的竞态问题,在 Android 上怎么解决?

字节这篇文章是 Web 端的视角切入的,借鉴意义有限,这篇文章我们 Android 的视角展开讨论。...4.2 取消 Retrofit 请求 实际项目中我们会更多地使用 Retrofit 框架,我们都知道 Retrofit 是对 OkHttp 的封装,那 Retrofit 是否良好地继承了 OkHttp...总结 今天,我们分析了 Android 竞态请求的问题,并思考了相应的解决方案,最后找到 OkHttp 或 Retrofit 通过 TAG 批量取消请求的方法。...小彭之前还不知道 Retrofit @TAG 这个注解,所以在使用 Retrofit 时都是采用 方法 1 维护旧 Call 对象的方式来取消请求,也算有所收获。关注我,我们下次见。...参考资料 [1] GitHub · AndroidFamily: https://github.com/pengxurui/Android-NoteBook [2] 《如何解决前端常见的竞态问题》: https

1.2K20

字节跳动年前再招聘1W+人,距离大厂 Offer,你还差这篇Android干货!

前段时间,字节跳动发布了年前再招 1 万人的消息。字节的招聘岗位需求来看,研发人员仍占多数。我身边的研发朋友们又开始蠢蠢欲动了,是啊,谁还没个字节梦呢?...: 避免使用帧动画,容易OOM 界面销毁时停止动画,避免内存泄漏 开启硬件加速,提高动画流畅性 ,硬件加速: cpu 一部分工作分担给 gpu ,使用 gpu 完成绘制工作 工作分摊和绘制机制两个方面优化了绘制速度...序列化方式,适用于组件通信数据传递,性能高,因为不像 Serializable 一样有大量反射操作,频繁 GC Binder Android 进程间通信的中流砥柱,基于客户端-服务端通信方式 使用 mmap...Interface Definition Language,可实现跨进程调用方法 服务端:暴漏给客户端的接口声明在 AIDL 文件中,创建 Service 实现 AIDL 接口并监听客户端连接请求...还有一份Android开发相关源码解析,这份Android学习PDF大全真的包含了方方面面了 内含微信 MMKV 源码、AsyncTask 源码、Volley 源码、Retrofit源码、OkHttp

69100

Java学习资料汇总

字节码操作 编程操作Java字节码的函数库。 ASM:通用底层字节码操作及分析。 Javassist:尝试简化字节码编辑。 Byte Buddy:使用“流式API”进一步简化字节码生成。...Dagger :编译期的注入框架,没有使用反射,主要用于Android开发。 Guice:轻量级注入框架,功能强大可与Dagger媲美。 开发库 基础层次上改进开发流程。...OkHttp :一个Android和Java应用的HTTP+SPDY客户端。 ORM 处理对象持久化的API。 EclipseLink:支持许多持久化标准,JPA、JAXB、JCA和SDO。...Retrofit:一个Java类型安全的REST客户端。 Spark:受到Sinatra启发的Java REST框架。...Google Web Toolkit:一组Web开发工具集,包含在客户端Java代码转为JavaScript的编译器、XML解析器、RCP API、JUnit集成、国际化支持和GUI控件。

2K50

推荐!国外程序员整理的Java资源大全

字节码操作 编程操作Java字节码的函数库。 ASM:通用底层字节码操作及分析。 Javassist:尝试简化字节码编辑。 Byte Buddy:使用“流式API”进一步简化字节码生成。...Dagger :编译期的注入框架,没有使用反射,主要用于Android开发。 Guice:轻量级注入框架,功能强大可与Dagger媲美。 开发库 基础层次上改进开发流程。...OkHttp :一个Android和Java应用的HTTP+SPDY客户端。 ORM 处理对象持久化的API。 EclipseLink:支持许多持久化标准,JPA、JAXB、JCA和SDO。...Retrofit:一个Java类型安全的REST客户端。 Spark:受到Sinatra启发的Java REST框架。...Google Web Toolkit:一组Web开发工具集,包含在客户端Java代码转为JavaScript的编译器、XML解析器、RCP API、JUnit集成、国际化支持和GUI控件。

1.9K30

基于java平台的常用资源整理

Byte Buddy:使用“流式API”进一步简化字节码生成。 ---- 代码分析 软件度量和质量评估工具。 Checkstyle:对编程规范和标准进行静态分析。...Dagger :编译期的注入框架,没有使用反射,主要用于Android开发。 Guice:轻量级注入框架,功能强大可与Dagger媲美。 ---- 开发库 基础层次上改进开发流程。...OkHttp :一个Android和Java应用的HTTP+SPDY客户端。 ---- ORM 处理对象持久化的API。...Retrofit:一个Java类型安全的REST客户端。 Spark:受到Sinatra启发的Java REST框架。...Google Web Toolkit:一组Web开发工具集,包含在客户端Java代码转为JavaScript的编译器、XML解析器、RCP API、JUnit集成、国际化支持和GUI控件。

1.7K20

Retrofit解析1之前哨站——理解RESTful

Retrofit是由Square公司出品的针对于Android和Java的类型安全的Http客户端,如果看源码会发现其实本质上是OkHttp的封装,使用面向接口的方式进行网络请求,利用动态生成的代理类封装了网络接口请求的底层...,其请求返回JavaBean,对网络认证REST API进行了很友好的支持。...使用Retrofit将会极大的提高我们应用的网络体验。 本篇文章是Retrofit的前哨站——理解RESTful。因为retrofit是基于RESTful架构。...WebService:一个貌似很久远的概念,有一套它的理论,基于Web的服务提供者 四、REST关键原则 由于REST定义了应该如何正确的使用Web标准,例如HTTP和URI。...简而言之,实际上服务器端为客户端提供一组链接,使客户端能通过连接应用从一个状态改变为另一个状态。稍后我们会在另一篇文章探究这个方面的影响;目前,只需要记住链接是构成动态应用的有效方式。

65641

字节跳动Android客户端实习 3+1 面经,内部面试官透露通关秘籍

但是一段时间下来发现真正找我咨询、内推的人并不多,不少同学对字节的面试有所忌惮,总担心准备不够。 实际上字节特别是客户端的面试没有网上传说的那么可怕。...如果现在要使用 HTTPS,连接的建立会发生什么变化呢? 客户端如何根据 IP 地址找到服务器对应的主机的呢? 6. 算法 LeetCode 518. 零钱兑换 II 题目开始理解错了。...字节三面(40 min) 自我介绍 & 项目介绍 有了解过 Retrofit如何简化网络请求的吗? Retrofit 会结合一些注解进行使用,对注解有什么了解吗? APT 有听说吗?...然后面试官代码规范和迭代器的使用两个角度讲了一下为什么应该把迭代器提前存到变量里面,还提到了 WeakReference 相关的东西。...想要进大厂,首先最关键的就是要知道面试考什么 很多人准备面试的时候,大多数就会这样的,打开牛客网,查找 “Android 面经”,找几个多的开始看。以及各大技术交流平台搜索Android面试题。

1.5K00
领券