Android面试点总结

原创 2016年05月31日 21:57:31

 serializable和parcelable的区别 

两种都是用于支持序列化、反序列化话操作,两者最大的区别在于存储媒介的不同,Serializable使用IO读写存储在硬盘上,而Parcelable是直接在内存中读写,很明显内存的读写速度通常大于IO读写,所以在Android中通常优先选择Parcelable。

2  Fragment之间传递数据  Fragment和Activity传递数据

 Fragment之间可以用fragment.setArguments  和 getArguments 

Fragment和Activity之间传递 

一种最简单的Fragment获取 getActivity().

或者Activity实现一个接口,Fragment在onAttach方法中,将该Activity转化为该接口,在需要调用的时候回调


3 内存溢出和内存泄漏的区别

内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。

内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。

memory leak会最终会导致out of memory!

一句话Memory Leak泄露不会崩溃,但多了会有可能导致OOM崩溃 例子:比如在Activity中注册了一个广播接收器,但是在页面关闭的时候没有进行unRegister,就会出现内存溢出的现象。如果我们的java运行很久,而这种内存泄露不断的发生,最后就没内存可用了,最终就是我们看到的OOM错误

Bitmap的不当处理极可能造成OOM,绝大多数情况应用程序OOM都是因这个原因出现的。Bitamp位图是Android中当之无愧的胖子,所以在操作的时候必须小心。
及时释放recycle。由于Dalivk并不会主动的去回收,需要开发者在Bitmap不被使用的时候recycle掉

4 android 6.0运行时权限问题

Activity和Fragment调用相应的requestPermissions

 详细链接:http://www.w2bc.com/article/android-6-0-runtime-permission

Android 6.0在我们原有的AndroidManifest.xml声明权限的基础上,又新增了运行时权限动态检测,以下权限都需要在运行时判断:

身体传感器
日历
摄像头
通讯录
地理位置
麦克风
电话
短信
存储空间
我们需要在build.gradle中声明targetSdkVersion为23
检查并申请权限
我们需要在用到权限的地方,每次都检查是否APP已经拥有权限,比如我们有一个下载功能,需要写SD卡的权限,我们在写入之前检查是否有WRITE_EXTERNAL_STORAGE权限,没有则申请权限

   if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
              != PackageManager.PERMISSION_GRANTED) {
          //申请WRITE_EXTERNAL_STORAGE权限
          ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
                  WRITE_EXTERNAL_STORAGE_REQUEST_CODE);
      }

请求权限后,系统会弹出请求权限的Dialog 

用户选择允许或需要后,会回调onRequestPermissionsResult方法, 该方法类似于onActivityResult

5  PendingIntent和Intent的区别

PendingIntent这个类用于处理即将发生的事情。比如在通知Notification中用于跳转页面,但不是马上跳转。 可以理解为延迟执行的intent,PendingIntent是对Intent一个包装

Intent 是及时启动,intent 随所在的activity 消失而消失。 

Intent一般是用作Activity、Sercvice、BroadcastReceiver之间传递数据,而Pendingintent,一般用在 Notification上

6 Activity的两种启动方式和Intent解析

intent解析 :http://www.cnblogs.com/engine1984/p/4146621.html

一种是显示启动 

  • Intent intent=new Intent(this,OtherActivity.class);  //方法1 直接class类名跳转
  • Intent intent2=new Intent();
  • intent2.setClass(this, OtherActivity.class);//方法2 setClass跳转
  • intent2.setClassName(this, "com.zy.MutiActivity.OtherActivity");  //方法3 包名跳转 此方式可用于打开其它的应用 
  • intent2.setComponent(new ComponentName(this, OtherActivity.class));  //方法4
  • startActivity(intent2);
一种是隐式启动

隐式调用方法(只要action、category、data和要跳转到的Activity在AndroidManifest.xml中设置的匹配就OK



spring面试知识点

原文地址:https://www.javacodegeeks.com/2014/05/spring-interview-questions-and-answers.html 目录 Spri...
  • u010923921
  • u010923921
  • 2016年06月29日 16:13
  • 763

数据库面试点总结

1、Sql 约束http://www.cnblogs.com/henw/archive/2012/08/15/2639510.html2、修改列类型MySQL:ALTER TABLE tableNam...
  • jeffleo
  • jeffleo
  • 2017年03月28日 19:52
  • 228

Android面试点2-----Broadcast

1、sendBroadcast 无序广播,会异步的发送给所有Recevier,接受广播的顺序是不确定的,有可能是同时的。  sendOrderBroadcast 有序广播,广播会先发送给优先级高(an...
  • qq_37136511
  • qq_37136511
  • 2017年09月18日 13:03
  • 34

Android面试点备份

# activity在attach方法的时候创建window对象,之后的activity在setcontentview的时候调用的是window的setcontentview方法,首先判断decorv...
  • cuitzyt
  • cuitzyt
  • 2016年09月29日 11:01
  • 141

中储粮项目小规模试点总结报告

小规模试点总结报告 1、 你在小规模试点中完成的主要工作是什么?l         负责沛县国储库的总体工作:(1)       沛县国储库的试点工作计划安排以及工作汇报;(2)       粮库人员...
  • sanwawa
  • sanwawa
  • 2006年06月23日 23:10
  • 1759

面试点(android)

android meta-data ? Android permission 与 use-permission android:launchMode andr...
  • zhao7134
  • zhao7134
  • 2014年06月18日 22:56
  • 375

一个STL的面试题.

vector  array; array.push_back( 1 ); array.push_back( 2 ); array.push_back( 3 ); for( vector ::size_...
  • zdl1016
  • zdl1016
  • 2008年05月17日 23:28
  • 4677

关于Android Service面试点总结

一、什么是Service? Service通常总是称之为“后台服务”. Service(服务)是一个一种可以在后台执行长时间运行操作而没有用户界面的应用组件。服务可由其他应用组件启动(如A...
  • lanxingfeifei
  • lanxingfeifei
  • 2017年11月01日 10:31
  • 101

秒杀系统的一点思考

秒杀系统难点往往是短时间内对数据进行读写,然后造成读写上的一些冲突,甚至锁非常严重.当然知道难点在哪里,我们自然就有办法解决,人类智慧无限,办法总比困难多. 简单说来也就两点,限流和提升关键点的性能....
  • bemavery
  • bemavery
  • 2017年08月21日 13:19
  • 18453

Spring面试总结

1、什么是Spring框架?Spring框架有哪些主要模块? Spring框架是一个为Java应用程序的开发提供了综合、广泛的基础性支持的Java平台。Spring帮助开发者解决了开发中基础性的问题...
  • LiuHang03
  • LiuHang03
  • 2015年12月02日 13:37
  • 4213
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android面试点总结
举报原因:
原因补充:

(最多只允许输入30个字)