




免费预览已结束,剩余16页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1. Android的四大组件是哪些。它们的作用。答:Activity service ContentProvider BroadCastReceiverActivity是Android程序与用户交互的窗口,是Android构造块中最基本的一种,它需要为保持各界面的状态,做很多持久化的事情,妥善管理生命周期以及一些跳转逻辑。Service是后台服务于Activity,封装有一个完整的功能逻辑实现,接受上层指令,完成相关的事物,定义好需要接受的Intent提供同步和异步的接口。ContentProvider:是Android提供的第三方应用数据的访问方案,可以派生ContentProvider类,对外提供数据,可以像数据库一样进行选择排序,屏蔽内部数据的存储细节,向外提供统一的接口模型,大大简化上层应用,对数据的整合提供了更方便的途径。BroadCastReceiver:接受一种或者多种Intent作触发事件,接受相关消息,做一些简单处理,转换成一条Notification,统一了Android的事件广播模型2安卓项目的目录结构,命名及含义。 src源文件:使用java语言编写的代码,包括各种Activity的实现。 R.java:由eclipse自动生成,包含了应用程序所使用到的资源ID。 Android library:Android库文件。 assets:放置多媒体文件等。 res:应用程序所需的资源文件,如图标,动画,颜色等。 drawable:图片资源 layout:描述了Activity的布局。 values:定义字符串,颜色等 Android Manifest.xml:应用程序的配置文件。在该文件中声明应用程序的名称,使用到的Activity,Service,Receive,权限等。AndroidManfest.xml分析manifest根节点,描述了package中所有的内容xmlns:android包含命名空间的声明。xmlns:android=/apk/res/android,使得Android中各种标准属性能在文件中使用,提供了大部分元素中的数据Package声明应用程序包application包含package中application级别组件声明的根节点。此元素也可包含application的一些全局和默认的属性,如标签、icon、主题、必要的权限,等等。一个manifest能包含零个或一个此元素(不能大余一个)android:icon应用程序图标android:label应用程序名字Activity用来与用户交互的主要工具。Activity是用户打开一个应用程序的初始页面,大部分被使用到的其他页面也由不同的activity所实现,并声明在另外的activity标记中。注意,每一个activity必须有一个标记对应,无论它给外部使用或是只用于自己的package中。如果一个activity没有对应的标记,你将不能运行它。另外,为了支持运行时查找Activity,可包含一个或多个元素来描述activity所支持的操作android:name应用程序默认启动的activityintent-filter声明了指定的一组组件支持的Intent值,从而形成了IntentFilter。除了能在此元素下指定不同类型的值,属性也能放在这里来描述一个操作所需的唯一的标签、icon和其他信息action组件支持的Intent actioncategory组件支持的Intent Category。这里指定了应用程序默认启动的activityuses-sdk该应用程序所使用的sdk版本相关3activity中onCreate()方法的用法Activity中有一个名称叫onCreate的方法。该方法是在Activity创建时被系统调用,是一个Activity生命周期的开始。4android中是如何访问布局的。LinearLayout线性布局;AbsoluteLayout绝对布局;TableLayout表格布局;RelativeLayout相对布局;FrameLayout帧布局;LinearLayout(线性布局)提供了控件水平垂直排列的模型,同时可以通过设置子控件的weight布局参数控制各个控件在布局中的相对大小。水平(vertical)垂直(horizontal)AbsoluteLayout(坐标布局)可以让子元素指定准确的x/y坐标值,并显示在屏幕上。(0, 0)为左上角,当向下或向右移动时,坐标值将变大。AbsoluteLayout没有页边框,允许元素之间互相重叠(尽管不推荐)。我们通常不推荐使用AbsoluteLayout,除非你有正当理由要使用它,因为它使界面代码太过刚性,以至于在不同的设备上可能不能很好地工作。Android:layout_x/layout_y=”56px”确定控件位置RelativeLayout(相对布局)允许子元素指定他们相对于其它元素或父元素的位置(通过ID指定)。因此,你可以以右对齐,或上下,或置于屏幕中央的形式来排列两个元素。元素按顺序排列,因此如果第一个元素在屏幕的中央,那么相对于这个元素的其它元素将以屏幕中央的相对位置来排列。如果使用XML来指定这个layout,在你定义它之前,被关联的元素必须定义。FrameLayout(单帧布局)是最简单的一个布局对象。它被定制为你屏幕上的一个空白备用区域,之后你可以在其中填充一个单一对象 比如,一张你要发布的图片。所有的子元素将会固定在屏幕的左上角;你不能为FrameLayout中的一个子元素指定一个位置。后一个子元素将会直接在前一个子元素之上进行覆盖填充,把它们部份或全部挡住(除非后一个子元素是透明的)。TableLayout(表格布局)以行列的形式管理子控件,每一行为一个TableRow的对象,TableRow也可以添加子控件android:collapseColumns=“n”隐藏TableLayout里面的TableRow的列nandroid:stretchColumns=“n”设置列n为可延伸的列android:shrinkColumns=“n”设置列n为可收缩的列5main.xml中的一段代码,每一项的含义android:id /这个xml属性是继承自android.view类的xml属性。它为framelayout提供一个唯一识别符号,之后,程序要用到它时可以用View.findViewById() 或Activity.findViewById()来找到它。 android:layout_width: 布局宽 android:layout_height: 布局高 /它们的取值是fill_parent或wrap_content。 fill_parent :在x轴或则y轴上充满父容器的空间。 wrap_content :framelayout里的元素有多少宽高就多少宽高, /这两个属性都是定义在android.widget.FrameLayout的嵌套类android.widget.FrameLayout.LayoutParams里。 android:background:背景 android:foreground :前景 6数据存储的五种方法分别是什么?答:1使用SharedPreferences存储数据; 2文件存储数据;3SQLite数据库存储数据; 4使用ContentProvider存储数据; 5网络存储数据;7文件保存操作,代码怎么写,SDk读写权限?答:文件存储数据文件存储方式是一种较常用的方法,在Android中读取/写入文件的方法,与Java中实现I/O的程序是完全一样的,提供了openFileInput()和openFileOutput()方法来读取设备上的文件。具体实例如下:Stringfn=“moandroid.log”;FileInputStreamfis=openFileInput(fn);FileOutputStreamfos=openFileOutput(fn,Context.MODE_PRIVATEandroid中关于对文件SD卡以及手机本身内存中建立文件保存等操作使用File进行存储操作主要使用到以下的:public abstract FileInputStream openFileInput (String name)这个主要是打开文件,返回FileInputStream:public abstract FileOutputStream openFileOutput (String name, int mode)这个主要是写入文件,如果该文件不存在,直接进行创建,返回FileOutputStreamMode(主要有以下的四种的模式)MODE_APPEND /在尾部追加MODE_PRIVATE /私有MODE_WORLD_READABLE /可读MODE_WORLD_WRITEABLE /可写:FileInputStream(获取文件输入流)与FileOutputStream (获取文件输出流)这两类在JavaIO 操作中很常见接下来进行操作 保存成功之后讲文件保存在当前应该程序的包名下的files/(可以改变存储的其他路径)源代码如下:java view plaincopyprint?1. packagecom.jiangqq.file;2. 3. importjava.io.FileInputStream;4. importjava.io.FileOutputStream;5. 6. importandroid.app.Activity;7. importandroid.os.Bundle;8. importandroid.view.View;9. importandroid.view.View.OnClickListener;10. importandroid.widget.Button;11. importandroid.widget.EditText;12. importandroid.widget.Toast;13. 14. publicclassFileAcitivyextendsActivity15. 16. privateButtonbt1,bt2;17. privateEditTextet1,et2;18. 19. privatestaticfinalStringFILENAME=temp_file.txt;20. 21. Override22. publicvoidonCreate(BundlesavedInstanceState)23. super.onCreate(savedInstanceState);24. setContentView(R.layout.main);25. bt1=(Button)this.findViewById(R.id.bt1);26. bt2=(Button)this.findViewById(R.id.bt2);27. et1=(EditText)this.findViewById(R.id.et1);28. et2=(EditText)this.findViewById(R.id.et2);29. bt1.setOnClickListener(newOnClickListener()30. 31. Override32. publicvoidonClick(Viewv)33. write(et1.getText().toString();34. Toast.makeText(FileAcitivy.this,文件写入成功,Toast.LENGTH_LONG)35. .show();36. 37. );38. bt2.setOnClickListener(newOnClickListener()39. 40. Override41. publicvoidonClick(Viewv)42. et2.setText(read();43. Toast.makeText(FileAcitivy.this,文件读出成功,Toast.LENGTH_LONG)44. .show();45. 46. );47. 48. 49. /读文件方法 50. privateStringread()51. try52. FileInputStreaminputStream=openFileInput(FILENAME);53. byteb=newbyteinputStream.available();54. inputStream.read(b);55. returnnewString(b);56. catch(Exceptione)57. 58. returnnull;59. 60. 61. /写文件 62. privatevoidwrite(Stringcontent)63. try64. FileOutputStreamfos=openFileOutput(FILENAME,MODE_APPEND);65. fos.write(content.getBytes();66. fos.close();67. catch(Exceptione)68. 69. 70. 文件可以保存在手机内存中,也可以保存在SD卡上面,保存在SD卡上要申请读写SDS卡权限,权限如下:保存在手机上html view plaincopyprint?1. publicvoidsaveFile(StringfileName,StringcontentStr)throwsIOException2. FileOutputStreamfileOutputStream=context.openFileOutput(fileName,Context.MODE_PRIVATE);3. fileOutputStream.write(contentStr.getBytes();4. public void saveFile(String fileName,String contentStr) throws IOExceptionFileOutputStream fileOutputStream=context.openFileOutput(fileName, Context.MODE_PRIVATE);fileOutputStream.write(contentStr.getBytes();保存在SD卡上html view plaincopyprint?1. publicvoidsavefile2SD(StringfileNameStr,StringcontentStr)throwsFileNotFoundException2. Filefile=newFile(Environment.getExternalStorageDirectory(),fileNameStr);3. OutputStreamoStream=newFileOutputStream(file);4. bytedata=contentStr.getBytes();5. try6. oStream.write(data);7. catch(IOExceptione)8. /TODOAuto-generatedcatchblock9. e.printStackTrace();10. 11. finally12. try13. oStream.close();14. catch(IOExceptione)15. /TODOAuto-generatedcatchblock16. e.printStackTrace();17. 18. 19. 20. 关于界面,以前见到淘宝上面输入框里面有提示文字,然后鼠标点进去后文字消失,等待用户输入的效果html view plaincopyprint?1. android:hint=请输入文件名称-就是这样一行代码还有就是要注意一下:在模拟器上面如果输入中文的话,那么保存后就有乱码,保存文件后导出到PC的话会发现找不到该文件8.android中数据库事物怎么定义?答:实现Android数据库事务非常简单,只需要使用SQLiteDatabase类的三个方法即可。beginTransaction();setTransactionSuccessful();endTransaction();当调用endTransaction()时,所有从beginTransaction()开始的操作都会被提交。一个简单的数据库事务操作如下所示:1. mDatabase.beginTransaction();2. try3. /在这里执行多个数据库操作4. /执行过程中可能会抛出异常5. mDatabase.setTransactionSuccessful();6. /在setTransactionSuccessful和endTransaction之间不进行任何数据库操作7. catch(Exceptione)8. /当数据库操作出现错误时,需要捕获异常,结束事务9. mDatabase.endTransaction();10. throwe;11. 12. /当所有操作执行完成后结束一个事务13. mDatabase.endTransaction();14. 9.android中网络读取的几种方式是什么?答:get post HttpClient HttpURLConnection:包中的HttpURLConnection类Get方式。1. /Get方式请求 2. publicstaticvoidrequestByGet()throwsException3. Stringpath=/logins.jsp?id=helloworld&pwd=android;4. /新建一个URL对象 5. URLurl=newURL(path);6. /打开一个HttpURLConnection连接 7. HttpURLConnectionurlConn=(HttpURLConnection)url.openConnection();8. /设置连接超时时间 9. urlConn.setConnectTimeout(5*1000);10. /开始连接 11. urlConn.connect();12. /判断请求是否成功 13. if(urlConn.getResponseCode()=HTTP_200)14. /获取返回的数据 15. bytedata=readStream(urlConn.getInputStream();16. Log.i(TAG_GET,Get方式请求成功,返回数据如下:);17. Log.i(TAG_GET,newString(data,UTF-8);18. else19. Log.i(TAG_GET,Get方式请求失败);20. 21. /关闭连接 22. urlConn.disconnect();23. Post方式:java view plaincopyprint?1. /Post方式请求 2. publicstaticvoidrequestByPost()throwsThrowable3. Stringpath=/logins.jsp;4. /请求的参数转换为byte数组 5. Stringparams=id=+URLEncoder.encode(helloworld,UTF-8)6. +&pwd=+URLEncoder.encode(android,UTF-8);7. bytepostData=params.getBytes();8. /新建一个URL对象 9. URLurl=newURL(path);10. /打开一个HttpURLConnection连接 11. HttpURLConnectionurlConn=(HttpURLConnection)url.openConnection();12. /设置连接超时时间 13. urlConn.setConnectTimeout(5*1000);14. /Post请求必须设置允许输出 15. urlConn.setDoOutput(true);16. /Post请求不能使用缓存 17. urlConn.setUseCaches(false);18. /设置为Post请求 19. urlConn.setRequestMethod(POST);20. urlConn.setInstanceFollowRedirects(true);21. /配置请求Content-Type 22. urlConn.setRequestProperty(Content-Type,23. application/x-www-form-urlencode);24. /开始连接 25. urlConn.connect();26. /发送请求参数 27. DataOutputStreamdos=newDataOutputStream(urlConn.getOutputStream();28. dos.write(postData);29. dos.flush();30. dos.close();31. /判断请求是否成功 32. if(urlConn.getResponseCode()=HTTP_200)33. /获取返回的数据 34. bytedata=readStream(urlConn.getInputStream();35. Log.i(TAG_POST,Post请求方式成功,返回数据如下:);36. Log.i(TAG_POST,newString(data,UTF-8);37. else38. Log.i(TAG_POST,Post方式请求失败);39. 40. org.apache.http包中的HttpGet和HttpPost类Get方式:java view plaincopyprint?1. /HttpGet方式请求 2. publicstaticvoidrequestByHttpGet()throwsException3. Stringpath=/logins.jsp?id=helloworld&pwd=android;4. /新建HttpGet对象 5. HttpGethttpGet=newHttpGet(path);6. /获取HttpClient对象 7. HttpClienthttpClient=newDefaultHttpClient();8. /获取HttpResponse实例 9. HttpResponsehttpResp=httpClient.execute(httpGet);10. /判断是够请求成功 11. if(httpResp.getStatusLine().getStatusCode()=HTTP_200)12. /获取返回的数据 13. Stringresult=EntityUtils.toString(httpResp.getEntity(),UTF-8);14. Log.i(TAG_HTTPGET,HttpGet方式请求成功,返回数据如下:);15. Log.i(TAG_HTTPGET,result);16. else17. Log.i(TAG_HTTPGET,HttpGet方式请求失败);18. 19. Post方式:java view plaincopyprint?1. /HttpPost方式请求 2. publicstaticvoidrequestByHttpPost()throwsException3. Stringpath=/logins.jsp;4. /新建HttpPost对象 5. HttpPosthttpPost=newHttpPost(path);6. /Post参数 7. Listparams=newArrayList();8. params.add(newBasicNameValuePair(id,helloworld);9. params.add(newBasicNameValuePair(pwd,android);10. /设置字符集 11. HttpEntityentity=newUrlEncodedFormEntity(params,HTTP.UTF_8);12. /设置参数实体 13. httpPost.setEntity(entity);14. /获取HttpClient对象 15. HttpClienthttpClient=newDefaultHttpClient();16. /获取HttpResponse实例 17. HttpResponsehttpResp=httpClient.execute(httpPost);18. /判断是够请求成功 19. if(httpResp.getStatusLine().getStatusCode()=HTTP_200)20. /获取返回的数据 21. Stringresult=EntityUtils.toString(httpResp.getEntity(),UTF-8);22. Log.i(TAG_HTTPGET,HttpPost方式请求成功,返回数据如下:);23. Log.i(TAG_HTTPGET,result);24. else25. Log.i(TAG_HTTPGET,HttpPost方式请求失败);26. 27. 简答.简述Android平台提供了那些数据存储方法。答:Preferences、File、SQLite、ContentProvider, 网络Android整体认知(安卓系统结构,项目的运行)答:图我们可以从整体上有个大致的了解(图片来源互联网): 从上图中可以看出,Android系统架构为四层结构,从上层到下层分别是应用程序层、应用程序框架层、系统运行库层以及Linux内核层,分别介绍如下: 1)应用程序层 Android平台不仅仅是操作系统,也包含了许多应用程序,诸如SMS短信客户端程序、电话拨号程序、图片浏览器、Web浏览器等应用程序。这些应用程序都是用Java语言编写的,并且这些应用程序都是可以被开发人员开发的其他应用程序所替换,这点不同于其他手机操作系统固化在系统内部的系统软件,更加灵活和个性化。 2)应用程序框架层 应用程序框架层是我们从事Android开发的基础,很多核心应用程序也是通过这一层来实现其核心功能的,该层简化了组件的重用,开发人员可以直接使用其提供的组件来进行快速的应用程序开发,也可以通过继承而实现个性化的拓展。 a)Activity Manager(活动管理器) 管理各个应用程序生命周期以及通常的导航回退功能 b)Window Manager(窗口管理器) 管理所有的窗口程序 c)Content Provider(内容提供器) 使得不同应用程序之间存取或者分享数据 d)View System(视图系统) 构建应用程序的基本组件 e)Notification Manager(通告管理器) 使得应用程序可以在状态栏中显示自定义的提示信息 f)Package Manager(包管理器) Android系统内的程序管理 g)Telephony Manager(电话管理器) 管理所有的移动设备功能 h)Resource Manager(资源管理器) 提供应用程序使用的各种非代码资源,如本地化字符串、图片、布局文件、颜色文件等 i)Location Manager(位置管理器) 提供位置服务 j)XMPP Service(XMPP服务) 提供Google Talk服务 3)系统运行库层
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广东江门市商务局选调公务员1人考试参考题库附答案解析
- 金川县2025年医疗卫生辅助岗招募(5人)考试参考题库附答案解析
- 2025浙江嘉兴市嘉善县善和养老服务管理有限公司招聘4人考试备考试题及答案解析
- 2025云南省昭通市绥江县医共体新滩镇分院招聘康复专业技术人才(1人)笔试备考题库及答案解析
- 2025云南省大理州鹤庆县职业高级中学外聘教师招聘(8人)考试模拟试题及答案解析
- 音视频行业内容安全与版权保护方案
- 毕业论文扫红
- 2025昆明市官渡区方旺小学教师招聘(11人)考试参考题库附答案解析
- 2025天津滨海高新技术产业开发区第一学校现招聘中学语文临聘教师笔试备考试题及答案解析
- 2025贵州遵义赤水市公益性岗位人员招聘9人笔试模拟试题及答案解析
- 数据安全技术应用职业技能竞赛理论考试题库500题(含答案)
- 《龋病》教学课件
- 2024年全国巾帼家政服务职业技能大赛(养老护理员)选拔赛试题库-上(单选题)
- 罗森伯格的自尊量表(SES)
- 盘扣式卸料平台施工方案
- CJT 409-2012 玻璃钢化粪池技术要求
- YD-T 4339-2023 5G移动通信网能力开放(NEF)总体技术要求
- 风险分级隐患排查治理风险分级管控隐患排查与治理措施培训课件
- 《克雷洛夫寓言》阅读手册寒假阅读作业设计
- 门窗销售技巧培训总结报告
- 对外汉语教学教案设计及板书省公开课金奖全国赛课一等奖微课获奖课件
评论
0/150
提交评论