Android 常识

    xiaoxiao2021-04-03  39

    目录(?)[+]

    一面 40 min二面 40 min三面

    常遇到的Android项目实例问题:

    1、支付宝支付集成?

    基本步骤是:首先得去支付宝平台上申请APPID,我客户端只需要下载支付宝SDK,根据开发文档,将相文件导入到项目中,并进行清单文件和代码混淆配置,然后我需要将订单信息通过接口发送给我们的服务器,服务器在后台通过密钥加密后将相关数据返回给客户端,客户端通过调用支付宝API来确定用户是否安装了支付宝APP,如果安装了就跳转支付宝APP进行相关的支付流程,如果没有安装,则跳转支付宝的H5页面进行支付流程当支付操作完成后,在客户端显示支付结果,同时支付宝会将支付结果通知给客户端服务器让其修改订单支付状态,客户端拿到自己服务器端订单支付状态展示给用户.

    2、热修复?

    之前开发中没做过,不过我经常逛一些论坛有看到相关的帖子.热修复技术就是在不需要通过下载更新APP情况下达到应用的更新.我个人觉得,热修复技术有它的局限性,它的应用场景是应用上线后有bug或者需要某个小功能临时添加情况下才会热修复,一般我们的应用在上线前都会进行全面的测试,不太可能有大的bug,另外,我们的应用不是需要经常增加一些小功能,如果要增加某个功能,完全可以在下个版本更新的时候添加.一般是像QQ,京东他们会根据节日增加一些应用的特效,当节日过后,又需要取消节日特效才会用到该技术,不过如果咱们的应用也想这么做,我应该能很快搞定.

    3、如何创建线程?

    创建线程有两种方式,第一直接new Thread然后重写Thread的run()方法,第二可以自己类实现Runable接口重写run()方法.如果需要执行的任务比较多,可以通过线程池来管理线程,减少创建和销毁线程带来时间和空间上的浪费.我们Android中可以通过AsyncTask进行异步任务的执行,其底层就是用线程池维护线程并通过Handle进行主线程和子线程的数据传输.

    4、Android中跨进程通讯都有哪些方式?

    Android中一个应用可以理解为一个进程,化进程通讯即跨应用通讯,常用的技术有Intent,AIDL,广播,Content Provider

    5、如何避免ViewPager的预加载数据?

    这个问题我在上个应用的开发中正好遇到过,最终是通过延迟加载数据实现的.不过我当时也了解到也可以将V4包下的ViewPager拷贝一份,修改预加载设置相关代码,然后在布局文件中使用自己包下的ViewPager即可实现取消预加载.

    6、网络请求你用的什么框架?

    最近的项目中我用的okhttputils,这个框架是对okhttp的封装,实现链式编程特别好用,不过我在项目中对它再次进行了二次封装,将所需要传入的参数通过Map封装维护,使得代码更便捷管理.

    7、Socket请求?

    我之前开发的应用中用的是http协议请求访问网络.Socket是套接字,我们在客户端可以创建Socket对象,传入IP和端口号,通过该对象获取输出流,并不断的写数据,然后在服务器端也需要创建一个ServerSocket对象,传入端口号,通过调用accept()方法返回一个Socket对象,从而搭建了客户端与服务器端数据传输通道, 通过该Socket对象可以获取输入流对象,即实现了客户端写数据到服务器,当然服务器用Socket对象也可以获取输出流写数据到客户端,客户端通过输入流读取传过来的数据.从而实现数据的双向传输. 说说自己实习的工作内容;网络框架用的什么,OkHttp 的功能是什么;ArrayList 和 LinkedList 的区别?造成区别的原因是什么,为什么删查的复杂度不同;Hashmap 的实现原理是什么;Java 反射了解过没有;Java GC 了解过没有,如何判断一个对象是否可以被GC;Java 线程同步了解不,同步方法在不同的实例之间是否仍然保持同步,有没有什么隐患;Java 类加载机制了解不,双亲委派原理;Android 事件分发机制了解不,简述一下;Android 绘制过程,onMeasure 的原理,解决了什么问题;你有什么问题要问的

    一面 40 min

    自我介绍;布局优化的过程;性能优化有哪些方面;项目经历;Git 操作;单链表,O(1)复杂度内删除一个结点,写算法;数据解析过程、代码设计过程中的容错机制有没有;手写单例模式;说说常见的设计模式;讲讲 MVP,项目中如何迁移的。

    二面 40 min

    自我介绍;布局优化的经验;性能优化的经验;网络库 Volley 的过程;常见的设计模式,手写适配器的类图;手写堆排序;最短路径的算法思想;连续子序列问题,保证 i < j, Ai < Aj 的算法思想;

    三面

    自我介绍;举一两个例子说明自己的自我学习程度较高;评价自己的算法水平,手写冒泡算法和单例模式;饿汉式单例和懒汉式单例的区别;饿汉式和双重检索的单例哪个是线程安全的;讲讲 Android 中的四大组件;讲讲 Servie 的生命周期;一个 Activity 的使用 startService 启动一个 Service, 然后在绑定 Service, 此时 stopService 后,还需要解绑 Activity 吗;一个 Activity 绑定 Service 后,在 startService ,然后在 stopService,此时 Service 是否还需要解绑;内容提供者使用过没有;什么时候开始学 Android,本科做的东西讲讲;你有什么要问的没有。
    转载请注明原文地址: https://ju.6miu.com/read-665981.html

    最新回复(0)