当前位置:首页 » 安卓系统 » android题库

android题库

发布时间: 2022-08-15 12:09:56

㈠ android 面试题

1、前言 
  6 月  26  日,  Google Android  发布了  NDK  ,引起了很多发人员的兴趣。  NDK  全
称:   Native  Development  Kit  。下载地址为: 
http://developer.android.com/sdk/ndk/1.5_r1/index.html  。 
2、误解 
  新出生的事物,除了惊喜外,也会给我们带来一定的迷惑、误解。 
2.1、误解一:  NDK  发布之前,  Android  不支持进行  C  开发 
  在 Google  中搜索  “NDK”  ,很多  “Android  终于可以使用  C++  开发  ”  之类
的标题,这是一种对  Android  平台编程方式的误解。其实,  Android  平台从诞生起,就已
经支持  C  、   C++  开发。众所周知,   Android  的  SDK  基于  java  实现, 这意味着基于  Android 
SDK  进行开发的第三方应用都必须使用  Java  语言。但这并不等同于 “  第三方应用只能使
用  Java”  。在  Android  SDK  首次发布时,  Google  就宣称其虚拟机  Dalvik  支持  JNI  编程
方式,也就是第三方应用完全可以通过  JNI  调用自己的  C  动态库,即在  Android  平台上,  
“Java+C”  的编程方式是一直都可以实现的。 
  当然这种误解的产生是有根源的:在 Android SDK  文档里,找不到任何  JNI  方面的
帮助。即使第三方应用开发者使用  JNI  完成了自己的  C  动态链接库(  so  )开发,但是  so 
如何和应用程序一起打包成  apk  并发布?这里面也存在技术障碍。我曾经花了不少时间,
安装交叉编译器创建  so  ,并通过  asset (资源)方式,实现捆绑  so  发布。但这种方式只
能属于取巧的方式,并非官方支持。所以,在  NDK  出来之前,我们将  “Java+C”  的开发
模式称之为灰色模式,即官方既不声明 “  支持这种方式  ”  ,也不声明 “  不支持这种方
式  ”  。 
2.2、误解二:有了  NDK  ,我们可以使用纯  C  开发  Android  应用 
  Android SDK 采用  Java  语言发布,把众多的  C  开发人员排除在第三方应用开发外
(  注意:我们所有讨论都是基于“  第三方应用开发  ”  ,  Android  系统基于  Linux  ,系
统级别的开发肯定是支持  C  语言的。   )。 NDK  的发布,许多人会误以为,类似于  Symbian  、 
WM  ,在  Android  平台上终于可以使用纯  C  、  C++  开发第三方应用了!其实不然,  NDK 
文档明确说明:  it is not a good way  。因为  NDK  并没有提供各种系统事件处理支持,也没
有提供应用程序生命周期维护。此外,在本次发布的  NDK  中,应用程序  UI  方面的  API  也
没有提供。至少目前来说,使用纯  C  、  C++  开发一个完整应用的条件还不完备。 
 
3、NDK  是什么 
 
对 NDK  进行了粗略的研究后,我对  “NDK  是什么  ”  的理解如下: 
 
1、NDK  是一系列工具的集合。 
 
NDK 提供了一系列的工具,帮助开发者快速开发  C  (或  C++  )的动态库,并能自动
将  so  和  java  应用一起打包成  apk  。这些工具对开发者的帮助是巨大的。 
NDK 集成了交叉编译器,并提供了相应的  mk  文件隔离  CPU  、平台、  ABI  等差异,
开发人员只需要简单修改  mk  文件(指出 “  哪些文件需要编译  ”  、 “  编译特性要求  ” 
等),就可以创建出  so  。 
NDK 可以自动地将  so  和  Java  应用一起打包,极大地减轻了开发人员的打包工作。 
2、NDK  提供了一份稳定、功能有限的  API  头文件声明。
 
  oogle 明确声明该  API  是稳定的,在后续所有版本中都稳定支持当前发布的  API  。
从该版本的  NDK  中看出,这些  API  支持的功能非常有限,包含有:  C  标准库(  libc  )、
标准数学库(  libm  )、压缩库(  libz  )、  Log  库(  liblog  )。 
G
 
4、NDK  带来什么 
 
