首页 > 其他分享 >面试 - Android 几个面试题

面试 - Android 几个面试题

时间:2023-02-22 12:07:27浏览次数:32  
标签:面试题 调用 面试 线程 进程 Android saveInsanceState 方法 view


1.requestLayout, invalidate和postInvalidate的异同?

答:

(1)、android中实现view的更新有几种方法?

你知道吗?其实android中实现view的更新有两种方法,一种是invalidate,另一种是postInvalidate,其中前者是在UI线程自身中使用,而后者在非UI线程中使用。

怎么说呢?Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中调用。 鉴于此,如果要使用invalidate的刷新,那我们就得配合handler的使用,使异步非ui线程转到ui线程中调用,如果要在非ui线程中直接使用就调用postInvalidate方法即可,这样就省去使用handler的烦恼。

(2)、requestLayout在什么时候用呢?

当view确定自身已经不再适合现有的区域时,该view本身调用这个方法要求parent view(父类的视图)重新调用他的onMeasure onLayout来重新设置自己位置。特别是当view的layoutparameter发生改变,并且它的值还没能应用到view上时,这时候适合调用这个方法。

2.程序、任务、进程和线程的区别 ?

答:

程序(program)只是一组指令的有序集合。
进程(process)常常被定义为程序的执行。可以把一个进程看成是一个独立的程序,在内存中有其完备的数据空间和代码空间。一个进程所拥有的数据和变量只属于它自己。
线程(thread)则是某一进程中一路单独运行的程序。也就是说,线程存在于进程之中。一个进程由一个或多个线程构成,各线程共享相同的代码和全局数据,但各有其自己的堆栈。
任务(task)是最抽象的,是一个一般性的术语,指由软件完成的一个活动。一个任务既可以是一个进程,也可以是一个线程。简而言之,它指的是一系列共同达到某一目的的操作。

3.android onCreate(Bundle savedInstanceState)中的savedInstanceState参数 ?

答:

onsaveInsanceState方法是用来保存Activity的状态的。当一个Activity在生命周期结束前,会调用该方法保存状态。这个方法有一个参数名称与onCreate方法参数名称相同。如下所示:

public void onSaveInsanceState(Bundle saveInsanceState){
super.onSaveInsanceState(saveInsanceState);
}

在实际应用中,当一个Activity结束前,如果需要保存状态,就在onsaveInsanceState中,将状态数据以key-value的形式放入到saveInsanceState中。这样,当一个Activity被创建时,就能从onCreate的参数saveInsanceState中获得状态数据。

4.在android中,请简述jni的调用过程?

答:

1)安装和下载Cygwin,下载 Android NDK
2)在ndk项目中JNI接口的设计
3)使用C/C++实现本地方法
4)JNI生成动态链接库.so文件
5)将动态链接库复制到java工程,在java工程中调用,运行java工程即可。
6)还不会,伤心


标签:面试题,调用,面试,线程,进程,Android,saveInsanceState,方法,view
From: https://blog.51cto.com/u_15976424/6078827

相关文章

  • android root app 无法umount
    app已经有root权限了.在执行umount/sbin时候总是不成功,但是在adb的shell里是可以的.研究半天后发现,原来app的mount空间被修改了.用以下方法解决问.echoumount-......
  • Android布局中的空格以及占一个汉字宽度的空格的实现
    在Android布局中进行使用到空格,以便实现文字的对齐。那么在Android中如何表示一个空格呢?空格: 窄空格: 一个汉字宽度的空格:   【用两个空格( ......
  • android.permission.MOUNT_UNMOUNT_FILESYSTEMS添加权限报错
    <!--这是在sd卡内创建和删除文件权限--><uses-permissionandroid:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/><uses-permissionandroid:name="android.permi......
  • Android-ColorMatrixColorFilter设置图片灰色
       我们在编程时有时需要对图片进行处理,比如将图片做成灰色的效果。那么就要用到android为我们提供的颜色矩阵类ColorMatrix。  先介绍一下ColorMatrix这个类,这是一......
  • android 白色透明度,Android 透明度alpha换算表
    1、#ff000000此为16进制颜色代码,前2位ff为透明度,后6位为颜色值(000000为黑色,ffffff为白色,可以用ps等软件获取)。而#ff000000的ff(startColorstr的前两位)是代表不透明度的......
  • Android 打包生成APK文件时报lintOptions配置错误
    解决办法,在build.​​gradle​​里面的buildTypes同级添加如下代码,放在android下面lintOptions{checkReleaseBuildsfalseabortOnErrorfalse}checkReleaseBuilds=fal......
  • Android之SeekBar(0在中间)
    公司UI想出一个SeekBar,中间是0,往左是负的,往右是正的,自带的完全无法满足,只能自己撸了,想了一下,有些思路主要是Canvas类画直线,画圆,画圆角矩形,看看效果效果看着还可以,因为要支......
  • Android单元测试
    什么是单元测试?单元测试就是针对类中的某一个方法进行验证是否正确的过程,单元就是指独立的粒子,在Android和Java中大都是指方法。为什么要进行单元测试?使用单元测试可以提高......
  • MASA MAUI Plugin (八)Android相册多选照片(Intent 方式)
    背景MAUI的出现,赋予了广大.Net开发者开发多平台应用的能力,MAUI是Xamarin.Forms演变而来,但是相比Xamarin性能更好,可扩展性更强,结构更简单。但是MAUI对于平台相关的实现并......
  • 面试官:怎么去除 List 中的重复元素?我一行代码搞定,赶紧拿去用!
    问题上次栈长给大家分享了《带了一个3年的开发,不会循环删除List中的元素,我简直崩溃!!》,上次也给大家留了个小话题:怎么去除List<String>中的重复元素呢?虽然两个话......