美文网首页面试题面试题
Android面试题5(通关2-1)

Android面试题5(通关2-1)

作者: 阿迪scar | 来源:发表于2019-06-28 21:35 被阅读35次

    1: Activity . fragment(事务) 包括跳转.旋转屏幕的生命周期:

    先展示一张大家众所周知activity流程图

    1:onCreate():创建Activity调用,用于Activity的初始化,还有个Bundle类型的参数,可以访问以前存储的状态。

    2:onStart():Activity在屏幕上对用户可见时调用,但还不可与用户交互

    3:onRestart():在activity停止后,在再次启动之前被调用。

    4:onResume():Activity开始和用户交互的时候调用,这时该Activity是在Activity栈的顶部,并接受用户输入。

    5:onPause():Activity被暂停时调用,也就是你要对你能看到的这个Activity说byebye的时候调用,这里可以做一些清理和保存工作

    6: onStop():Activity被停止或者Activity变成不可见时调用

    7:onDestroy():Activity被从内存中移除,一般发生在执行finish方法时或者Android回收内存的时候

    跳转页面时生命周期:

    A跳B,则点击跳转后,

    A:onPause->onSaveInstanceState->onStop

    再返回回来的话:

    A:onRestart->onStart->onResume->onPostResume

    旋转时:

    再切换回竖屏时:

    fragment生命周期


    2 : SVN.Git的使用以及常见问题:

    git常用快捷键:

    常见问题:

    svn 常用命令

    # 创建分支 svn copy http://example.com/repos/myproject/trunk http://example.com/repos/myproject/branches/branch1 -m 'create brancht

    ' # 切换分支 svn sw http://example.com/repos/myproject/trunk

    # 合并分支 svn sw http://example.com/repos/myproject/trunk svn merge http://example.com/repos/myproject/branches/branch1

    # 删除 svn delete/rm/del

    # 恢复 svn revert # svn ignore svn propset svn:ignore -F .svnignore .

    # 解决冲突 svn resolve –accept working a.txt svn ci -m ’some comment’ a.txt

    3:布局优化(标签,嵌套)

    综上,布局的优化其实说白了就是减少层级,越简单越好,减少overdraw,就能更好的突出性能。 下面介绍几种布局优化的方式:

    1:能用相对布局尽量用相对布局,少用线性布局,一般情况下用LinearLayout的时候总会比RelativeLayout多一个View的层级。而每次往应用里面增加一个View,或者增加一个布局管理器的时候,都会增加运行时对系统的消耗,因此这样就会导致界面初始化、布局、绘制的过程变慢。而通过扁平的RelativeLayout可以降低LinearLayout嵌套所产生布局树的层级

    2:另外一种手段就是使用抽象布局标签include、merge、ViewStub

    (1) include标签常用于将布局中的公共部分提取出来

    (2)merge标签是作为include标签的一种辅助扩展来使用,它的主要作用是为了防止在引用布局文件时产生多余的布局嵌套。

    (3) viewstub是view的子类。他是一个轻量级View, 隐藏的,没有尺寸的View。他可以用来在程序运行时简单的填充布局文件。

    3:Android最新的布局方式ConstaintLayout  

    4、利用Android Lint工具寻求可能优化布局的层次

    4:不同Android系统版本适配:

    参照上一篇:Android版本适配

    5:机型适配:

     企业开发一款APP前会考虑支持多平台的问题,APP根据在不同的平台有不同的开发语言,但在开发过程中需要考虑到不同手机机型兼容的问题,特别是Android 系统下手机类型繁多,如何在不同的平台不同机型上避免APP的功能和使用问题尽可能减少。一般来说Android的适配或者兼容性,基本都是系统,分辨率,厂商和机型适配的问题。

    1.操作系统适配,即适配Android 2.X,4.X,5.X……每个版本的操作系统,都有其特定的变化,对于App开发者而言,最重要的一点就是要明确每一个版本API Changed List。

    2.厂家型号,即适配三星、小米、Note5、米2……这块有两种适配方式,一是公版适配,二是定制开发。我们先从公版适配说起,这也是大多数App在用的方式。   公版适配这里指的是只存在一套代码,一个APK,要适配所有的厂商或机型。比较差的方式通常就是在代码中涉及到不同厂商或型号的地方通过if语句利用Build里的厂商标识等进行不同的策略,其结果就是适配得越多,if语句越复杂,越难维护。其实只要利用一个工厂模式就可以做得更灵活一些,

     3.硬件兼容。主要是对包括屏幕分、CPU、内存、外存、传感器等进行适配,其主要思路也是抽象隔离。 在数据层,最主要的是进行外部存储的适配,即考虑数据存储的位置、格式、易失性等。通常这种持久化的数据存储,都要考虑存储位置及其易失性问题,不要把关键数据保存在易失的外部存储当中,还有Android 5.X开始的外卡的不可访问性,进而,可以根据存储空间和数据特点考虑明文格式还是密文格式,压缩还是不压缩。

    相关文章

      网友评论

        本文标题:Android面试题5(通关2-1)

        本文链接:https://www.haomeiwen.com/subject/fwxecctx.html