Android--面试题整理(四)

简介: 版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/chaoyu168/article/details/51728623 31. 请解释下Android程序运行时权限与文件系统权限的区别。
版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/chaoyu168/article/details/51728623

31. 请解释下Android程序运行时权限与文件系统权限的区别。

   Android程序执行需要读取到安全敏感项必需在androidmanifest.xml中声明相关权限请求, 打电话,访问网络,获取坐标,写sd卡,读写联系人等..安装的时候会提示用户…

-rw------ 私有权限 -rw-rw-rw- 全局可读可写  linux系统的文件权限

文件系统的权限是linux权限. 比如说sharedpreference里面的Context.Mode_private

 Context.Mode.world_read_able  Context.Mode_world_writeable 

777自己 同组 其他

 

root 是危险的行为

32. 系统上安装了多种浏览器,能否指定某浏览器访问指定页面?

Intent .setAction(VIEW)

setData("http://")

   找到对应的浏览器的意图,传递数据URI , 激活这个意图

       Intent intent = new Intent();

 // com.android.browser/.BrowserActivity

      intent.setClassName("com.android.browser", "com.android.browser.BrowserActivity");

      Intent.setdata(uri);

queryintentactivity(); 推广自己产品的操作

 

33. 对android主线程的运用和理解。

   主ui线程不能执行耗时的操作,


34. 对android虚拟机的理解,包括内存管理机制垃圾回收机制。

虚拟机很小,空间很小,谈谈移动设备的虚拟机的大小限制默认 16M

谈谈加载图片的时候怎么处理大图片的,

 

垃圾回收,没有引用的对象,在某个时刻会被系统gc掉.

System.gc(); 不是立刻去执行垃圾回收.

Moblietv 获取300 30K  频道.icon gallery

手机电视. 视频点播. Onstop() 通知gc();

别的界面图片 白板.

 

 

遇到一个不可复现的bug, 不解决 won'tfix

 

35. Framework工作方式及原理,Activity是如何生成一个view的,机制是什么。

反射 , 配置文件

 可以讲下activity的源码,比如说 每个activity里面都有window.callback和keyevent.callback,一些回调的接口或者函数吧. 框架把activity创建出来就会调用里面的这些回调方法,会调用activity生命周期相关的方法.

setContentView();

普通的情况:

Activity创建一个view是通过ondraw 画出来的, 画这个view之前呢,还会调用onmeasure方法来计算显示的大小.

 

Surfaceview 直接操作硬件  opengl .GLSurfaceView

图像要想被显示到界面上, 需要设备显卡, 显存.

写到显存.

 

 

 

36.  android本身的一些限制,比如apk包大小限制,读取大文件时的时间限。

 这个问题问的有问题, apk包大小限制不好说,

 极品飞车有100M 还是能装到手机上,

 

// apk 资源文件素材.

世面google market 上大程序  主程序 很小 5~10M    下载sdcard

15分钟之内 申请退款

apk包,精简包, 素材存放在服务器. 游戏程序.

 

读大文件的时间限制应该是main线程里面的时间限制吧.5秒.

 

37. 如何加载的音乐信息,如何改善其效率。

Mp3 作者信息 专辑 图片 歌词信息  id3id3v1 id3v2

Android提供mediascanner,mediaStore等接口, 音乐文件的信息都会存放到系统的数据库表中,可以通过content provider获取,

 

显示出来,改善效率,是个常见问题, 可以从以下几个方面作答,

分批加载数据, 延时加载数据, 合理使用缓存等...

 

Java虚拟机, 目标, 加快java程序执行速度

预先加载一些 都会的使用的大的class的字节码, 提前加载.

时间换时间

空间换时间 

 

 

38. ListView如何提高其效率?

 

 复用convertview, 历史的view对象

异步加载数据,  分页加载数据, onscallLinster();

Staticclass ViewHolder

使用静态的view对象 避免创建过多的view.

 

 

把下载后的数据缓存到数据库里 

客户端和服务器 协同 作战 .

Http 请求

If-modify-since: 检查数据是否更新  1.html 2001年  302 拿缓存

 

 

39. 启动应用后,改变系统语言,应用的语言会改变么?

 

40. 启动一个程序,可以主界面点击图标进入,也可以从一个程序中跳转过去,二者有什么区别?

 区别是根据activity在manifest里面的配置,这个activity可能会放在不同的task栈里面

