我要投稿 投诉建议

android面试题(9)

时间:2021-02-19 10:25:34 面试试题 我要投稿

android面试题

  (4)数字证书都是有有效期的,Android只是在应用程序安装的时候才会检查证书的有效期。如果程序已经安装在系统中,即使证书过期也不会影响程序的正常功能。

  58. 什么是ANR 如何避免它?

  在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框。用户可以选择让程序继续运行,但是,他们在使用你的应用程序时,并不希望每次都要处理这个对话框。因此,在程序里对响应性能的设计很重要,这样,系统不会显示ANR给用户。

  Activity 5秒 broadcast10秒

  耗时的操作 worker thread里面完成, handler message…AsynTask , intentservice.等…

  59. android中的动画有哪几类,它们的特点和区别是什么?

  两种,一种是Tween动画、还有一种是Frame动画。

  Tween动画,这种实现方式可以使视图组件移动、放大、缩小以及产生透明度的变化;

  可以通过布局文件,可以通过代码

  1、 控制View的动画

  a) alpha(AlphaAnimation)

  渐变透明

  b) scale(ScaleAnimation)

  渐变尺寸伸缩

  c) translate(TranslateAnimation)

  画面转换、位置移动

  d) rotate(RotateAnimation)

  画面转移,旋转动画

  2、 控制一个Layout里面子View的动画效果

  a) layoutAnimation(LayoutAnimationController)

  b) gridAnimation(GridLayoutAnimationController)

  另一种Frame动画,传统的动画方法,通过顺序的播放排列好的图片来实现,类似电影。

  62. 说说mvc模式的原理,它在android中的运用。

  MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层。

  Android中界面部分也采用了当前比较流行的MVC框架,在Android中M就是应用程序中二进制的数据,V就是用户的界面。Android的界面直接采用XML文件保存的,界面开发变的很方便。在Android中C也是很简单的,一个Activity可以有多个界面,只需要将视图的ID传递到setContentView(),就指定了以哪个视图模型显示数据。

  在Android SDK中的数据绑定,也都是采用了与MVC框架类似的方法来显示数据。在控制层上将数据按照视图模型的要求(也就是Android SDK中的Adapter)封装就可以直接在视图模型上显示了,从而实现了数据绑定。比如显示Cursor中所有数据的ListActivity,其视图层就是一个ListView,将数据封装为ListAdapter,并传递给ListView,数据就在ListView中显示。

  63. 通过点击一个网页上的url 就可以完成程序的自动安装,描述下原理

  Day11 AddJavascriptInterface

  new Object{

  callphone();

  installapk();

  }

  64,Service和Activity在同一个线程吗

  默认情况同一线程 main主线程 ui线程

  65,java中的soft reference是个什么东西

  StrongReference 是 Java 的默认引用实现, 它会尽可能长时间的存活于 JVM 内, 当没有任何对象指向它时 GC 执行后将会被回收

  SoftReference 会尽可能长的保留引用直到 JVM 内存不足时才会被回收(虚拟机保证), 这一特性使得 SoftReference 非常适合缓存

  应用详细见豆瓣客户端图片的缓存

  66,udp连接和TCP的不同之处

  tcp/滑动窗口协议. 拥塞控制.

  udp 不关心数据是否达到,是否阻塞

  画面优先. tcp

  流畅优先 udp

  67, android开发中怎么去调试bug

  逻辑错误

  1.断点 debug

  2. logcat ,

  界面布局,显示 hierarchyviewer.bat

  68.service里面可以弹土司么

  可以

  69.写10个简单的linux命令

  cat ls ps psw wc mv rm cd ping tracert find grep tail vi gcc make ifconfig

  startup dhcp

  70 JNI调用常用的两个参数

  JNIEnv *env, jobject javaThis

  71. 书写出android工程的目录结构

  src

  android. jar

  asset

  res

  gen

  manifest

  72. ddms 和traceview的区别.

  daivilk debug manager system

  1.在应用的主activity的onCreate方法中加入Debug.startMethodTracing("要生成的traceview文件的名字");

  2.同样在主activity的onStop方法中加入Debug.stopMethodTracing();

  3.同时要在AndroidManifest.xml文件中配置权限

  

  3.重新编译,安装,启动服务,测试完成取对应的traceview文件(adb pull /sdcard/xxxx.trace)。

  4.直接在命令行输入traceview xxxxtrace,弹出traceview窗口,分析对应的应用即可。

  traceview 分析程序执行时间和效率

  KPI : key performance information : 关键性能指标:

  splash界面不能超过5秒

  从splash 界面加载mainactivity 不能超过0.7秒

  74. 利用mvc的模式重构代码

  1) 重构前的代码Bmi.java:

  package com.demo.android.bmi;

  import java.text.DecimalFormat;

  import android.app.Activity;

  import android.os.Bundle;

  import android.view.View;

  import android.view.View.OnClickListener;