腾讯公司每年的春招和秋招都吸引了大量的IT行业人才参加,尤其是移动客户端开发岗位,更是竞争激烈。本次提到的练习卷是2015年腾讯春招移动客户端开发的笔试题,包含了iOS开发和Android开发相关的选择题。下面我们具体分析这些知识点。
对于iOS开发,练习卷中提到了多线程实现方法的选择题。正确答案是B、C、D选项,即使用GCD、NSOperationQueue和@thread。这些方法是iOS多线程开发中常用的三种方式。GCD(Grand Central Dispatch)是一个高度优化的C API,用于多核并行代码的执行。NSOperationQueue是基于GCD的,它允许开发者更精细地控制执行的任务。而@thread是Objective-C的一个属性,用于创建线程安全的变量。
在Android开发部分,练习卷中提到了Intent传递数据时可以传递的数据类型,正确答案是C选项,即Parcelable和D选项,即Bundle。Android中Intent用于不同组件间的通信,而Parcelable是Android中一种序列化机制,其性能优于Serializable,Bundle是一种键值对集合。
在Android中使用Menu时,可能需要重写的方法有onCreateOptionsMenu()和onOptionsItemSelected()。这是创建和处理菜单的基本方法,其中前者用于创建菜单,后者用于处理点击事件。
使用SQLiteOpenHelper这个辅助类时,可以生成一个数据库,并可以对数据库版本进行管理的方法是onCreate()和onUpgrade()。SQLiteOpenHelper类用于管理数据库版本,这两个方法在数据库创建或升级时会被调用。
Android中Service的生命周期方法onCreate()和onStart()的正确说法是A和D,即当第一次启动服务时会先后调用onCreate()和onStart()方法,若服务已经启动,则只会执行onStart()方法,不会重新执行onCreate()。
GLSurfaceView是Android中用于OpenGL渲染的视图,其特性包括管理一个surface,让渲染器在独立线程中运作,与UI线程分离,以及可以通过EGLdisplay直接将OpenGL内容渲染到surface上。
模态视图专用属性包括UIModalPresentationFullScreen、UIModalPresentationPageSheet、UIModalPresentationFormSheet、UIModalPresentationCurrentContext,分别对应不同的展示样式,如全屏、固定宽度的页面、表单大小的视图以及与父视图控制器相同的呈现方式。
iOS中的AddressBookUI框架提供了管理联系人的视图控制器ABPeoplePickerNavigationController、BABPersonViewController等,用于创建和修改联系人。
UITableView是iOS中的表格视图,其相关类包括UITableView、UITableViewController、UITableViewDelegate以及UITableViewDataSource。UITableView用于展示数据,UITableViewController是专门用于表格视图的控制器,UITableViewDelegate和UITableViewDataSource则是用来处理用户交互和提供数据的代理和数据源。
iOS中导航设计模式包括平铺导航、标签导航、树形导航和模态视图导航。平铺导航是页面之间逐级导航,标签导航类似于底部导航,树形导航是页面之间类似树状的层级结构,模态视图导航则通常用于展示模态视图。
Objective-C作为一门运行时语言,数据类型的确定由编译时推迟到运行时,运行时机制允许直到运行时才决定一个对象的类别和调用该类方法,这解释了为什么选择B选项。多态是指不同对象以自己的方式响应相同的消息,这解释了为什么D选项也是正确的。
Android通过startService的方式开启服务时,Service生命周期的onCreate()和onStart()方法的正确说法是A和B。即在第一次启动服务时,会先后调用onCreate()和onStart()方法,但第二次及以后启动服务时,只会执行onStart()方法。
以上知识点涵盖了移动客户端开发中常见的iOS和Android知识点,包括多线程、数据传递、菜单使用、数据库管理、服务生命周期、OpenGL渲染、视图控制器、表格视图、导航模式、运行时语言特性等。掌握这些知识点对于准备腾讯公司或其他公司的移动客户端开发岗位的笔试和面试都有很大帮助。