• Android面试宝典(1)----android的基础知识


    慕课课程 --BAT大咖助力 全面升级Android面试】总结

    1.activity

    1)activity的4种状态

      running/paused/stopped/killed

    2)activity的生命周期

    3)进程优先级

    前台/可见/服务/后台/空

    2.activity启动模式

    1)standard重新创建activity加到任务栈中

    2)singletop(栈顶复用模式)

    栈顶的activity复用,其他的重新创建。

    3)singletask

    检测任务栈中是否存在该activity,存在则将所有该acivity以上的activity都除去

    4)singleInstance

    比较少使用,任务栈中只有一个实例,activity独享任务栈

    3.scheme跳转协议

    4.Fragment

    1)Fragment为什么被称为第5大组件

      使用多,Fragment可以灵活动态的加载到app中,有自己的生命周期。Fragment的生命周期不是完全独立的,必需嵌入activity中。

    2)Fragment加载到activity的两种模式  a)静态,写到xml中  b)动态,实例化->add->commit

    3)FragmentPagerAdpter与FragmentStatePagerAdapter的区别  FragmentPagerAdpter适用于页面较少,FragmentStatePagerAdapter适用于页面较多(destroyItem中释放了内存)。

    4)Fragment生命周期

    5)Fragment通信

      a)在fragment中调用acitivity的方法

        getActivity()

      b)在activity中调用fragment的方法

        接口回调(在fragment中创建接口,在activity中实现)

      c)在Fragment中调用Fragment的方法

        findFragmentById()

    6)Fragment的replace,add,remove方法

      replace是将最上层的替换,add是直接加到最上层。

    5.service

    1)service是什么?和Thread的区别?

      是一种可以在后台执行长时间运行操作(不可执行耗时操作)而没有用户界面的应用组件。

      thread是程序的最小单元,thread的运行是独立的,可以耗时操作,而service是运行在主线程中。

    2)service启动方式

      a)startservice

        定义一个service->注册->startservice->stopservice

      b)bindservice

        创建bindservice服务端,继承自service并在类中,常见一个Binder接口实例对象并提供方法给客户端调用

        从onBind()回调方法中返回此Binder实例

        在客户端中,从onServiceConnected()回调方法接收Binder,并使用提供方法调用绑定服务。

      replace是将最上层的替换,add是直接加到最上层。

    6.broadcast

     1)广播应用场景

      同一app具有多个进程的不同组件之间的消息通信

      不同的app之间的组件之间消息通信

    2)广播的分类

      普通广播/系统广播(有序广播)/本地广播(自身app内传播)

    3)内部实现机制

      a)自定义广播接受者,并复写onRecvice

      b)通过Binder机制向AMS(activity manager service)进行注册

      c)广播发送者通过Binder机制向AMS发送广播

      d)AMS查找符合相应条件(IntentFliter/Permission等)的广播接收者,将广播发送到广播接受者相应的消息循环队列中

      e)消息循环执行拿到广播,回调onReceive()方法

    4)LocalBroadcastManager

      a)使用它发生的广播将只在自身APP内传播,因此不用担心数据泄漏

      b)比系统的全局广播更加高效

      c)其他APP无法对你的app发送该广播,因此不必担心安全漏洞。

    7.Webview安全漏洞

    1)webview常见问题

      a)远程攻击者可使用java Reflection API利用漏洞执行java对象方法

      b)webview在布局文件中的使用:webview写在其他容器中时

      c)jsbridge

      d)webviewClient.onPageFinished->webChormeClient.onProgressChanged

      e)后台耗电

      f)webview硬件加速导致页面渲染问题

    2)关于webview内存泄漏问题

      a)独立进程,简单暴力,不过可能涉及到进程间通信

      b)动态添加webview,对传入的webview使用的context进行弱引用

    7.binder

    1)Binder通信机制

      Binder是指一种通信机制(跨进程)

      性能:比传统的socket更安全,高效

      客户端进程只不过持有一个代理对象引用,通过代理对象执行完成

    2)aidl

      

      

      

      

      

      

      

      

  • 相关阅读:
    Cocos2dx引擎10-事件派发
    IE无法打开internet网站已终止操作的解决的方法
    让程序在崩溃时体面的退出之Dump文件
    天将降大任于斯人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为,所以动心忍性,增益其所不能
    RapeLay(电车之狼R)的结局介绍 (隐藏结局攻略)
    cocos 3.0 一键打包android平台应该注意的细节
    Matlab画图-非常具体,非常全面
    linux和windows文件名称长度限制
    Javascript的DOM操作
    50个高端大气上档次的管理后台界面模板
  • 原文地址:https://www.cnblogs.com/slothccc/p/8714443.html
Copyright © 2020-2023  润新知