




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、安卓应用也是由java写的dvm.java-.class-.des=.apk开发java是基于jdk开发安卓是基于Sdk-目录Platform-tools dx.bat(.class-.des)Aapt.exe(安卓应用的大包国家)Adb 安卓调试桥怎么下载的sdkmanager点击sdj manager 弹出框框,所有安卓的平台。Google封如何真机调试:手机安卓手机助手,华为手机助手,手机用数据线连上,自动的下载驱动,自动连到eclipse上会列出来。Android4.4 下面都是jar包提供了所有的安卓的开发工具sdk-manager好多类4.0=144.1.2-16Applicati
2、on 当前应用R文件Activity启动的时候就会走oncreate方法SetContentView 设置activity的内容,来自于布局文件找到关心的控件findViewById给按钮设置点击事件Btn_call.setOnClickListener()定义一个类去实现当按钮点击需要的接口类型Private class MyClickListener implements OnClickListener/overridePublic void onClick(View v)获取文本内容Et_number.getText().toString()按钮的点击事件,声明一个方法和要点击的按钮在布
3、局中声明的onclick属性一样Public void click(View v)getContext(拿到上下文对象).。getClass(字节码).getMethod(反射handlerName,View.Class)布局中的所有属性都封装到了AttributeSet类中表格布局:TableLayoutTableRow 代表一行,一个控件代表一列 自己生产xml自己组拼stringBuffer,手机里面的数据取出来通过xml文件备份起来取出数据第一步集合里面存xml,第二步吧sms对象加入集合中,想要备份的数据就封装到集合中了。第三步集合中数据放到生产的xml里面。数据的路径File fi
4、le = new File()第四步开始写数据FileOutputStream fos = new FileOutputStream(file)Javabean固定写法生产getset方法Xmlserializer 接口类可以序列化xml文件获取Xmlserializer 类实例,通过xml工具类去获取Xml.newSerializer();第二步生产的xml存到一个位置上通过serializer.setOutput(os,encoding)存到一个位置上。第一个参数就fileoutputStream继承outputStream,编码方式startDocument开始写头文档 endDocum
5、ent开始写文档结尾。写文档的根节点startag(namespace,name)命名空间没有xmlns,跟节点的名字。循环写sms节点遍历集合Serializer.text(sms.getAddress()数据在xml里面安卓把关心的数据取出来服务器把数据准备一个xml返回给客户端服务器是以流的形式把数据返回 List<> 泛型存把对象封装成一个javaBean ,channel作为一个javaBean对象,参数idparserXml(InputStream in)服务器以流的形式把数据返回就接受一个流。解析逻辑 解析xmlPullParse Xml.newPullParse静态
6、方法获得解析器。DOM解析原理把整个文档解析,类似于SAX解析一行一行的解析先解析文档的开头,基于事件进行解析事件就是一个int类型值是1还是2。开始标签/结束节点。Parser.setInput(in,)接受一个流。官方文档拿到工厂类XmlPullParserFactory.newInstance()拿到实例。Int eventType = xp.getEventType()拿到事件类型,有好多时间类型,开始是一个时间类型,结束也是一个事件类型。While循环不等于文档结尾不停往下走。取数据得到判断xp.next()XmlPulParser xp = factory.newPullParse
7、r()。解析到开始标签创建一个javaBean对象取数据把id取出来。取出标签的名字xp.getName。在里面创建一个集合对象,parser.getAttribute 0 代表取出第一个属性的值,把id取出来之后放到javaBean中 setId(id)parser.getText()获取city数据通过上下文可以获取资产的管理者,上下文中mainActivity最终就继承context。返回一个inputStream流。调用定义的xml业务方法。调业务方法返回一个集合,要组拼一下。Sb.append(channel.toString()把数据组拼到append中把数据展示到textV上tv
8、_weather.setText(sb.toString()Xml解析的步骤1.获取xmlPullParser类的实例,通过工厂类2.设置xmlPullParser的参数 parser.setInput(in,“utf-8”)3.获取解析文档的事件类型int type= parse.eventType4 判断解析的是哪个标签,开始标签结束标签 ListView就是为了展示垂直滚动的条目Item来自于listAdapter,实现接口就要实现里面未实现的方法getcountView getView(int positio,View convertView,viewGroup)Tv = new Te
9、xtView(MainActivity.this)历史缓存对象等于空创建一个新view对象获取一个view作为listView的一个条目出现Return tv 要一个view返回一个view数据适配器定义好要显示出来,lv.setAdapter(new MyListAdapter()已经定义好了、Adapter适配器复制把数据展示到listView上Servlet复制把数据展示到jsp上listView高用填充父窗体 match-parentBaseAdapte 复杂的item既有图片又有文字还能点,都是VIew 可以先把item做一个布局出来,在getView中把自己定义的布局转换成view
10、对象创建新的view对象 View.inflate(context,resource,root)可以吧一个xmlresource资源转换成view,context=this,getApplication,resource我们定义的布局文件R.layout.item、linearLayout继承VIewGroup 使用的不都继承viewGroup,把布局转换成view对象可以加到viewGroup里面一般用不上。 获取打气筒LayoutInflater.from(getApplication()、inflate)获取打气筒服务getSystemService(LayOut_inflater_se
11、rvice)ListAdapter就显示普通的文本信息没有必要用BaseadapterArrrayAdapter 显示数组或者普通的文本Adapter作用就是把数据展示到listView上1 找到关心的控件ListView lv = findViewById(R.id.lv)2ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.LAYOUT.ITEM.object)3 设置数据适配器 lv.setAdapter(adapter)textViewResourceId 用哪个Item显示上数据的内容s
12、impleAdapter 用把数据库中的数据查询出来展示到数据库上数据用map封装的正常企业开发使用javaBean封装数据的SimpleAdapter adapter = new SimpleAdapter(getApplicationContext(),data,resource,from,to)Data 是一个LIst里面还要放一个Map集合里存msp 创建mapMap.put(“name”“张三”)map里面存一点数据把map方法到集合中 data.add(map)Resource 就是布局用什么布局能显示出数据textViewFrom里面就是map集合的键值 To textView的
13、Id int类型的4 设置数据适配器的内容lv.setAdapter(adapter)数据库1 .cursor.getString(0)代表列的索引 把数据封装好后显示。拿到name和phone2. 把封装的数据拿到数据封装到javaBean中定义一个JavaBean3. 把javaBean中的数据封装到集合里面person person = new Person() person.setName(name),用来存listView要展示的数据要展示person List<Person >4. 把javaBean对象加入到集合中展示lists.add(person),把listVi
14、ew要展示的数据都封装到集合中了5. 实现数据适配器getCount ListS.size 实现getView方法 条目布局。Inflate创建新的view对象 把拿到的name phone展示到条目上 找到控件展示数据 findVIewById tv_name6. 如何显示数据setText(text)text内容在集合中存,取集合中取数据,第一个条目怎么取第二个条目显示,取数据Person person=lists.get(position);从0开始取到第一个条目,返回一个person对象因为集合里面存的就是person对象。Tv_name.setText(person.getName(
15、)拿person去person中getName就可以了。7. 集合中有数据了 lv.setAdapter(new MyAdapter()只要做一个安卓应用肯定有界面获取源码路径在路径下获取源码。向百度服务器发送一个get请求,百度服务器就会返回数据发送get请求 HttpUrlConnection通过这个类可以向服务器发送get请求,用于发送和接受数据的。用户名和密码提交到服务器就是发送,服务器,xml的数据是以流的方式返回的,是getInputStream返回的。Url url = new Url() URL地址指定服务器地址Url类调用openConnection拿到累的实例getHttp
16、URLConnection urlConnection = url.openConnection()InputStream in = urlConnection.getInputStream拿到这个数据,指定地址服务器以流的形式把数据返回回来。In就是服务器哦返回来的数据。把in数据显示到textView上,没有接受流的参数,所以要把流转换成字符串,常见的操作做成一个工具类了。readStream(intputSream in)方法这个方法里面接受一个流Java里面读流写流的方法Int len = -1;Byte buffer = new byte【1024】1kb不停地读While(len=
17、in.read(buffer)!=-1)里面有把数据读出来了要写到哪里去ByteArrayOutputStream 内存输出流、读出来的内容都写到内存中去Baos.write(buffer,0,len)写到len。返回一个字符串Sring content = new String(bao.toByteArray();返回一个字节数组Return content联网权限 intentTextView没有滚动功能消息机制应用无响应机制在主线程进行了耗时操作。自己创建线程自己定义一个类继承thread第二个定义一个类实现run在子线程中更新ui报错,只有主线程更新ui才能更新ui在主线程中定义一个h
18、andler Handler handler = new Handler(重写方法handleMessage()/用来接收消息String content =Msg.obj/在主线程中取数据Tv_result(content))不要在子线程更新ui创建msg对象 Message msg = new Message();Msg.obj = content;handler.sendMessage(msg)需要msg对象,发了一个消息在子线程中,消息里面携带了把数据放到了msg,handleMessage方法就会执行。(handleMessage在主线程创建的)所以就剋在主线程更新ui了。主线程还有
19、一个类 looper主消息的循环器不断监视messagequeue把消息取出来交给handler处理。重写了一个方法handlermessge方法最终这条消息被这个方法处理了。有了主线程looper就有了,messagequeue。紫瑶耗时操作,更新ui拷贝数据就要自己开一个子线程,获取数据后更新ui就要使用handler图片bitmapFactory 工厂类可以创建bitmap对象,参数接受一个流,Bitmao bitmaP=BitmapFactorydecodeStream(in),通过位图工程获取bitmap位图把bitmap显示到lv上。子线程lv是空间只要是空进更新ui都要在主线程进
20、行。要把bitmap放到消息里面。Msg.obj=bitmap java中任何都是object,返回的想携带什么就携带什么。一发消息handleMessage就执行了 BitMap bitmap = msg.objLv.setImageBitMap(bitmap)缓存图片就是流的读写操作。File file = new File()FileOutputStream fos然后就是不停的度,然后写的操作读len=in.read(buffer)while 不停的读读完后写到Fos.write(buffer,olen)服务器的数据通过数据库,servlet通过jdbc连接数据库把数据库中信息取出来,
21、把服务器拿到的数据封装成xml格式返回给客户端,客户端解析xml把文件显示到手机上。开发安卓应用1 画ui2 准备listView要显示的数据,数据在服务器,取服务器取数据。封装到javaBean在封装到集合里再展示到listView中。initListData()/准备listView的数据取服务器取数据Url 地址是本来是localhost 8080 但是连接的是猎豹wifi 所以是猎豹wifi的ipv4地址HttpUrlConnection conngetResponseCode=200获取服务器的数据以流的信息返回 inputStream in = conn.
22、getInputStream()之后解析xml,获取解析器 newXmlPullParser,之后设置解析器要解析的内容Parser.setInputStream(in),获取时间类型,不停的向下解析。如果解析到开始标签parse,getName创建一个list集合。往下解析news.setTEXT。把javaBean添加到集合中 list.add(new)最后返回集合就可以了 return list;在main中 XmlParserUtils.parserXml(in)就给我们返回一个集合拿到一个集合,把要展示的数据都放到了一个集合中,展示数据要数据适配器。要实现一些方法在getView中药
23、拿到一个打气筒找到控件要显示的数据显示数据tv_setText(list.get(positon).getTitle()不同的类型。根据int类型 Integer.parseInt(type)Item最后更新ui展示到listView上在子线程runOnuiThreadlv.setAdapter(new MyAdapter()服务器返回数据发送数据服务器接收数据客户端发送数据Get方式提交和post方式提交数据Servlet中有doget和dopost方法Dopost方法Request域request.getParameter(“username”)获取客户端提交的数据 客户端返回的是resp
24、onse.getOutputStream().write(“success”.getBytes()http协议分为请求内容和相应内容Get方式组拼url把数据组拼到url上有大小限制1kb-4kbPost方式 提交数据安全,数据不展示到url上,没有大小限制form表单默认的方式就是get方式。访问的路径流里面的数据是返回的是,满足条件返回。conn.getInputStream()流的形式返回的数据Post方式请求的方式通过请求体的方式把数据提交到服务器以流的形式请求体的内容如何封装多了2个头信息自己组拼请求体内容content-type content-length添加请求头信息conn.
25、setRequestPropery(field,newValue)field请求头的key后面的是value就是里面的内容报错要求一个字符串加一个“”就变成了字符串请求体String data = “username=abc&password=123”把组拼好的数据提交给服务器以流的方式Conn,setDoOutput(true)标记允许输出Conn.getOutPutStream .write(data.getByte()以流的形式传输数据,输出就是写请求体,流的形式把数据写给服务器服务器返回的状态码拿到流信息 InputStream in 把流转化为Stream StreamToo
26、ls往服务器提交数据封装了一个类HttpClient执行get请求和post请求有execute方法(HttpUrlRequest)接受的参数是一个接口找直接子类HttpGet HttpPost获取HttpClient实例New DefaultHttp()执行一个get请求HttpGet get = new HttpGet(path)执行get请求要一个路径 Client.execute(request)参数get有一个返回值 httpResponse resposne 服务器返回的内容就在response中=Client.execute(request)向服务器发送一个request 服务器
27、就会给你返回一个responseCode=200获取服务器返回的数据以流的形式返回的Response.get 拿到流的信息以实体的类型返回的getContent是流InputStream =response.getEntity().getContent();拿到inputStream就是服务器返回的数据Post方式提交数据post.setEntity(entity)键值对接收的参数又是一个接口BasicNameValuePair(String name,String value)name就是key服务器取数据不是getParameter()中的键,封装到对应的值value就是用户输入的接口Ur
28、lEncodedFormEntity entity = new UrlEncodedFormEntity (parameters)parameters类型就是list 需要一个listValuePair。List<NameValuePair> list = new Array<NameValuePair>>(),这个泛型里面存数据优势一个接口找到了实现子类BasicNameValuePairBasicNameValuePair nameValuePair = new BasicNameValuePair(“username”,name)key就是服务器的key,这个可以去取数据Lists.add(nameValuePair)Parameters就是lists创建新的active 定义一个类继承activityonCreate 当activity启动的时候调用在这个方法里
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 航空物流企业的战略规划与执行考核试卷
- 船舶改装项目施工过程中的质量控制信息化考核试卷
- 现代林业机械发展趋势与挑战考核试卷
- 红外测温仪的制造与优化考核试卷
- 玻璃制品表面涂层技术考核试卷
- 墨水生产过程中的自动化设备操作考核试卷
- 眼镜制造业的质量控制体系考核试卷
- 租书服务创新案例考核试卷
- 煤炭加工企业的效益分析与财务评估考核试卷
- 抖音直播带货火花支付佣金结算服务协议
- 2025年高三高考冲刺主题教育班会:《高三考前心理调适指南:减压赋能 轻松备考》-2024-2025学年高中主题班会课件
- 2025年安全生产考试题库(消防安全应急处置)消防设施运行维护试题
- 鄂尔多斯市水发燃气有限公司招聘笔试真题2024
- 2025年临海市纪委市监委下属事业单位公开选聘工作人员1人笔试备考题库及答案解析
- 河北省唐山市、廊坊市2025年高三高考第二次模拟演练思想政治试卷(含答案)
- 湖北武汉市华中师大一附中2025届高三3月押轴试题物理试题试卷含解析
- 司法雇员考试题目及答案
- 国家金融监督管理总局所属事业单位招聘真题2024
- 小学一年级数学20以内进位、退位加减法口算
- 2024年全国高中数学联赛(浙江预赛)试题含参考答案
- 人教PEP版(2024)三年级下册英语Unit5 Old toys单元整体教学设计(共6课时)
评论
0/150
提交评论