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

        本篇文章主要对安卓开发面试必备的基础知识进行梳理。

       一、关于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运行的。

        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生命周期,先上图

                启动服务的生命周期: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接口定义语言,主要用于多进程并发的进程间通信

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值