1、NDK  的发布,使  “Java+C”  的开发方式终于转正,成为官方支持的开发方式。 
使用 NDK  ,我们可以将要求高性能的应用逻辑使用  C  开发,从而提高应用程序的执
行效率。 
使用 NDK  ,我们可以将需要保密的应用逻辑使用  C  开发。毕竟,  Java  包都是可以反
编译的。 
NDK 促使专业  so  组件商的出现。(乐观猜想,要视乎  Android  用户的数量) 
2、NDK  将是  Android  平台支持  C  开发的开端。 
  NDK 提供了的开发工具集合,使开发人员可以便捷地开发、发布  C  组件。同时,  
Google 承诺在  NDK  后续版本中提高  “  可调式  ”  能力,即提供远程的  gdb  工具,使我
们可以便捷地调试  C  源码。在支持  Android  平台  C  开发,我们能感觉到  Google  花费了
很大精力,我们有理由憧憬 “C  组件支持  ”  只是  Google Android  平台上 C  开发的开端。
毕竟,   C  程序员仍然是码农阵营中的绝对主力,将这部分人排除在  Android  应用开发之外,
显然是不利于  Android  平台繁荣昌盛的。

㈡ Android试题

6是C 10应该是B

㈢ 《Android从入门到精通》epub下载在线阅读,求百度网盘云资源

《Android从入门到精通》(明日科技)电子书网盘下载免费在线阅读

资源链接:

链接:

密码:gyow

书名:Android从入门到精通

作者:明日科技

豆瓣评分:5.3

出版社:清华大学出版社

出版年份:2012-9-1

页数:507

内容简介:

内 容 简 介

《Android从入门到精通》从初学者的角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了Android应用程序开发应该掌握的各方面技术。全书共分15章,内容包括Android快速入门、Android模拟器与常用命令、用户界面设计、高级用户界面设计、基本程序单元Activity、Android应用核心Intent、Android事件处理、资源访问、图形图像处理技术、多媒体应用开发、Content Provider实现数据共享线程与消息处理、Service应用、网络编程及Internet应用和基于Android的家庭理财通。所有知识都结合具体实例进行介绍,涉及的程序代码给出了详细的注释,可以使读者轻松领会Android应用程序开发的精髓,快速提高开发技能。另外,本书除了纸质内容之外,配书光盘中还给出了海量开发资源库,主要内容如下:

 语音视频讲解:总时长25小时,共62段  技术资源库:600页专业参考文档

 实例资源库:436个经典实例  面试资源库:369道面试真题

 能力测试题库:138道能力测试题目  PPT电子教案

本书适合作为软件开发入门者的自学用书,也适合作为高等院校相关专业的教学参考书,也可供开发人员查阅、参考。

㈣ Android 的一些答题类的app,里面的问题及相关的数据在数据库里是怎样存储

SQLite,轻量级数据库,一张表存储题目以及正确答案选项以及解析,一张表存储所有题目选项,用题目id作为外键。具体结构可以参考系统短信数据库。

㈤ android中ui怎么实现选择题代码

