广州酷狗计算机科技在线测评题 Android岗位

选择题 15道
1
集合类是否线程安全
Vector 线程安全
ArrayList 非线程安全
LinkedList 非线程安全
Hashtable 线程安全
HashMap 非线程安全
TreeMap 非线程安全

2
Tween动画
alpha 渐变
scale 大小
translate 移动
rotate 旋转

3
Activity各个什么周期 获取焦点

onCreate Activity正在被创建 方法中做一些初始化的工作 加载界面布局 初始化数据等

onRestart Activity重新启动

onStart Activity正在启动 已经可见 但是无法和用户交互

onResume Activity可见 出现在前台并开始活动

onPause Activity正在停止

onStop Activity即将停止 可做稍微重量级的回收工作

onDestroy Activity即将被销毁 可做回收工作和最终的资源释放

4
自定义View过程

onMeasure()、onLayout()、onDraw()
测量 布局 绘制

 5
ANR时间

输入事件 5秒
BroadcastReceiver onReceive() 10秒
Service 各个什么周期 20秒

 6
android:layout_weight 使用范围

Linearlayout

 二  简答题 4道
 1

1 Handler机制
异步消息处理线程启动后会进入一个无限的循环体中 每循环一次 从其内部的消息队

列中取出一个消息 然后回调相应的消息处理函数 执行完成一个消息后则继续循环
若消息队列为空 线程阻塞等待
代码执行流程
1、首先Looper.prepare()在本线程中保存一个Looper实例,然后该实例中保存一个

MessageQueue对象;因为Looper.prepare()在一个线程中只能调用一次,所以

MessageQueue在一个线程中只会存在一个。
2、Looper.loop()会让当前线程进入一个无限循环,不端从MessageQueue的实例中读

取消息,然后回调msg.target.dispatchMessage(msg)方法。
3、Handler的构造方法,会首先得到当前线程中保存的Looper实例,进而与Looper实

例中的MessageQueue想关联。
4、Handler的sendMessage方法,会给msg的target赋值为handler自身,然后加入

MessageQueue中。
5、在构造Handler实例时,我们会重写handleMessage方法,也就是

msg.target.dispatchMessage(msg)最终调用的方法。

Message 是在线程之间传递的消息,它可以在内部携带少量的信息,用于在不同线程

之间交换数据
  Message 的what 字段,除此之外还可以使用arg1 和arg2 字段来携带一些整型

数据,
  使用obj 字段携带一个Object 对象
Handler 处理者 主要是用于发送和处理消息的 发送消息一般是使用Handler 的

sendMessage()方法,
  而发出的消息经过一系列地辗转处理后,最终会传递到Handler 的

handleMessage()方法中
MessageQueue
  消息队列 存放所有通过Handler 发送的消息。这部分消息会一直存在于消息队

列中,等待被处理。
   每个线程中只会有一个MessageQueue对象
Looper
  每个线程中的MessageQueue 的管家,调用Looper 的loop()方法后,就会
  进入到一个无限循环当中,然后每当发现MessageQueue 中存在一条消息,就会

将它取
  出,并传递到Handler 的handleMessage()方法中。每个线程中也只会有一个

Looper 对象

 2

Binder机制
Binder是Android系统中的一种IPC进程间通信结构。
  Binder的整个设计是C/S结构,客户端进程通过获取服务端进程的代理,并通过

向这个代理接口方法中读写数据来完成进程间的数据通信。
  Android之所以选择Binder,我觉得有2个方面的原因。
  1是安全,每个进程都会被Android系统分配UID和PID,不像传统的在数据里加入

UID,这就让那些恶意进程无法直接和其他进程通信,进程间通信的安全性得到提升


  2是高效,像Socket之类的IPC每次数据拷贝都需要2次,而Binder只要1次,在手

机这种资源紧张的情况下很重要。

3
内存泄漏的定义和常见原因
进程中某些对象(垃圾对象)已经没有使用价值了,但是它们却可以直接或间接地引

用到gc roots导致无法被GC回收。无用的对象占据着内存空间,使得实际可使用内存

变小,形象地说法就是内存泄漏了。
1 静态变量导致
2 单例模式导致
3 属性动画导致

4
ListView的优化 解决图片错乱
1 convertView的使用,主要优化加载布局问题
2 内部类ViewHolder的使用 主要优化getView方法中每次回调用findviewByID()方法

来获取一次控件的代码。
3 图像加载框架的使用

时间: 2024-10-14 17:36:45

广州酷狗计算机科技在线测评题 Android岗位的相关文章

在线音乐播放器-----酷狗音乐api接口抓取

首先身为一个在线音乐播放器,需要前端和数据库的搭配使用. 在数据库方面,我们没有办法制作,首先是版权问题,再加上数据量.所以我们需要借用其他网络播放器的数据库. 但是这些在线播放器,如百度,酷狗,酷我等在线音乐播放器,是不会提供他们的数据库接口的,所以这个我们需要,在线抓取这些在线音乐播放器的接口,首先,这个事情,是属于违规的.是属于侵犯这些公司的版权的.所以,不能用于商业用途 我们以酷狗音乐为例子,抓取他的连接数据库的API接口 我是用的是谷歌,进入私密模式,因为在这种模式下,不会缓存歌曲 1

