会员注册 | 登录 | 微信快捷登录 支付宝快捷登录 QQ登录 微博登录 | 帮助中心 人人文库renrendoc.com美如初恋!
站内搜索 百度文库

热门搜索: 直缝焊接机 矿井提升机 循环球式转向器图纸 机器人手爪发展史 管道机器人dwg 动平衡试验台设计

   首页 人人文库网 > 资源分类 > DOC文档下载

31软硬整合开发的基础 认识Android的线程Thread模式.doc

  • 资源星级:
  • 资源大小:69.50KB   全文页数:3页
  • 资源格式: DOC        下载权限:注册会员/VIP会员
您还没有登陆,请先登录。登陆后即可下载此文档。
  合作网站登录: 微信快捷登录 支付宝快捷登录   QQ登录   微博登录
友情提示
2:本站资源不支持迅雷下载,请使用浏览器直接下载(不支持QQ浏览器)
3:本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰   

31软硬整合开发的基础 认识Android的线程Thread模式.doc

31.软硬整合开发的基础认识Android的线程Thread模式在之前的课程里,都只介绍Java层的线程模式。其实担任软硬整合的嵌入式软件开发者,在开发SharedLibrary.so及其卡榫类别时,更需要充分理解Android的线程模式,于此就来说说其原因吧在Android平台上开发软硬整合的共享链接库SharedLibrary时,由于是「共享」的程序组件,所以可能有许多Activity或Service等组件来呼叫此共享链接库例如某一个.so可执行档。由于这些Activity或Service等组件可能是别人开发的,也在不同的进程里执行,也有可能是以子线程来呼叫。这个时候,写共享链接库的开发者如何撰写其.so链接库呢即使.so链接库写好了,也安装好了,又如何撰写在Java层与之相对应的「卡榫类别」HookClass呢兹以Android平台所提供的MediaPlayer组件为例,其中的MediaPlayer.java就是一个卡榫类别。如下图开发此类别时,一方面要应对Activity所发出来执行MediaPlayer.java的线程,一方面又要接受底层.so所回传的信息,此种讯息到底是那一个线程所执行而传递回来的呢如此才能将.so组件纳入到Android平台里,让众多的Activity或Service等Java组件来共享之。如果对Android的线程模式有充分的认识,就很容易弄清楚程序的写法。否则,甚至连别人所写的程序代码可能都不易看懂。例如,MediaPlayer.java类别的程序代码片段如下publicclassMediaPlayer{static{System.loadLibrarymedia_jni}//省略publicMediaPlayer{LooperlooperiflooperLooper.myLoopernull{mEventHandlernewEventHandlerthis,looper}elseiflooperLooper.getMainLoopernull{mEventHandlernewEventHandlerthis,looper}else{mEventHandlernull}/Nativesetuprequiresaweakreferencetoourobject.ItseasiertocreateitherethaninC./native_setupnewWeakReferencethis}这个建构式里的指令就是在处理线程的讯息交换,它是为了要让*.so能回传一些讯息给Java层的应用类别。此时,如果你能对Android有如下的认识,就很容易理解它了在每一个进程有一个主线程MainThread,它的主要任务是处理与UI有关的事件Event,所以又常称为UI线程。主线程可以诞生子线程ChildThread,而且「经常」需要诞生子线程。其主要原因是主线程即UI线程必须时时刻刻标准为5秒内去照顾UI的事件,以便快速响应使用者的要求。因此,UI线程没空闲去执行较为费时的函数或工作,只好诞生子线程去执行较为费时的工作了。在Android平台里,UI线程与其子线程之分工是很明确的子线程负责执行费时的工作。主线程负责UI的操作或事件子线程不可以插手有关UI的事。在同一进程里的主、子线程之间可以透过MessageQueue来互相沟通。当一个新进程新诞生时,会同时诞生一个主线程,也替主线程建立一个MessageQueue,以及负责管理MessageQueue的Looper类别之对象。子线程可以透过Handler对象而将Message对象丢Post到主线程的MessageQueue里,而主线程的Looper物件就会接到这个Message对象,并依据其内容而呼叫适当的函数来处理之例如显示画面Layout上。由于执行此建构式的线程不一定是该进程Process的主线程,所以要确保能将讯息确实传递给主线程。

注意事项

本文(31软硬整合开发的基础 认识Android的线程Thread模式.doc)为本站会员(baixue100)主动上传,人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知人人文库网([email protected]),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。

copyright@ 2015-2017 人人文库网网站版权所有
苏ICP备12009002号-5