1、 Android的四大组件是哪些,它们的作用?
答:Activity:Activity是Android程序与用户交互的窗口,是Android构造块中最基本的一种,它需要为保持各界面的状态,做很多持久化的事情,妥善管理生命周期以及一些跳转逻辑
service:后台服务于Activity,封装有一个完整的功能逻辑实现,接受上层指令,完成相关的食物,定义好需要接受的Intent提供同步和异步的接口
Content Provider:是Android提供的第三方应用数据的访问方案,可以派生Content Provider类,对外提供数据,可以像数据库一样进行选择排序,屏蔽内部数据的存储细节,向外提供统一的借口模型,大大简化上层应用,对数据的整合提供了更方便的途径
BroadCast Receiver:接受一种或者多种Intent作触发事件,接受相关消息,做一些简单处理,转换成一条Notification,统一了Android的事件广播模型
2、 请介绍下Android中常用的五种布局。
常用五种布局方式,分别是:FrameLayout(框架布局),LinearLayout (线性布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局)。
一、FrameLayout:所有东西依次都放在左上角,会重叠,这个布局比较简单,也只能放一点比较简单的东西。二、LinearLayout:线性布局,每一个LinearLayout里面又可分为垂直布局(android:orientation=”vertical”)和水平布局(android:orientation=”horizontal” )。当垂直布局时,每一行就只有一个元素,多个元素依次垂直往下;水平布局时,只有一行,每一个元素依次向右排列。三、AbsoluteLayout:绝对布局用X,Y坐标来指定元素的位置,这种布局方式也比较简单,但是在屏幕旋转时,往往会出问题,而且多个元素的时候,计算比较麻烦。四、RelativeLayout:相对布局可以理解为某一个元素为参照物,来定位的布局方式。主要属性有:相对于某一个元素android:layout_below、 android:layout_toLeftOf相对于父元素的地方android:layout_alignParentLeft、android:layout_alignParentRigh;五、TableLayout:表格布局,每一个TableLayout里面有表格行TableRow,TableRow里面可以具体定义每一个元素。每一个布局都有自己适合的方式,这五个布局元素可以相互嵌套应用,做出美观的界面。
3、 android中的动画有哪几类,它们的特点和区别是什么
答:两种,一种是Tween动画、还有一种是Frame动画。Tween动画,这种实现方式可以使视图组件移动、放大、缩小以及产生透明度的变化;另一种Frame动画,传统的动画方法,通过顺序的播放排列好的图片来实现,类似电影。
4、 android 中有哪几种解析xml的类?官方推荐哪种?以及它们的原理和区别。
答:XML解析主要有三种方式,SAX、DOM、PULL。常规在PC上开发我们使用Dom相对轻松些,但一些性能敏感的数据库或手机上还是主要采用SAX方式,SAX读取是单向的,优点:不占内存空间、解析属性方便,但缺点就是对于套嵌多个分支来说处理不是很方便。而DOM方式会把整个XML文件加载到内存中去,这里Android开发网提醒大家该方法在查找方面可以和XPath很好的结合如果数据量不是很大推荐使用,而PULL常常用在J2ME对于节点处理比较好,类似SAX方式,同样很节省内存,在J2ME中我们经常使用的KXML库来解析。
5、 ListView的优化方案
答:1、如果自定义适配器,那么在getView方法中要考虑方法传进来的参数contentView是否为null,如果为null就创建contentView并返回,如果不为null则直接使用。在这个方法中尽可能少创建view。
2、给contentView设置tag(setTag()),传入一个viewHolder对象,用于缓存要显示的数据,可以达到图像数据异步加载的效果。
3、如果listview需要显示的item很多,就要考虑分页加载。比如一共要显示100条或者更多的时候,我们可以考虑先加载20条,等用户拉到列表底部的时候再去加载接下来的20条。
6、 请介绍下Android的数据存储方式。
答:使用SharedPreferences存储数据;文件存储数据;SQLite数据库存储数据;使用ContentProvider存储数据;网络存储数据;
Preference,File, DataBase这三种方式分别对应的目录是/data/data/Package Name/Shared_Pref, /data/data/Package Name/files, /data/data/Package Name/database 。
一:使用SharedPreferences存储数据
首先说明SharedPreferences存储方式,它是 Android提供的用来存储一些简单配置信息的一种机制,例如:登录用户的用户名与密码。其采用了Map数据结构来存储数据,以键值的方式存储,可以简单的读取与写入,具体实例如下:
void ReadSharedPreferences(){
String strName,strPassword;
SharedPreferences user = getSharedPreferences(“user_info”,0);
strName = user.getString(“NAME”,””);
strPassword = user getString(“PASSWORD”,””);
}
void WriteSharedPreferences(String strName,String strPassword){
SharedPreferences user = getSharedPreferences(“user_info”,0);
uer.edit();
user.putString(“NAME”, strName);
user.putString(“PASSWORD” ,strPassword);
user.commit();
}

热点内容
qq系统头像文件夹 发布:2024-10-18 14:14:55 浏览:234
安卓手机请输入密码在哪里 发布:2024-10-18 14:13:28 浏览:645
设计编译程序注意的问题 发布:2024-10-18 14:08:43 浏览:254
传智播客android视频 发布:2024-10-18 14:04:42 浏览:904
手机版安卓吃鸡哪个好 发布:2024-10-18 14:01:40 浏览:491
编程自学入门教程 发布:2024-10-18 13:50:58 浏览:141
伊迪阿明访问中国 发布:2024-10-18 13:49:54 浏览:10
人三琳外传脚本 发布:2024-10-18 13:38:16 浏览:839
电脑发件箱服务器错误怎么弄 发布:2024-10-18 13:30:36 浏览:914
evm部署solc编译文件 发布:2024-10-18 13:29:47 浏览:835