framework面试题

  1. ART、Dalvik和JVM的关系及区别是什么?这是道送分题,并不是真的要说出它们的深度区别,但如果你不知道ART是什么,我觉得你不够关注行业发展,靠这个平台吃饭,不关心它,怎么都说不过去。
       ART 就是 Android Runtime ,是安卓4.4之后的系统的新的虚拟机模式,改模式提升了运行效率,启用该模式之后,系统在安装APP的时候,会进行一次预编译,把代码转成机器语言存储在本地,这样运行的时候效率就高了。
       Dalvik 是一种安卓系统在上面运行的虚拟机,因为安卓系统是以Linux 为底层构建的,为了更加高效的适配到各种不同的硬件设备上面,就创建了这个Dalvik 虚拟机,该虚拟机可以将程序的语言由java转成机器语言二进制运行,然而每次开启运用的时候都会执行一次编译,所以效率不是很高,所以我们需要ART,增加效率。
        JVM 是 java虚拟机,是实现java夸平台的主要方式,可以使得java这样的高级语言编译成机器可以识别的机器语言,这样使得java 一次编译,到处运行。
     



      2. 例举一下Android系统级服务,在App层一般都用过哪些?如何实现一个自定义的系统级服务?渐进式的问题,后边的有难度,如果没有Framework定制经验或没有研读过系统源码真的不好回答了。
        PackageMangerService APP安装有关的service 
        WindowMangerService 是APP 调用窗口有关的service
        SensorMangerService 与传感器有观点 service 
            。。。。。 还有很多

        自定义的系统服务,这个比较复杂。必须在安卓启动的时候,在ServiceManager里面进行注册,在framework/base.增加JNI ,在kernel层增加对应的C++文件,当然要在build配置好各种编译MK文件,然后全编,这样就可以在App中调用了。实际中,不会太多增加系统服务的工作。




       3.Binder机制。难,基本个大概的概念也没有多少个人说的全的。
          Binder机制 是一种进程间通信机制,提供了远程过程调用功能,就是RPC。他把系统的一系列组件连接在了一起,这些组件分别是上层的 Client 和server,中间层的 Service Manager,该组件 ;底层的 Binder驱动程序,系统的核心组件。开发者只要实现要client和server就可以了。
 
      4.Launcher的实现。并非只有manifest里的launcher配置,其实要是能回答PackageManager、ActivityManager对应用包的管理和应用进程的管理,会有加分,因为有了这些,才算是个基本能用的Launcher。

      5.系统级app和第三方应用级app分别在什么目录下?一个第三方的app能否直接放到系统级app目录下而又能正常运行?纯经验题,如果没倒腾过ROM,基本回答没戏了。
      系统级app分成两种,一种在system/priva-app 一种在system/app,如果是修改多的还可能在sytem/vendor/app 。用户级的在data/app下面。
      
     6.能不能单独编译一个系统级应用?ROM编译环境配置及编译脚本题。
        当然可以,一般cd到对应的目录下面,mm下就可以了。也可以直接./mk  XXX package/app/Sms
    
   7.JNI,共享库和静态库的区别和使用场景,JNI中C/C++和Java相互调用各自使用的机制是什么?偏app方向的题。           


 8.如何限制第三方应用安装?
      之前有客户要求过这样的需求,我们是在PMS里面修改的,如果不是系统级的APP,广播返回空。
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Android Framework面试题是关于Android操作系统框架的一些问题,主要涉及Android应用程序的开发、调试和优化等方面。常见的面试题包括: 1. 什么是Android FrameworkAndroid FrameworkAndroid操作系统的核心组件之一,它提供了一系列API和工具,用于开发、调试和优化Android应用程序。 2. Android Framework的组成部分有哪些? Android Framework由四个主要组成部分组成:应用程序框架、系统服务、库和运行时环境。 3. 什么是Android应用程序框架? Android应用程序框架是Android Framework的核心组成部分,它提供了一系列API和工具,用于开发Android应用程序。应用程序框架包括四个主要组件:活动、服务、广播接收器和内容提供者。 4. 什么是Android系统服务? Android系统服务是Android Framework的一个重要组成部分,它提供了一系列系统级别的服务,如通知服务、位置服务、传感器服务等。 5. 什么是Android库? Android库是Android Framework的一个重要组成部分,它提供了一系列常用的功能和工具,如图形界面库、网络库、数据库库等。 6. 什么是Android运行时环境? Android运行时环境是Android Framework的一个重要组成部分,它提供了一系列核心库和虚拟机,用于执行Android应用程序。 7. 什么是Android应用程序的生命周期? Android应用程序的生命周期指的是应用程序从启动到关闭的整个过程,包括应用程序的创建、启动、暂停、恢复和销毁等阶段。 8. 什么是Android应用程序的四大组件? Android应用程序的四大组件包括:活动、服务、广播接收器和内容提供者。活动用于展示用户界面,服务用于在后台执行任务,广播接收器用于接收系统广播,内容提供者用于管理应用程序的数据。 9. 什么是Android应用程序的UI线程? Android应用程序的UI线程是指用于更新用户界面的线程,它负责处理用户界面的事件和更新UI组件。 10. 什么是Android应用程序的异步任务? Android应用程序的异步任务是指用于在后台执行任务的线程,它负责处理耗时的操作,如网络请求、数据库操作等。 ### 回答2: Android FrameworkAndroid 应用开发的核心部分,它是一组软件模块,为 Android 应用提供基本的服务和功能,包括视图系统、资源管理器、通知中心、系统 API 等等。以下是 Android Framework 面试题的回答: 1. 什么是 Android Framework?它有哪些组成部分? Android FrameworkAndroid 应用开发的核心部分,它提供了一个标准化的架构,包括了一系列底层模块和服务,帮助开发者快速构建优质的应用程序。Android Framework 包括四个主要的组成部分: - Activity Manager:管理应用程序的生命周期、任务管理和应用程序调度。 - Content Provider:提供应用程序之间数据共享的机制。 - View System:提供视图组件的绘制和交互功能,包括 UI 组件、菜单、通知等。 - System API:提供开发者使用的系统级别 API,包括网络、存储、多媒体、传感器等各种功能。 2. 什么是 Intent? Intent 是在 Android 开发中用于启动组件、传递数据和执行操作的一种消息机制。Intent 由两个主要的部分组成,第一个是传递的动作行为(Action),用于指定所要执行的操作;第二个是传递的数据(Data),可包含要传递的信息、参数或操作。Intent 在 Android 应用中经常用于启动 Activity、Service、Broadcast Receiver,以及在应用程序之间传递数据。 3. 什么是 Content Provider? Content Provider 是 Android Framework 中的一项核心服务,用于提供跨应用程序数据共享的机制。Content Provider 可以通过 URI 的方式访问数据,并将一些特定的操作和查询暴露给外部应用程序。Content Provider 在 Android 应用中广泛应用于共享数据、存储和检索数据等功能。Content Provider 可以使用 SQLite 数据库存储数据,也可以使用其他数据源。 4. 什么是 Binder? Binder 是 Android Framework 中的一种进程间通信机制。它使用了一种名为跨进程通信 (IPC) 的技术,允许不同进程之间共享数据和资源,并可让应用程序在另一个进程执行功能。在 Android Framework 中,Activity 管理器、Service 和 Content Provider 等都是通过 Binder 与其他应用程序进行通信。Binder 还提供了一些高级功能,如安全性和线程管理。 5. 什么是 View System? View System 是 Android 应用程序中的 UI 组件,它提供了视图绑定、事件处理、资源管理和窗口布局等功能。在 Android Framework 中,View System 通过命名布局文件、使用 XML 描述视图和样式等机制,管理和绘制 UI 布局、界面组件和控件。View System 还提供了与其他系统服务的集成,如通知中心、扩展菜单、对话框等。 6. 什么是 Android Manifest? Android Manifest 是 Android 应用开发中必不可少的部分,它是应用程序清单文件,用于定义应用程序的基本信息和结构。Manifest 文件包含了应用程序使用的 Activity、Service、Broadcast Receiver 等组件,以及应用程序所需的权限和组件信息、应用程序元信息等。Manifest 文件还包括运行时动态创建的 Activity、Service 和 Receiver 的声明和权限标签,以及与应用程序的组件交互的 Intent 过滤器。 总结: Android FrameworkAndroid 应用开发的核心,它提供了一组标准化的软件模块,为 Android 应用程序提供基本的服务和功能。通过对 Android Framework 的学习和理解,开发者可以更好地把握 Android 应用开发的核心技术,快速构建高质量的应用程序。 ### 回答3: Android framework在移动端操作系统中扮演了至关重要的角色,关系到整个Android系统的顺利运行和用户体验。以下是一些相关的面试题及其答案。 1. 什么是Android frameworkAndroid framework主要指的是整个Android操作系统中的框架架构,包括组件、服务、库等等。它提供了一系列的API和开发者工具,使得应用程序设计者可以轻松地在上面开发、部署和调试应用程序。 2. Android framework中的四大组件是什么? Android framework中的四大组件包括Activity、Service、Content Provider和Broadcast Receiver。这些组件大都是基于事件驱动模型来设计的,通过系统的内部通信协议来实现各个组件之间的交互,以使得应用程序能够运行得更加高效、稳定和流畅。 3. Android framework中的应用程序包含哪些基本结构? Android framework中的应用程序包含了Activity、Manifest、布局文件、资源文件等等。其中,Activity是应用程序的基本单元,Manifest是整个应用程序的配置文件,而布局文件和资源文件则用于定义应用程序的用户界面和各种资源。 4. 什么是Android Intent? Android Intent是从一个组件(如Activity、Service、Broadcast Receiver等)向另一个组件传递消息的一种机制。Intent本身就是一个数据结构,其包含了一些元数据(如操作名称、数据URI、类别、组件名称、附加的Extras等),以及一些标志(如FLAG_ACTIVITY_NEW_TASK、FLAG_ACTIVITY_SINGLE_TOP等)等。通过使用Intent,不同组件之间可以实现相互通信和交互。 5. Android中的View和ViewGroup有何区别? 在Android中,View代表着一个基本的GUI控件,如Button、TextView等,而ViewGroup代表着一个包含了多个View的容器,如LinearLayout、RelativeLayout等。简单来说,View是最基本、最简单的GUI控件,而ViewGroup则是一个可以包含多个View的容器。通过使用View和ViewGroup,应用程序可以创建出丰富、多样化的用户界面。 总之,掌握了以上的面试题及其答案,相信大家对Android framework的基础知识已经有了较为全面的认识。当然,Android framework作为一个十分庞大和复杂的系统,还有许多其他的知识点和技术需要我们进一步了解和掌握。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值