物联网技术应用专业教学资源建设-无锡职业技术学院

上传人:小** 文档编号:54550943 上传时间:2018-09-14 格式:PPT 页数:37 大小:4.88MB
返回 下载 相关 举报
物联网技术应用专业教学资源建设-无锡职业技术学院_第1页
第1页 / 共37页
物联网技术应用专业教学资源建设-无锡职业技术学院_第2页
第2页 / 共37页
物联网技术应用专业教学资源建设-无锡职业技术学院_第3页
第3页 / 共37页
物联网技术应用专业教学资源建设-无锡职业技术学院_第4页
第4页 / 共37页
物联网技术应用专业教学资源建设-无锡职业技术学院_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《物联网技术应用专业教学资源建设-无锡职业技术学院》由会员分享,可在线阅读,更多相关《物联网技术应用专业教学资源建设-无锡职业技术学院(37页珍藏版)》请在金锄头文库上搜索。

1、,物联网技术应用专业 教学资源建设嵌入式技术应用课程教学资源建设,建设院校:无锡职业技术学院,Linux/Android体系结构,Linux层次结构 Linux内核的演进 Linux社区 Android体系结构 Android内核 Android设备驱动 Android HAL结构 Android应用框架 版本管理系统git,4,认识Linux内核版本,主版本 1.0 2.0 2.2 2.4 2.6 2,3年更新 稳定版 2.0.40 2.2.12 2.4.18 2.6.7 1,2月更新 稳定版更新 2.6.23.1 2.6.23.7 1,2周更新,5,Linux内核的发展,6,Linux系统

2、层次结构,7,Linux系统的组成,内核补丁变更情况,内核参与情况,华人在不断贡献内核,git.kernel.org,Linuss Kernel Tree,社区内核开发模式,1个patch的信息,1个patch的内容,Android体系结构,Android源代码组成,|- bionic 这是前面提到的C库Bionic的实现 |- bootable 这里提供启动相关的代码,bootloader和recovery分区的源代码 |- build Android的编译系统的实现 |- cts 用于Android CTS论证的源代码 |- dalvik Dalvik虚拟机的基本实现 |- develop

3、ment 用于编译出开发所需要用到的工具,用于SDK环境 |- device 用于存放与产商相关,用于实现某一具体设备支持的源代码 |- external 这里存放了第三方软件和库的源代码 |- frameworks 这就是Android框架层的实现代码 |- hardware 用于提供硬件支持部分的源代码 |- kernel 用于存放Linux内核的源代码 |- libcore 提供Dalvik虚拟机的最基本支持库 |- Makefile 这是第一层目录里的唯一一个文件,用来启动Android的编译系统 |- ndk 用于编译出NDK环境的源代码 |- packages 这里存放了Andro

4、id系统本身就已经提供了的一切应用程序实现 |- prebuilt 这里存放二进制文件,用于提供交叉编译器和一些宿主机上运行的工具 |- sdk 这里提供SDK里需要使用的一些工具包的源代码 - system 提供一部分独立于Dalvik之外的系统服务,提供更底层的支持,Android内核,Android对内核补丁 binder IPC系统 ashemem内存共享机制 Android Low Memory Killer Android RAM console和log设备 Android alarm、timed_gpio等 Android电源管理,Android 设备驱动,绝大部分为标准Linu

5、x驱动 少数含自己的特点 对内核的补丁以驱动形式呈现对USB、framebuffer、input的特殊要求,Android framebuffer驱动,要求支持double buffer var-yres_virtual = 2 * var-yres 支持double buffer之间的切换 添加pan函数,Android HAL结构(1),Android HAL结构(2),HAL 的目的是为了把 Android framework 与 Linux kernel 完整隔开,Android HAL源代码位置,在 Android源代码里,HAL 主要的实作储存于以下目录: 1. libhardwa

6、re_legacy/ - 旧的实例、采取链接库模块的形式进行;直接函数调用 2. libhardware/ - 新版的实例、调整为 HAL stub 的形式;间接函数调用 3. ril/ - Radio Interface Layer,Android HAL模块代码结构与用法,HAL模块代码结构: struct hw_module_t; struct hw_module_methods_t; struct hw_device_t;,HAL模块的用法: Native code通过hw_get_module调用获取HAL stub:hw_get_module (LED_HARDWARE_MODUL

7、E_ID, (const hw_module_t*),Android Dalvik虚拟机,Dalvik虚拟机的特点: Dalvik虚拟机执行的二进制文件不再是标准的class文件或是压缩过的jar文件,而是重新编译生成的dex(Dalvik EXecution)文件。最大程度地减少了重复,以减小内存使用。 Dalvik虚拟机在执行过程中,进一步仔细考虑了不同内存使用情况,尽可能在共享可使用的内存,这样可进一步减小内存使用。 Dalvik虚拟机不是使用栈模式的设计,而是使用寄存器模式。使用寄存器方式进行工作的虚拟机,可以使用更少的机器代码。 Android本身还需要通过JNI大量拓展虚拟机的基本

8、库,加入电话相关、OpenBinder、内嵌的多媒体库等等诸多功能。在Dalvik虚拟机可执行环境里,如果这部分计算量会过大,则直接通过JNI来实现一个机器代码实现的部分。,Android Bionic库,Android系统却放弃了使用选择某一个合适的C库,而是选择了重新实现,做出了ionic这么一个并不遵守什么通用标准和很精减的C库。Bionic相当地偷工减料,只实现Android运行所需要的基本接口。即便实现了的接口很简单,也没有严格的参数验证。这样写出来的C库,其大小只有其他标准C库的一半左右。 保持Bionic苗条的另一个做法就是避免优化,在Bionic实现里,对优化性能处理上是相当小

9、气的,很少有优化的部分,这样,在库运行时也将占用尽可能少的空间。 Bionic使用的动态链接方式也很特别,在Bionic环境里,完成这一过程的则是一个叫linker的进程。 Bionic创建了更简化版的线程库支持,不支持pthread_db线程出错捕获机制,基于Linux futex机制重新实现的,在执行上效率更高,但未必与通用的多线程编程环境兼容,Android应用框架层,Activity、Service、ContentProvider和系统层的Manager,在Intent的有效协调下,形成一个开放和有效的系统平台,Android 应用编程,应用程序使用与具体硬件无关的方式访问HAL,An

10、droid 应用的组成与编译,一个典型的范例:LSM303DLH,Distributed?,SVN/P4 vs GIT,A Brief History of Git,Linus uses BitKeeper to manage Linux code Ran into BitKeeper licensing issue Liked functionality Looked at CVS as how not to do things April 5, 2005 - Linus sends out email showing first version June 15, 2005 - Git us

11、ed for Linux version control,Git config,/.gitconfig git config -global user.name “Barry Song” git config -global user.email git config -global core.editor vim git config -global merge.tool vimdiff git config l color.ui=auto user.name=Barry Song user.email= merge.tool=vimdiff core.editor=vim .git/co

12、nfig .gitignore Stored in directory for ignoring,git workflow,Fetch or clone (create a copy of the remote repository) Modify the files in the local branch Stage the files Commit the files locally Push changes to remote repository,local/stage/repo,Working With Git,echo “I love Git” hello.txt git diff Shows changes we have made git status Shows list of modified files git add hello.txt git diff No changes shown as diff compares to the index git diff HEAD Now can see the changes in working version git status git commit -m Second commit,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 经营企划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号