Android重点

0,Android启动流程

1,Fragment的add,replace的区别,如何解决重影

2,Frgament的remove,detach的区别

3,Android的view的深度,编写代码

4,Android的优化,view嵌套的比较多,如何优化?

  • ViewHolder,convertView
  • 分步加载,一次加载10个
  • 图片使用缓存(Picasso)

5,Service 有哪两种?有什么区别?

Android重点_第1张图片
Paste_Image.png

使用startService()方法启用服务,调用者与服务之间没有关连,即使调用者退出了,服 务仍然运行。使用bindService()方法启用服务,调用者与服务绑定在了一起,调用者一旦退出,服务也就终止,大有“不求同时生,必须同时死”的 特点。

  1. Service不是一个单独的进程 ,它和应用程序在同一个进程中
  2. Service不是一个线程,所以我们应该避免在Service里面进行耗时的操作
      
    有一点需要强调,如果有耗时操作在Service里,就必须开启一个单独的线程来处理,这点一定要铭记在心。

6,Service和IntentService的区别

IntentService:异步处理服务,新开一个线程:handlerThread在线程中发消息,然后接受处理完成后,会清理线程,并且关掉服务。

总结IntentService的特征有:

(1)会创建独立的worker线程来处理所有的Intent请求;

(2)会创建独立的worker线程来处理onHandleIntent()方法实现的代码,无需处理多线程问题;

(3)所有请求处理完成后,IntentService会自动停止,无需调用stopSelf()方法停止Service;

7,怎么理解Android里面的Task

Task就相当于应用(application)的概念。在开发人员眼中,开发一个Android程序,是做一个个独门独户的组件,但对于一般用户而言,它们感知到的,只是一个运行起来的整体应用,这个整体背后,就是Task。

Task,简单的说,就是一组以栈的模式聚集在一起的Activity组件集合。它们有潜在的前后驱关联,新加入的Activity组件,位于栈顶,并仅有在栈顶的Activity,才会有机会与用户进行交互。而当栈顶的Activity完成使命退出的时候,Task会将其退栈,并让下一个将跑到栈顶的Activity来于用户面对面,直至栈中再无更多Activity,Task结束。

你可能感兴趣的:(Android重点)