移动开发——安卓开发面试必备的基础知识一

各位朋友,大家好:

       我是安卓开发者SGY,这是我写的第一篇博客,主要对安卓开发面试必备的基础知识进行梳理,进行深入理解还需查阅相关资料,有不合理的地方希望各位朋友及时提出宝贵意见,我会及时进行修正。

       一、关于Activity

       关于Activity必须要了解的内容有:Activity的生命周期、android任务栈、Activity启动模式、scheme跳转协议。

       1.1  什么是Activity

              Activity是应用与用户交互的接口,它提供了一个界面让用户进行点击、滑动等操作

        1.2 activity生命周期

              通用的生命周期图就不贴了,网上都能找到

              共7种函数

              Activity启动-->onCreate()-->onStart()-->onResume()             onResume()方法执行后可以进行交互

              Activity不可见时(如点击home)-->onPause()-->onStop()

              再次回到Activity时,-->onRestart()-->onStart()-->onResume()     onRestart()方法是在Activity由不可见变为可见时执行

              退出Activity时onPause()-->onStop()-->onDestroy()        onDestroy()方法中可做资源的回收与释放

              知识点:android进程优先级       前台>可见>服务>后台>

        1.3 activity启动模式

              共4种

               标准:standard

               栈顶:singletop

               栈内:singletask

               全局:singleinstance

        1.4 scheme跳转协议

               通过注册scheme可在App页面内跳转,从H5页面跳转到App,从一个App跳转到另一个App

       二、关于Fragment

       关于Fragment必须要了解的内容有:Fragment的生命周期、Fragment之间的通信Fragment管理器

               Fragment相比Activity更节省内存,UI切换更舒适

               动态添加Fragment
        FragmentManager fragmentManager = getSupportFragmentManager();
        FragmentTransaction transaction = fragmentManager.beginTransaction();

        RightFragment rightFragment = new RightFragment();
        transaction.add(R.id.id_fragment_right,rightFragment,"rightFragment");

        transaction.commit();
               FragmentPagerAdapter与FragmentStatePagerAdapter的区别

       由于FragmentPagerAdapter在destroyItem时使用detach方法将Fragment的UI与Activity的UI脱离,而FragmentStatePagerAdapter在destroyItem时使用remove方法将Fragment内存回收,所以,FragmentStatePagerAdapter更适合fragment较多的情况

        2.1 Fragment的生命周期

             共有11种函数,在fragment的view创建之后,在onPause之前,activity的周期是先于它运行的,自onPause之后,fragment的周期的先于activity运行的。

移动开发——安卓开发面试必备的基础知识一_第1张图片

        2.2 Fragment通信(需要代码实践)

               2.2.1  在Fragment中调用Activity的方法  getActivity

               2.2.2  在Activity中调用Fragment的方法  接口回调

               2.2.3  在Fragment中调用Fragment的方法  findFragmentById

               Fragment常用方法:replace(),add(),remove()

       三、关于Service

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

                Service是运行在主线程中的,所以不能进行耗时操作

                Service生命周期,先上图

移动开发——安卓开发面试必备的基础知识一_第2张图片

                启动服务的生命周期:onCreate()、onStartCommand()、onDestory()

                绑定服务的生命周期:onCreate()、onBind()、onUnbind()、onDestory()

                但是要注意的是onBind()只被执行一次,可以绑定已经启动的服务

        3.1 Service启动方式

                startService()

                步骤:定义一个类继承Service,注册Service,使用Context的startService(Intent)方法启动。

                bindService()

                步骤:创建BindService服务端继承自Service,在类中实现IBinder接口的实例对象并tigong公共方法给客户端调用,从onBind()回调方法返回此Binder实例,在客户端中,从onServiceConnected()回调方法接收Binder,并使用提供的方法调用绑定服务

       四、关于BroadcastReceiver

                BroadcastReceiver是一种广泛运用的在应用程序之间传输信息的机制,android中广播内容是一个Intent,可以携带要发送的数据

                广播种类:normal  Broadcast;system Broadcast;local Broadcast

                其它知识点:

                Binder是一种通信机制,通常用于跨进程通信

                AIDL是一个缩写,全称是Android Interface Definition Language,也就是Android接口定义语言,主要用于多进程并发的进程间通信

内容参考自慕课Doc Mike老师视频,后续文章持续更新,希望大家共同进步!

你可能感兴趣的:(安卓开发)