• 阿里Android一面(校招)


    4.8号晚上8点多接到了阿里一面的电话,面试官人很好,和我聊了半个多小时。我面的是无线事业部,就是做淘宝客户端的那个部门。面试问的都很基础,刚开始问了hashmap和快速排序。接着就是问Android相关的问题。因为数据结构和算法是基础,这里就不多说了,主要写一下与Android相关的问题。

       

    首先问了一个Android中事件分发的问题,如下图:

    一个LinerLayout里放一个Button,当点击Button的时候事件是怎么传递的?

    点击事件用MotionEvent来表示,当点击事件发生时,最先传递给Activity,用Activity的dispatchTouchEvent来进行事件的派发,具体的工作是用Activity内部的Window来完成的。Window将事件传递个decor view,decor view一般是当前几面的底层容器(setContentView所设置的View的父容器,decor view是一个FrameLayout),通过Activity.getWindow().getDecorView()可以获得。现在,事件传递到decorView了,decorView再将事件传递给LinerLayout,LinerLayout将事件传递给Button。 

    这里要补充的是:当父容器通过 dispatchTouchEvent来传递事件时,如果他的onInterceptTouchEvent函数返回true,就不会将事件传递个子view,当然Android的还提供了一种防止父容器阻断事件的机制:只要子View调用requestDisallowInterceptTouchEvent方法,就能保证子View一定能收到点击事件。 

    关于事件的派发可以看一下我的另一篇博客Android滑动事件冲突

       

    接着面试官又问了Button中调用setOnclickedListener和在onTouchEvent中处理点击事件的区别,这个我觉的很简单,就说都差不多,setOnclickedListener重点onClick就是Android在onTouchEvent中完成的。 

    这个问题不懂面试官想问什么,欢迎大家评论,告诉我一下,谢谢 :)

       

    还问了一个关于HTTP返回码的问题:你知道HTTP返回码代表什么吗? 

    1××  保留 

    2××  表示请求成功地接收 

    3××  重定向 

    4××  客户错误 

    5××  服务器错误

       

    最后,问了一个Android中动态加载SDK的问题,面试官给我提示了几个参数,可这个我之前没做过,完全不懂。 

    问题描述:现在要动态加载仓库中的两个SDK,但这两个SDK中都调用了同一个jar吧,怎么解决这个冲突? 

    希望懂的朋友能评论一下,:)

  • 相关阅读:
    基于perl的网络爬虫
    ios cell展示可滑动的图片
    iOS计算字符串的宽度高度
    swift水波效果
    iOS添加另一个控制器的时候要注意啊
    swift隐藏显示导航栏的底线
    swift集成alamofire的简单封装
    tableview详细介绍
    xmpp xml基本语义
    xmpp SASL 定义
  • 原文地址:https://www.cnblogs.com/yxx123/p/5377886.html
Copyright © 2020-2023  润新知