


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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类别的程序代码片段如下:publicclassMediaPlayerstaticSystem.loadLibrary(media_jni);/省略publicMediaPlayer()Looperlooper;if(looper=Looper.myLooper()!=null)mEventHandler=newEventHandler(this,looper);elseif(looper=Looper.getMainLooper()!=null)mEventHandler=newEventHandler(this,looper);elsemEventHandler=null;/*Nativesetuprequiresaweakreferencetoourobject.*ItseasiertocreateitherethaninC+.*/native_setup(newWeakReference(this);这个建构式里的指令就是在处理线程的讯息交换,它是为了要让.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对象,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 金融业人工智能伦理规范与监管机制创新研究报告
- 2025年音乐产业版权运营与音乐版权保护技术创新与应用案例分析报告001
- 冷链物流温控技术2025年市场趋势与产业布局报告
- 2025年新能源汽车制造产业布局与核心技术研发战略布局报告
- 教育培训市场2025年品牌建设与行业趋势分析报告
- 2025年数字艺术作品版权保护技术升级及市场应用报告
- 急诊检验服务满意度调查表
- 2025-2030中国顺酐酸酐衍生物行业现状动态与前景趋势预测报告
- 2025-2030中国针织垫式除雾器行业前景动态与需求趋势预测报告
- 2025-2030中国酒店暖通空调系统行业需求规模与前景动态预测报告
- 【高考模拟】山东省春季高考研究联合体2024-2025学年高三上学期第一次联合考试数学试题(含解析)
- 2024年河北唐山国控港口管理有限公司招聘笔试真题
- 2025新七年级语文下册期末字音字形专题复习课件
- 妊娠合并贫血护理课件
- 左美马嗪行业深度研究分析报告(2024-2030版)
- 荆州中学2024-2025学年高二下学期6月月考语文试题(定)
- 脑机接口硬件优化-洞察及研究
- 预算与绩效管理制度
- 理论联系实际谈一谈如何传承发展中华优-秀传统文化?参考答案
- T/SFABA 2-2016食品安全团体标准食品配料焙烤食品预拌粉
- T/CI 307-2024用于疾病治疗的间充质干细胞质量要求
评论
0/150
提交评论