QQ音乐/酷狗音乐锁屏控制实现原理

我实现的效果 混乱的锁屏控制 Android自4.0版本, 也就是API level 14开始, 加入了锁屏控制的功能, 相关的类是RemoteControlClient, 这个类在API level 21中被标记为deprecated, 被新的类MediaSession所替代. 我们的音乐App中最开始使用的是原生锁屏控制API, 说实话这个API不好用, 遇到了一些小坑, 最要命的是不同品牌的手机, 锁屏界面长的还不一样, 就连我自己都没见过原生4.0的锁屏控制界面是什么样的. 国内的手机厂

Qt实战之酷狗音乐

此项目仅仅实现实现基本功能: 界面的模仿. 歌词功能的实现.歌曲在线试听和下载. 专辑写真的播放. 在线歌词搜索.以及主要的button功能. 界面没有採用设计器. 所有手写规划.这里先放出效果图. 这段时间忙,等有空时,将又一次架构.一步一步带领新手写出简版酷狗音乐.实现MV等播放. 播放时的单词界面: 实现平滑滚动效果  当中背景写真来源于酷我音乐... 可点击进度条快进快退  .. 歌词会随之修改 . . 歌词支持拉动   鼠标在歌词部分按下后出现横线(可怜的鼠标没截图到. .. ) 然后

闲来无事研究一下酷狗缓存文件kgtemp的加密方式

此贴为本人原创,转载请注明出处 序 前几天更新了被打入冷宫很久的酷狗,等进入之后就感觉菊花一紧----试 听 居 然 都 要 开 通 音 乐 包(高品和无损)才行了,WTF! 这意味着以前缓存的都听不了了,本着好马不吃回头草的原则,不打算去降级了,下载PJ版的又担心被植入恶意代码,心好累╮(╯▽╰)╭ 作为一个程序猿,岂能被你这小阴招就击败,定要给你点颜色看看! 探索 首先对比了一下缓存文件和下载好的mp3文件,发现缓存文件多了1024个字节,而且对比了几个缓存文件,前1024个字节都一样,看来

酷狗音乐7635 VIP去广告绿色清爽版

昨天,酷狗音乐官方又例行悄悄上架了最新包V7635,新版去掉了“附近”功能,这次又增加智能限速功能,同时优化加快了启动速度,每次总有新功能,推荐酷狗迷们下载更新! 酷狗音乐7.6新版特性:次世代音效:极智丽音.超重低音.纯净人声,混合电台.高品质电台.一键智能推荐.单曲智能推荐.观看真人演唱.传歌到手机.手机投放控制PC.音频输出支持ASIO等特性. 此VIP去广告绿色清爽版,由zd423专注持续修改,不带广告弹窗干扰 ,普通用户登陆为VIP会员,免费畅享VIP试听及下载加速.免登陆试听下载无损

酷狗mac版如何新建歌单?酷狗mac版收藏歌单方法

很多朋友们都喜欢使用酷狗音乐听音乐,不过最近有使用酷狗mac音乐播放器的Mac新用户,想要新建歌单收藏歌单,但有不知道如何操作,那么苹果电脑酷狗mac版如何新建歌单收藏歌单呢?针对此问题,本文给大家介绍酷狗创建歌单收藏歌单方法 https://www.macdown.com 酷狗Mac版创建歌单教程 1.打开酷狗音乐mac版主界面点击自建歌单“+号”2.选择“编辑歌单”添加详细内容介绍3.填入自己喜欢的歌单名称,选择热门歌单分类4.写入歌单内容简单介绍 5.搜索自己喜欢的歌单按步骤即可添加到自己

Java小项目之:在线测评考试系统

Java小项目之:在线测评考试系统,让你可以在家考科一!今天带来的java小项目是一套在线测评考试系统,题库是科目一的.不仅可以在家练练java技术,还可以边学习学习科目一,一举两得.界面介绍:开始.分数.考试规则.离开,四个选项.还有很多题库可以选择,可以私信我!代码展示:package service; import java.util.ArrayList; import java.util.List; import java.util.Random; import util.Config;

用vuejs写了一个酷狗的webApp

这几天在学习vueJS,学了半个月,觉得是不是该写点什么呢?于是 .脑子一抽,仿了一个酷狗的webapp. 项目截图: 由于是单页应用,切换路由时音乐不会停止,算是一个小亮点吧. 技术栈: vuejs2.0 vue-router vuex vue-router mint-ui 演示地址和项目地址 github.com/lavyun/vue-kugouMusic 如果有刚刚开始学习vuejs的同学可以把项目clone下来 可以看看vue单页应用的构建方式,或者怎么写路由...这个项目根据本人深入程

Chisel辅助iOS 应用程序调试,MusicApp模仿酷狗4.0 UI框架

本文转载至 http://www.cocoachina.com/ios/20140825/9446.html Chisel Chisel集合了大量的LLDB 命令来辅助iOS 应用程序调试,并支持添加本地和自定义的命令.以下是其中所包含的一些命令,并对其适用于iOS还是OS X进行了区分: M13ProgressSuite 该项目包含了多种不同的风格的进程指示图,比如普通圆环形.分段圆形加载.圆形饼图加载以及条形加载等等,比如其中UINavigationBar的进程动画非常像苹果的Messag