intent 设置的flag  flag_new_task
目录
相关文章
|
1月前
|
消息中间件 存储 Java
Android面试高频知识点(2) 详解Android消息处理机制(Handler)
Android 消息处理机制估计都被写烂了,但是依然还是要写一下,因为Android应用程序是通过消息来驱动的,Android某种意义上也可以说成是一个以消息驱动的系统,UI、事件、生命周期都和消息处理机制息息相关,并且消息处理机制在整个Android知识体系中也是尤其重要,在太多的源码分析的文章讲得比较繁琐,很多人对整个消息处理机制依然是懵懵懂懂,这篇文章通过一些问答的模式结合Android主线程(UI线程)的工作原理来讲解,源码注释很全,还有结合流程图,如果你对Android 消息处理机制还不是很理解,我相信只要你静下心来耐心的看,肯定会有不少的收获的。
89 3
Android面试高频知识点(2) 详解Android消息处理机制(Handler)
|
1月前
|
Android开发
Android面试高频知识点(1) 图解 Android 事件分发机制
在Android开发中,事件分发机制是一块Android比较重要的知识体系,了解并熟悉整套的分发机制有助于更好的分析各种点击滑动失效问题,更好去扩展控件的事件功能和开发自定义控件,同时事件分发机制也是Android面试必问考点之一,如果你能把下面的一些事件分发图当场画出来肯定加分不少。废话不多说,总结一句:事件分发机制很重要。
92 9
|
1月前
|
XML 前端开发 Android开发
Android面试高频知识点(3) 详解Android View的绘制流程
View的绘制和事件处理是两个重要的主题,上一篇《图解 Android事件分发机制》已经把事件的分发机制讲得比较详细了,这一篇是针对View的绘制,View的绘制如果你有所了解,基本分为measure、layout、draw 过程,其中比较难理解就是measure过程,所以本篇文章大幅笔地分析measure过程,相对讲得比较详细,文章也比较长,如果你对View的绘制还不是很懂,对measure过程掌握得不是很深刻,那么耐心点,看完这篇文章,相信你会有所收获的。
63 2
|
2月前
|
监控 Android开发 开发者
Android经典面试题之实战经验分享:如何简单实现App的前后台监听判断
本文介绍在Android中判断应用前后台状态的两种方法:`ActivityLifecycleCallbacks`和`ProcessLifecycleOwner`。前者提供精细控制,适用于需针对每个Activity处理的场景;后者简化前后台检测,适用于多数应用。两者各有优劣:`ActivityLifecycleCallbacks`更精确但复杂度高;`ProcessLifecycleOwner`更简便但可能在极端场景下略有差异。根据应用需求选择合适方法。
26 2
|
2月前
|
安全 Android开发 Kotlin
Android经典面试题之Kotlin中常见作用域函数
**Kotlin作用域函数概览**: `let`, `run`, `with`, `apply`, `also`. `let`安全调用并返回结果; `run`在上下文中执行代码并返回结果; `with`执行代码块,返回结果; `apply`配置对象后返回自身; `also`附加操作后返回自身
36 8
|
2月前
|
Android开发 开发者
Android经典面试题之SurfaceView和TextureView有什么区别?
分享了`SurfaceView`和`TextureView`在Android中的角色。`SurfaceView`适于视频/游戏,独立窗口低延迟,但变换受限;`TextureView`支持复杂变换,视图层级中渲染,适合动画/视频特效,但性能略低。两者在性能、变换、使用和层级上有差异,开发者需按需选择。
38 1
|
2月前
|
SQL Java Unix
Android经典面试题之Java中获取时间戳的方式有哪些?有什么区别?
在Java中获取时间戳有多种方式,包括`System.currentTimeMillis()`(毫秒级,适用于日志和计时)、`System.nanoTime()`(纳秒级,高精度计时)、`Instant.now().toEpochMilli()`(毫秒级,ISO-8601标准)和`Instant.now().getEpochSecond()`(秒级)。`Timestamp.valueOf(LocalDateTime.now()).getTime()`适用于数据库操作。选择方法取决于精度、用途和时间起点的需求。
37 3
|
2月前
|
SQL 安全 Java
Android经典面试题之Kotlin中object关键字实现的是什么类型的单例模式?原理是什么?怎么实现双重检验锁单例模式?
Kotlin 单例模式概览 在 Kotlin 中,`object` 关键字轻松实现单例,提供线程安全的“饿汉式”单例。例如: 要延迟初始化,可使用 `companion object` 和 `lazy` 委托: 对于参数化的线程安全单例,结合 `@Volatile` 和 `synchronized`
38 6
|
2月前
|
XML Android开发 数据格式
Android面试题之DialogFragment中隐藏导航栏
在Android中展示全屏`DialogFragment`并隐藏状态栏和导航栏,可通过设置系统UI标志实现。 记得在布局文件中添加内容,并使用`show()`方法显示`DialogFragment`。
43 2
|
1月前
|
Java 开发工具 Android开发
Android经典面试题之开发中常见的内存泄漏,以及如何避免和防范
本文介绍Android开发中内存泄漏的概念及其危害,并列举了四种常见泄漏原因:静态变量持有Context、非静态内部类、资源未释放及监听器未注销。提供了具体代码示例和防范措施,如使用ApplicationContext、弱引用、适时释放资源及利用工具检测泄漏。通过遵循这些建议,开发者可以有效提高应用稳定性和性能。
34 0