安卓面试题准备

这篇具有很好参考价值的文章主要介绍了安卓面试题准备。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • leakcanary原理:
    weakReference与referenceQueue的引用;
  • 共享指针和独享指针的区别:
  • 指针常量、常量指针的区别:

指针常量:指针只能被赋值一次,可以通过指针修改所指对象的值。int * const p;
常量指针:指向常量的指针,不能通过指针修改所指对象的值, int const* p; const int* p;

  • 红黑树特点结构;

自平衡、节点旋转、排序树

  • c结构体可以定义方法吗:不能
  • java有几种锁:

乐观锁 悲观锁;
共享锁 独占锁;
公平锁 非公平锁;
可重入锁 不可重入锁;
可中断锁 不可中断锁;
自旋锁 非自旋锁;

  • 锁状态:

无锁状态、偏向锁、轻量级锁、重量级锁

  • compile(implementation,api)

implementation:该依赖方式所依赖的库不会传递,只会在当前module中生效。
api:该依赖方式会传递所依赖的库,当其他module依赖了该module时,可以使用该module下使用api依赖的库。
compile:该依赖方式会传递所依赖的库

  • jni集成

cmake与ndkBuilder
1,声明native方法
2,javah -jni生成.h头文件
3,写cpp文件,
4,写cmake或者android.mk文件
5,gradle中配置make文件路径
6,java中System.loadLibrary

  • MessageQueue屏障消息

handler默认发送同步消息,屏障消息可以阻止执行同步消息,不阻止异步消息执行。

  • Handler.postdelay

messagequeue里对消息排序,取消息时,若未到时间则nativePollOnce(msg.updatetime-now)

nativePollOnce不会导致UI线程anr
MessageQueue的next方法,而next方法阻塞在nativePollOnce方法。nativePollOnce方法通过JNI调用进入到native层中去,最终nativePollOnce方法阻塞在epoll_wait方法中,epoll_wait方法会让当前线程释放CPU资源进入休眠状态;
若阻塞在nativePollOnce,说明线程空闲;就没有UI线程繁忙anr的情况。

  • okhttp

addInterceptor有无网络都会被调用到。
拦截器只会被调用一次,调用chain.proceed()得到的是重定向之后最终的响应信息,
不会通过chain.connection() 获得中间过程的响应信息。
允许短路,并且允许不去调用chain.proceed()请求服务器数据,可通过缓存来返回数据
addNetworkInterceptor
无网络时不会被调用。
可以显示更多的信息,比如OkHttp为了减少数据的传输时间以及传输流量而自动添加的
请求头Accept-Encoding: gzip,从而希望服务器能返回经过压缩过的响应数据。
chain.connection()返回不为空的Connection对象,可以查询到客户端所连接的服务器的IP地址以及TLS配置信息。

  • http断点下载:

RandomAccessFile文件分段写
httpHeader:Range bytes(from-end)

  • mvp与mvc

Presenter是Model和View之间的桥梁
BasePresenter、BaseView、LauncherContract

  • jvm内存模型

堆、栈、方法区、程序计数器、本地方法栈

  • hashmap原理

数组+链表+红黑树

  • hashmap、hashTable、hashset;treemap、treeset;
  • 哈希冲突解决:开放地址法、再哈希法、链地址法、建立公共溢出区
  • volatile防止指令重排
  • 动态代理静态代理

静态代理:实现类和代理类都要实现接口方法,方法多时代码规模庞大。
动态代理:代理类动态生成,最大的好处是接口中声明的所有方法都被转移一个集中的方法中处理(InvocationHandler.invoke)。这样,在接口方法数量比较多的时候,我们可以进行灵活处理。可以集中添加权限控制,日志记录,拦截器等

  • 设计模式

简单工厂 工程方法 观察者模式 适配器模式 迭代器

  • 线程池原理

workblockQueue,线程阻塞式取任务

  • instanceOf和super
  • 热修复原理

dexelements数组,pathClassLoad类加载机制

  • jvm回收算法
  • 常用算法

    简单排序
    冒泡排序
    二分排序
    快速排序

  • 崩溃优化:

anr检测(FileObserver 监听 /data/anr/traces.txt ;
native崩溃日志捕获:Breakpad

  • 内存优化:

VSS RSS PSS USS
获取系统配置:/system/build.prop;
自身内存占用监控(Runtime.getRuntime().totalMemory());
adb dumpsys meminfo整体内存分配
Debug类GC监控

  • 卡顿优化:

Traceview、systrace
基于消息队列实现,通过替换 Looper 的 Printer实现
插桩(Inline Hook 在方法前后加日志)
Choreographer 来监控应用的帧率
生命周期监控(生命周期的耗时和调用次数)
线程监控(线程数量多少)

  • 启动优化:

I/O 优化
数据重排(Dex类重排,Dex资源文件重排)
黑科技(保活,插件化和热修复)
代码优化:
包体积(资源优化):
ProGuard、Dex 分包、Library依赖监控、AndResGuard(资源混淆、极限压缩)

  • UI优化:merge技术、include layout、ViewStub延迟加载
  • 其他黑科技

apt,aspectJ、asm、redex
java文件生成;字节码方法修改;完全的字节码修改;
1,代码生成
2,代码监控
3,代码修改
4,代码分析文章来源地址https://www.toymoban.com/news/detail-518645.html

到了这里,关于安卓面试题准备的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 新版Java面试专题视频教程——准备篇、Redis篇

    = = = = = = = = = = = = = 准备篇 = = = = = = = = = = = = = 准备篇-01-企业简历筛选规则 HR如何筛选简历 学历、院校、经验、年龄、跳槽频率… 部门负责人筛选 符合当前项目的技术栈 符合业务条件 (银行、电商、物流) 额外加分项: 有高可用高并发经验优先 熟悉基于公有云的开发经验 有

    2024年02月21日
    浏览(42)
  • 【职业人生】如何有效的在职场当中避免工作失误和提高个人发展

         《左传·宣公二年》:“人谁无过,过而能改,善莫大焉。”古往今来,多少人犯过错误。强大如“智绝”的诸葛孔明,也有街亭之失。职场人更是难免会在工作中出现失误。     在职场生涯当中避免不了在工作当中带来的失误,在这过程当中,我们应当要学会怎么去

    2024年02月08日
    浏览(44)
  • [office] excel成绩表格数据排名次的教程 #职场发展#知识分享#媒体

    excel成绩表格数据排名次的教程 Excel 中经常需要使用到 排名 次的技巧,成绩表格数据具体该如何排名呢?接下来是小编为大家带来的excel成绩表格数据排名次的教程,供大家参考。 步骤1:不管在学校还是各个统计领域,排名应用随处可见,如果排序会打乱原有次序,那么好多

    2024年02月21日
    浏览(40)
  • 2023JAVA 面试题全集(超全面!超系统!超实用!)早做准备,早上岸!

    大家好,最近有不少小伙伴在后台留言,近期的面试越来越难了,要背的八股文越来越多了,考察得越来越细,越来越底层,明摆着就是想让我们徒手造航母嘛!实在是太为难我们这些程序员了。 这不,为了帮大家节约时间,给大家搞来了今年上半年碰到的大厂 Java 面试题合

    2024年02月08日
    浏览(93)
  • 突破职场竞争,引领未来发展:考取《研发效能(DevOps)工程师职业技术认证》

    就业形势堪忧,什么最有保障?考个“国家级”证书傍身吧! 工信部教考中心作为中国领先的行业技能认证机构,其颁发的认证证书不仅代表了个人在信息技术领域的专业能力,更可以录入工业和信息化技术技能人才数据库,这是一个重要的信息资源平台,它可以帮助企业和

    2024年02月05日
    浏览(47)
  • [office] Excel中函数进行计算两个日期参数差值的方法 #职场发展#学习方法#媒体

    Excel中函数进行计算两个日期参数差值的方法 在excel使用中,如果想计算两个日期参数的差值,该用什么函数和如何使用呢?今天,小编就教大家在Excel中函数进行计算两个日期参数差值的方法。 Excel中函数进行计算两个日期参数差值的步骤 在excel中计算两个日期参数的差值,

    2024年02月20日
    浏览(49)
  • Android 开发必备知识点及面试题汇总(Android+Java+算法+性能优化+四大组件……),腾讯安卓开发面试

    5.请介绍下 AsyncTask的内部实现,适用的场景是 AsyncTask 内部也是 Handler 机制来完成的,只不过 Android 提供了执行框架来提供线程池来 执行相应地任务,因为线程池的大小问题,所以 AsyncTask 只应该用来执行耗时时间较短的任务, 比如 HTTP 请求,大规模的下载和数据库的更改不

    2024年04月15日
    浏览(65)
  • 2023前端面经(面试准备+面试题)

    1.1 博客粉丝少,要不要写简历上 博客粉丝数量少,文章内容都是基础的东西,要不要写到简历上?咨询了一些群友,以下是一些回复: 1.“我作为面试官,拿到的简历如果有自己建立的站点或者博客的链接我会点进去看看的,另外面试过程中,也会去问一两点。所以我建议

    2024年02月09日
    浏览(45)
  • 微软面试准备

    1、岗位 Cloud Solution Architecture 1、理解 (1) 让客户更好地使用微软的服务,用微软的服务帮助客户解决现有的问题,满足客户的需求 (2) 通过产品演示、产品安装和维护,来为客户提供专业的技术知识 (3) 为其他岗位的同事提供支持,比如销售人员和开发人员 需要具备的能力:

    2024年02月09日
    浏览(59)
  • 准备的一些爬虫面试题

    最近准备试试外面的市场,找找看外面的岗位,给自己找点后路,防止到时候被裁被动。 我将面试题分为基于scrapy框架与普通爬虫【requests/aiohttp等开发的爬虫】 列举反爬虫机制 (1) UA 检测,请求头合法性 (2) Robots 协议 (3) 验证码 (4) IP 封禁 (5) 账号封禁 (6) 动态数据加载 (7) 请

    2024年01月19日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包