Code Monkey home page Code Monkey logo

android-daily-interview's Introduction

banner

如何贡献? Thanks


每工作日更新一道 Android 面试题,小聚成河,大聚成江,坚持下来的都是时代的铸就者,共勉之!如果想要和我们一起坚持下去,不妨点个关注吧!:rainbow_flag:

Android 知识图谱

android_constructions

后续计划

  • 面试题收集
  • 往期面试题分类整理
  • 提供往期面试题索引
  • 维护人员招募
  • 每期面试题的解析归纳
  • GitBook 的编纂

近期将每日一题任务暂时关闭,后续将集中精力去提升本项目的质量和完善题解,感谢大家一直以来的支持,继续无畏前行💪

如何贡献?

想加入这件有意义的事,并成为贡献者一员?很简单,你可以选择以下方式来完善和壮大这个项目:

  1. 参与每日答题,在答题区留下你的见解,让更多人认识你!

  2. 参与往期面试题的归纳、总结、完善或者扩展,稳固基石!

  3. 前往👉后续面试题征集区域,提供更多优质面试题~

  4. 你也可以加入QQ群,参与本项目的维护或者讨论:661759211

    也可以加入我们的 Slack 小组,为 AI 续杯🍻

面试题分类汇总

以下主要针对往期收录的面试题进行一个分类归纳整理,方便大家统一回顾和参考。

Java 方面

Java 常见考察知识点可大致分为以下几部分:

Java 基础部分

Java 集合

Java 多线程

Java 虚拟机

Android 方面

Android 考察点比较纷杂,以下针对之前收录的面试题做一个大概的划分:

Android 四大组件相关

Android 异步任务和消息机制

Android UI 绘制相关

此类主要涵盖 Android 的 View 绘制过程、常见 UI 组件、自定义 View、动画等。

Android 性能调优相关

Android 中的 IPC

Android 系统 SDK 相关

第三方框架分析

综合技术

数据结构方面

设计模式

计算机网络方面

Kotlin 方面

开放性问题

Thanks

感谢 玩 Android 为广大安卓开发者无私提供一个比较全面的 Android 学习平台,此项目部分灵感亦来源于此。

最后

建立这个项目的初衷是想大家每天以答题打卡的方式来巩固基础知识和查漏补缺。我相信,如果每天能够坚持打卡,不出一个月定能意识到自己的成长。因此,对于想要和我们一样坚持的同学,欢迎来加群探讨,群号 661759211,入群口令:Google

android-daily-interview's People

Contributors

featherhunter avatar mojieblog avatar moosphan avatar shanlovana avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

android-daily-interview's Issues

> 如果不考虑布局的排版要求,那肯定是的FrameLayout大于LinearLayout中,LinearLayout中和RelativeLayout的相差无几。

如果不考虑布局的排版要求,那肯定是的FrameLayout大于LinearLayout中,LinearLayout中和RelativeLayout的相差无几。

  1. FrameLayout中的子元素都堆在屏幕的左上角,子元素不能指定位置,绘制起来当然效率高
    .2。在阅读RelativeLayout和LinearLayout的源码中,我发现有这么一段注释:
    //所以,而不是跑步代码两次,我们只是
    将宽度设置为“默认显示宽度” 我们没有运行代码两次,而是将宽度设置为“默认显示宽度”
    楼上说的都是RelativeLayout会绘制两次,这到底是怎么回事???
    @Petterpx @Moosphan @kongxiaoan

首先很抱歉,我上面的回答有误,实际上应该是 测量(Measure)两次,回到原因上面,是因为:
RelativeLayout会对子View做两次measure。这是由于RelativeLayout是基于相对位置的,而且子View会在横向和纵向两个方向上分布,因此,需要在横向和纵向分别进行一次measure过程。而LinearLayout只进行纵向或横向的测量,所以measure的时间会比RelativeLayout少很多。但是如果设置了 weight,在测量的过程中,LinearLayout会将设置过weight的和没设置的分别测量一次,这样就导致measure两次。

Originally posted by @Petterpx in #30 (comment)

基本逻辑面试题

小明从一楼到三楼用了6分钟,每层都是一样的速度,楼层高度一样,请问从一楼到六楼要用多长时间

2019-04-01:简述一下 Android 中 UI 的刷新机制?

提示:

  • Handler中的异步消息和同步消息是什么?(我们通过Handler发出的Message只是同步消息,异步消息是系统级别的,以前可以反射调用,Android高版本已经被@hide,无法反射调用了)
  • 同步屏障又是什么?
  • Android页面刷新操作(performTraversals()-执行三大流程)本质是投递到主线程的消息队列中处理,为什么能保证界面刷新操作优先执行(即使有很多其他耗时的操作)?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.