tag 标签: 开发平台

相关博文
  • 热度 3
    2023-9-18 17:36
    650 次阅读|
    0 个评论
    本文基于HD-RK3568-IOT评估板演示Debian系统安装Docker,该方法适用于RK356X全系产品。 HD-RK3568-IOT评估板基于HD-RK3568-CORE工业级核心板设计(双网口、双CAN、5路串口),接口丰富,适用于工业现场应用需求,亦方便用户评估核心板及CPU的性能。适用于工业自动化控制、人机界面、中小型医疗分析器、电力等多种行业应用。 1.检测内核配置 使用Docker需要内核支持CGROUP、BRIDGE等功能,如果内核中未开启相关配置,安装或运行Docker会出现各种错误。Docker开源团队提供了一个脚本https://github.com/moby/moby/blob/master/contrib/check-config.sh,用以检测内核配置是否符合Docker运行的要求。 下载脚本到源码内核目录下。输入如下命令: chmod777check-config.sh ./check-config.sh.config |注:.config需要在内核配置完后才会生成 check-config.sh使用方法如下: #./check_config.sh./kernel/.config info:readingkernelconfigfrom./kernel/.config... GenerallyNecessary: -cgrouphierarchy:properlymounted -apparmor:enabledandtoolsinstalled -CONFIG_NAMESPACES:enabled -CONFIG_NET_NS:enabled -CONFIG_PID_NS:enabled -CONFIG_IPC_NS:enabled -CONFIG_UTS_NS:enabled -CONFIG_CGROUPS:enabled -CONFIG_CGROUP_CPUACCT:enabled -CONFIG_CGROUP_DEVICE:enabled -CONFIG_CGROUP_FREEZER:enabled -CONFIG_CGROUP_SCHED:enabled -CONFIG_CPUSETS:enabled -CONFIG_MEMCG:missing -CONFIG_KEYS:enabled -CONFIG_VETH:missing -CONFIG_BRIDGE:missing -CONFIG_BRIDGE_NETFILTER:missing -CONFIG_IP_NF_FILTER:missing -CONFIG_IP_NF_TARGET_MASQUERADE:missing -CONFIG_NETFILTER_XT_MATCH_ADDRTYPE:missing -CONFIG_NETFILTER_XT_MATCH_CONNTRACK:missing -CONFIG_NETFILTER_XT_MATCH_IPVS:missing -CONFIG_IP_NF_NAT:missing -CONFIG_NF_NAT:missing -CONFIG_POSIX_MQUEUE:missing OptionalFeatures: -CONFIG_USER_NS:enabled -CONFIG_SECCOMP:enabled -CONFIG_SECCOMP_FILTER:enabled -CONFIG_CGROUP_PIDS:missing -CONFIG_MEMCG_SWAP:missing -CONFIG_MEMCG_SWAP_ENABLED:missing -CONFIG_BLK_CGROUP:missing -CONFIG_BLK_DEV_THROTTLING:missing -CONFIG_CGROUP_PERF:missing -CONFIG_CGROUP_HUGETLB:missing -CONFIG_NET_CLS_CGROUP:missing -CONFIG_CGROUP_NET_PRIO:missing -CONFIG_CFS_BANDWIDTH:enabled -CONFIG_FAIR_GROUP_SCHED:enabled -CONFIG_RT_GROUP_SCHED:missing -CONFIG_IP_NF_TARGET_REDIRECT:missing -CONFIG_IP_VS:missing -CONFIG_IP_VS_NFCT:missing -CONFIG_IP_VS_PROTO_TCP:missing -CONFIG_IP_VS_PROTO_UDP:missing -CONFIG_IP_VS_RR:missing -CONFIG_SECURITY_SELINUX:missing -CONFIG_SECURITY_APPARMOR:missing 2.安装docker 执行以下命令安装Docker: update-alternatives--setiptables/usr/sbin/iptables-legacy update-alternatives--setip6tables/usr/sbin/ip6tables-legacy curl-fsSLhttps://get.docker.com-oget-docker.sh sudoshget-docker.sh /etc/docker/daemon.json sudosystemctldaemon-reload sudosystemctlrestartdocker 3.配置国内镜像加速 修改配置文件/etc/docker/daemon.json,配置完后重启系统。 {"registry-mirrors": } 4.验证测试 root@hd-rk3568:~$dockerrunhello-world ​ 若打印信息提示“HellofromDecoker!”则说明已经安装成功,验证通过, 5.Docker常用操作 创建并启动一个新的容器 dockerrun dockerrun-d--namemy-containermy-image 启动已创建的容器 dockerstart dockerstartmy-container 停止已创建的容器 dockerstop dockerstopmy-container 列出所有正在运行的容器 dockerps dockerps-a 列出所有本地镜像 dockerimages dockerimages-a 删除已停止的容器 dockerrm dockerrmmy-container 删除本地镜像 dockerrmi dockerrmimy-image:1.0.0 在正在运行的容器中执行命令 dockerexec dockerexec-itmy-containerbash
  • 热度 15
    2014-6-10 11:22
    1062 次阅读|
    1 个评论
    原文链接:http://user.qzone.qq.com/26033613/blog/1402282935?ptlang=2052 嵌入式微系统msOS成型记之一:何为嵌入式微系统   嵌入式微系统,顾名思义就是嵌入式微型操作系统,然而操作系统一词在嵌入式行业里往往专指uC/OS之类的带任务切换的系统,所以为了有别于这个专用名词,往往用开发平台一词来代替,所以嵌入式微系统更准确的名字为嵌入式微型开发平台。 大家肯定会问,uC/OS这样的嵌入式操作系统跟嵌入式微系统到底有什么区别,那么我们就要从项目需求开始说起。 某个公司需要在嵌入式芯片(MCU51或者STM32)上开发一个控制项目,涉及LCD界面、多种不同接口速度的外设、多种不同速度的业务逻辑控制,下图为常见的一种工业自动化项目需求。        作为项目负责人,首先要分析清晰项目需求,假设这个项目有点复杂,涉及多路采样及多路PWM输出,所以选择STM32之类的高性能处理器,之后再考虑软件设计。 这个项目设计到多路输入传感器及多路输出,有高速的业务逻辑控制,也有低速的菜单界面,为了把低速的菜单界面与高速的业务逻辑分开独立编程,所以引入嵌入式操作系统,比如uC/OS,会方便程序设计。 uC/OS除了任务切换功能等有限的功能外,没有别的,所以其它的东西还是需要我们自己添加,菜单界面就是一个。界面编程里面,简单的界面用状态机还比较容易编程,但若涉及到稍微复杂一点的界面,传统的状态机编程思想就完全不适合了,代码很难维护修改,为了提高可维护性,需要引入一个标准的菜单界面编程库(GUI),虽然现在网上也有不少,但适合自己的却很难找,往往需要自己编写一套菜单界面库,这个工作量很大,难度也很难,最后往往退回到传统状态机菜单编程方式。 其它的硬件相关的设备驱动库,都需要自己来完成,比如按键、串口、步进驱动等等。若这个项目需要多人协同开发、长期维护,则还需要制定架构标准,一些接口规范,命名标准,而这么多的要求,对于大部分的小、微型企业的嵌入式项目负责人来说,要求太高了。所以最后这个项目负责人,往往自己一个人埋头苦干,什么标准什么规范都没有,经过较长的一段时间开发加上后期的修修补补,项目勉强的交差了。然而当这个负责人离职的时候,面临着无人接手的窘境。 我们再看消费类电子产品的开发模式,以MTK6225功能手机为例,RTOS采用Nucleus,菜单界面软件库采用PlutoMMI,此外还需要多媒体、文件系统,电话本、短消息等中间件,之后是各种硬件设备驱动,整个软件架构类似ARM公司提倡的CMSIS架构。   MTK提供了整套硬件参考设计、PCB设计、生产流程、测试流程,软件开发标准。客户通过不长的时间培训即可掌握手机的开发设计,一般10来人的手机设计公司,在具有一定的手机设计经验的基础上,只需要2、3个月就可以设计出一款MTK提供的参考手机,之后公司基于这个参考手机做硬件上的机型改进及软件上的界面调整即可。到了Android时代更是简单了,因为Android软件属于通用软件,所以软件更是不需要培训了。 其他消费类电子,比如以前的VCD、DVD、MP3、MP4等等,都采用类似的方式,只有采用这种方式,源头厂家才可以快速的切入市场,并且可以同时管理、维护很多下游客户,比如MTK的下游山寨手机公司上千家,大的手机厂家也有近百家之多。因为采用了标准的设计模版,应用开发、客户维护人员都不是很多,尤其是维护人员,大大降低,获得高额的利润。而因为采用标准通用的软件架构平台,迅速的培养了大量的通用手机软件人员,而这些软件人员都可以在各个手机公司立即干活,不存在更换一个公司之后还需要培训的问题,这样下游厂家也不需要担心人才流动引起的工作交接问题。   从以上例子可以看到,通用标准化的开发设计,带来的好处是巨大的:提高了开发效率、缩短了开发周期、便于产品长期维护,容纳更多的下游客户。 /********************************************/ 本文为连载性质,每周一篇,总计十二篇,应与非网邀请撰写,首发于与非网。 msOS到今天已经完善,也有大量的实际使用例子,比如PID算法库、步进驱动库及扩展大屏幕串口屏等,非常适合于工业场合,形成了一个控制体系。很多网友基于msOS应用于自己的项目中了。
  • 热度 24
    2013-6-8 16:48
    1510 次阅读|
    0 个评论
          最新版 Android框架与HMTL5开发平台PhoneGap架构设计与深度定制培训   在软硬整合领域, Android以其对软件和硬件的高度开放性引领了当今的软硬整合潮流,全世界正在进行一场轰轰烈烈的Android运动,Android以不可思议的速度渗透越来越广的领域,Android智能手机、Android智能电视、Android微波炉、Android平板电脑、Android智能机器人、Android车载系统等越来越多的Android产品涌入人们的工作和生活中,自从Google的Android@Home战略发布以来,更是让世界对Android充满了怦然心动的期待,可以预测,未来的家庭智能化和物联网时代将是Android的天下! 谁,将成为软硬整合时代的新主人? 谁,将彻底掌握Android从底层开发到框架整合技术在到上层App开发的全部技术? 谁,将彻底洞悉HTML5的技术源泉和精髓,进而在HTML5游刃有余?   中国电子标准协会 http://www.ways.org.cn 恭喜你,当别人还在雾里看花,你却有机会彻底掌握Android软、硬、云整合技术。 这是一次彻底的Android架构、思想和实战技术的洗礼。 彻底掌握Andorid HAL、Android Runtime、Android Framework、Android Native Service、Android Binder、Android App、Android Testing、HTML5技术的源泉和精髓等核心技术,不仅仅是技术和代码本身,更重要的是背后的设计思想和商业哲学。   聪明如你,请尽快研习。   一、课程特色    贯通Android软硬整合和HTML5端云整合技术整个体系; 全程案例驱动,重在剖析案例代码背后的设计思维和商业密码; 彻底掌握Android HAL的背后的密码; 彻底掌握Android HAL的实现机制和技术 彻底掌握Android Framwork的背后的密码 彻底掌握Android Framwork的设计思维和理念 揭秘Android系统的运行的基石Binder 以Camera实例来彻底剖析Native Service和Binder 彻底实战编写Andorid应用程序的一切技术 掌握HTML5技术的源泉和精髓 二、培训对象 对Android软硬整合感兴趣的人员; 希望迅速了解和掌握Android应用和底层技术的人员; Android底层开发者; Android框架设计和开发者; Android产品架构师; Android系统架构师; Android应用程序开发者; 欲从事HTML5系统工作的人员(浏览器的开发、PhoneGap的的Plugin开发等) 希望从事移动终端开发的爱好者、工程师、程序员、以及相关行业的工程技术人员 培训目标 致力于打造在软硬云整合时代具有独立思考能力和实践能力的高素质IT人才; Android高级工程师 Android移植工程师 Android框架开发工程师 Android项目经理 Android架构师 HTML5系统架构和开发人员 四、学员基础       1) 具有Java基础;       2) 具有C和C++基础更佳;       3)对设计模式有所有了解对提升听课效果会大有裨益;   六、培训方式 本课程共计3天,内容涵盖Android底层、Android HAL、Android Runtime、Android Framework、Android Native Service、Android Binder、Android App开发、Android的Web开发等软硬云整合的的几乎所有核心技术并揭秘HTML5技术的源泉和精髓,致力于打造在软硬云整合时代具有独立思考能力和实践能力的高素质IT人才;授课是以案例驱动为基础重在讲解代码背后的设计思维和商业密码; 七、培训内容     第一天 第1个主题:Android架构揭秘 1,1 Google是如何通过Android支持、掌控全球的硬件厂商和应用程序开发者的? 1,2 Android控制力的源泉是什么?技术上如何实现? 1,3 Android的Linux Kernal、HAL、Libararies、Runtime、Application Framework设计的理念和实现技术; 1.4 Android平台与硬件、云的微妙关系;   第2个主题:Android开机流程揭秘 2,1 第一个用户进程剖析; 2,2 ServiceManager与Binder的关系; 2,3 Zygote揭秘及其运作方式; 2,4 Android中的第一个Java进程揭秘,第一个Java进程和ServiceManager的关系及代码实现;   第3个主题:Android中启动一个新的应用程序揭秘 3,1 当我们触摸Android屏幕中Launcher上的一个应用程序的图标的时候到底发生怎样的调用过程? 3,2 应用程序的执行入口到底在哪里? 3.3 一个新的Android应用程序的进程到底是怎么产生的?   第4个主题:HAL揭秘 4.1 HAL被加入Android中的真正历史原因分析 4.2 HAL的意外价值揭秘 4.3 HAL的Stub 4.4 hw_module_t与hw_device_t 4.5 C语言如何实现继承来满足HAL Stub的设计目的?包括内存结构分析和代码风格讨论等 4.6 如何避免HAL Stub实现时的Dirty Code?   第5个主题:HAL Stub实战 5.1 用面向对象的思想分析、设计、实现Stub 5.2 hw_module_t的子类和hw_device_t的子类的关系以及这种关系的优势 5.3在结构体中如何实现C函数的调用?hw_module_t的子类在代码中又是如何和hw_device_t的子类交互的? 5.4 类型转换问题   第6个主题:HAL和Linux Kernel 6.1 HAL Stub访问和控制硬件 6.2 Android下的Linux Kernel剖析 6.3 Android 硬件的Driver 6.4 访问Linux内核空间的Driver   第7个主题:Service与HAL Stub整合 7.1 以面向服务的观点和方式与HAL交互 7.2 Library的中so库文件的类型及C/S结构剖析 7.3 hw_get_module 7.4 获取HAL Stub对象的代码流程剖析 7.5 为何HAL Stub的open方法必须提供supporting API(对设备的操作接口)给runtime;   第8个主题:Service、ServiceManager和Binder交互关系揭秘 8.1 Binder的第一号服务是谁?为何要这样设计和实现? 8.2 如何编写Service 8.3 新的Service产生与ServiceManager和Binder交互流程 8.4 如何获取一个Service? 8.5 Binder的生产者与消费者模式剖析     时间 內  容 备注 第二天 第9个主题:Binder与Shared Memory 9.1 Binder源代码剖析 9.2 Shared Memory剖析 9.3 Binder是如何使用共享内存来完成进程间通信的? 9.4 从代码的角度来分析Binder使用Shared Memory的生产者与消费者模式   第10个主题:Dalvik VM 10.1 Dalvik VM的特点,Dalvik VM和JVM的比较 10.2 Dalvik VM的内存分布及OOM(Out of Memory)的根本原因和解决方案是什么? 10.3 Preload Classes和 Preload Resources,ClassLoader到底在哪里? 10.4 Dalvik与Java和C/C++   第11个主题:Android中的JNI编程 11.1 Java调用C/C++ 11.2 JNIEnv、JVM、JObject揭秘 11.3 C/C++创建Java对象、调用Java属性和方法 11.4 JNI中的多线程编程 11.5 Facade Pattern在JNI中绝妙应用剖析 11.6 PnP(Plug and Play)   第12个主题:Android中的NDK编程 11.1 NDK与JNI关系揭秘 11.2 NDK开发的流程 11.3 采用NDK方式开发出的程序安装和运行的内幕 11.4 NDK中的Java与C/C++相互调用 11.5 NDK中的多线程编程 11.6 关于Android软件开发的标准化和可替换性揭秘   第13个主题:SystemServer与Framework中的Service 13.1 Zygote与SystemServer 13.2 SystemServer开启Java世界的过程揭秘 13.3 Android Service和Native Service是如何关联起来的? 13.4 Android Service与ServiceManager 13.5 如何把自己的服务加入到ServiceManager中?   第14个主题:把Java写的 Service加入到Applciation Framework中 14.1 IInterface与CTS 14.2 Binder 14.3 AIDL 14.4 Java Service与Manager 14.5 SystemServer、ServiceManager   第15个主题:Android框架移植移植时的事件驱动机制 15.1 Android Service是如何应对硬件阻塞的? 15.2 开辟新的子线程并不断的poll 15.3 Listener注册 15.4 Callback 15.5 Application Framework中的Handler、Message、Looper、MessageQueue、 15.6 事件驱动机制实例   第16个主题:Manager、Service和完整的数据流 16.1,Manager和Service分离的原则 16.2,ANR问题 16.3,阻塞式的操作和非阻塞式操作 16.4,以实例说明Android中的从最底层到最上层的数据流   第17个主题:Android软、硬、云三位一体整合 17.1 从技术角度揭秘云,包括云的关键技术和实现方法 17.2 在Native Service中整合Android与云 17.3 在Application Framework中整合Android与云 17.4 Android软、硬、云三位一体整合,包括模式、策略、实现技术             时间 內  容 备注 第三天 第18个主题:Android Application Framwork和App的关系 18.1 Framework和App的具体关系是什么? 18.2 Framework和App的交互过程? 18.3 Framework如何掌控App的? 18.4 Framework与Android的四大组件;   第19个主题:Android Application Framwork和App的关系 19.1 Framework和App的具体关系是什么? 19.2 Framework和App的交互过程? 19.3 Framework如何掌控App的? 19.4 Framework与Android的四大组件;   第20个主题: Handler、Looper、Message、MessageQueue 20.1. Android的事件驱动模型 20.2. Looper、MessageQueue、Hanlder、Message等源码深度剖析 20.3. Looper、MessageQueue、Hanlder、Message及多线程实战案例 第21主题:AsyncTASK异步线程技术 21.1. 使用AsyncTask的原因及对AsyncTask的思考 21.2. AsyncTask代码示例 21.3. AsyncTask源码剖析   第22个主题:Android测试 22.1.Android代码测试的好处,测试的方式 22.2.JUnit框架解析 22.3.测试用例的生命周期 22.4.自动化测试 22.5.源码剖析   第23个主题:广播接受者BroadcastReceiver,短信***案例(接受到短信后上传到服务器或发送到指定的号码或者发送到指定的邮件中) 23.1.剖析广播接收者,与JMS的比较,广播接受者的IoC原理 23.2.短信监听Android客户端 23.3.服务器端搭建 23.4.通过网络把接收到的短信上传到服务器 23.5.把接收到的短信发送到指定的手机号码或者邮件中 23.6.BroadcastReceiver的的生命周期和注意事项以及5秒钟生命响应时间的解决方案   第24个主题:服务Service,电话***(每次开机的时候自动开机,电话来时录音并上传到服务器) 24.1.详细剖析Service 24.2.构建电话监听的Service 24.3.使用BroadcastReceiver监听开机事件,并在开机时启动电话监听的Service 24.4.上传音频文件到服务器 24.5.关于Android安全体系的思考   第25个主题:ContentProvider背景、用途,如何构建ContentProvider,UriMatcher,ContentUris,对CotentProvider进行单元测试、源代码分析 25.1.ContentProvider背景、用途 25.2.构建ContentProvider的详细步骤 25.3.对URI的彻底剖析 25.4.分析UriMatcher,ContentUris 25.5.对ContentProvider的业务层代码进行单元测试 25.6.ContentProvider的源代码剖析 第26主题:基于通讯录的开发 26.1. 通讯录的数据库和数据表分析 26.2. 通讯录ContentProvider的源码剖析 26.3. 获取所有的联系人信息 26.4.添加联系人 26.5.如何处理添加通讯录记录时的事物问题   第27个主题:断点续传(一)类似迅雷的多线程下载器(适用于任何类型的文件下载) 27.1,多线程下载断点续传原理和流程图 27.2,下载文件时Http协议协议详解 27.3,多线程下载断点续传程序:设计服务端和Android端 27.4,Android端的内容涉及IoC、多线程、SQLite数据库、Handler、Http协议、缓存处理、意外关机时候的处理、编写框架、MVC、Service、Android中的I/O流、代码调试、Activity的生命周期等 27.5,单元测试 27.6,软件调试   第28个主题:断点续传(二)多线程断点文件上传器(适用于任何类型的文件上传) 28.1,断点续传原理和流程图 28.2,上传文件的Http协议详解 28.3,自定义自己的文件传输协议 28.4,服务端程序的编写:文件的下载与实时数据的记录、监听模式、乱码问题的处理、并发问题、黑客安全问题 28.5,客户端程序的编写:Android内存溢出问题,Android中的Socket编程、大文件的传输、大文件传输时候的安全问题 28.6,单元测试 28.7,软件调试 第29个主题:Android客户端表单数据的上传 29.1,上传基本的数据类型 29.2,上传图片等附件 把代码重构为能够上传任意数量的字段和任意数量的附件的工具类   第30个主题:Android中Java与WebView中Javascript相互沟通 30.1,制作Android界面的新大陆 30.2,Java调用Javascript 30.3,Javascript调用Java   第31个主题:浏览器开发和自定义 31.1 浏览器定制和开发的核心原理剖析 31.2 浏览器定制和开发的技术手段剖析 31.3 浏览器定制和开发实战   第32个主题:HTML5时代:Device、Browser、Cloud 32.1  HTML5时代谁最重要? 32.2  HTML5与Device 32.3  HTML5与Cloud 32.4  什么主导了HTML5时代?   第33个主题:HTML5开发平台----PhoneGap框架的技术基石是什么? 33,1 使用WebView 33,2 在WebView中使用JavaScript 33.3 创建本地Java API 33.4 使用JavaScriptInterface 33.5 JavaScript调用Java 33.6 Java调用JavaScript 33.7 PhoneGap是如何使用JavaScriptInterface的 第34个主题:PhoneGap的Plugin开发 34.1如何扩展PhoneGap的功能? 34.2 IPlugin接口 34.3 Proxy-Stub模式在Plugin开发中的应用及价值 34.4 Plugin开发中如何控制硬件厂商和Web开发者 34.5 Plugin核心代码剖析及开发实战          
  • 热度 18
    2013-6-8 15:03
    1008 次阅读|
    0 个评论
           Android 框架与HMTL5开发平台PhoneGap架构设计与深度定制培训   2008年到2012年,手机行业经历了第一个黄金的五年,已经正式结束了,其中三星凭借搭载Android系统的Galaxy SIII成功超过iPhone,成为全球智能手机的王者; 2013年到2015年,第二个智能手机黄金时代已经开始并正在上演; 从2010年的不足5%的市场占有率到2012年底86.4%,Android系统之所以能够能够风靡全世界,其核心在于Android近乎完美的框架:HAL和Application Framwork,其中HAL是是底层硬件框架,Android移植的底层核心,而Application Framwork负责传递底层的硬件功能同时控制Apps,是Android应用程序开发和运行背后的主宰者,掌握Android的运行机制和解决Android Apps开发的复杂问题就必须掌握Application Framwork。   本课程聚焦于HAL+Application Framework+Browser+HTML5开发为核心,一次性贯通Android软硬整合和HTML5端云整合。   中国电子标准协会 http://www.ways.org.cn     一、课程特色    贯通Android软硬整合和HTML5端云整合技术整个体系; 全程案例驱动,重在剖析案例代码背后的设计思维和商业密码; 彻底掌握Android HAL的背后的密码; 彻底掌握Android HAL的实现机制和技术 彻底掌握Android Framwork的背后的密码 彻底掌握Android Framwork的设计思维和理念 揭秘Android系统的运行的基石Binder 以Camera实例来彻底剖析Native Service和Binder 彻底实战编写Andorid应用程序的一切技术 掌握HTML5技术的源泉和精髓   二、培训对象 对Android软硬整合感兴趣的人员; 希望迅速了解和掌握Android应用和底层技术的人员; Android底层开发者; Android框架设计和开发者; Android产品架构师; Android系统架构师; Android应用程序开发者; 欲从事HTML5系统工作的人员(浏览器的开发、PhoneGap的的Plugin开发等) 希望从事移动终端开发的爱好者、工程师、程序员、以及相关行业的工程技术人员 培训目标 致力于打造在软硬云整合时代具有独立思考能力和实践能力的高素质IT人才; Android高级工程师 Android移植工程师 Android框架开发工程师 Android项目经理 Android架构师 HTML5系统架构和开发人员 四、学员基础       1) 具有Java基础;       2) 具有C和C++基础更佳;       3)对设计模式有所有了解对提升听课效果会大有裨益;   六、培训方式 本课程共计3天,内容涵盖Android底层、Android HAL、Android Runtime、Android Framework、Android Native Service、Android Binder、Android App开发、Android的Web开发等软硬云整合的的几乎所有核心技术并揭秘HTML5技术的源泉和精髓,致力于打造在软硬云整合时代具有独立思考能力和实践能力的高素质IT人才;授课是以案例驱动为基础重在讲解代码背后的设计思维和商业密码; 七、培训内容     第一天 第1个主题:Android中启动一个新的应用程序揭秘 1,1 当我们触摸Android屏幕中Launcher上的一个应用程序的图标的时候到底发生怎样的调用过程? 1,2 应用程序的执行入口到底在哪里? 1.3 一个新的Android应用程序的进程到底是怎么产生的?   第2个主题:Android开机流程揭秘 2.1  第一个用户进程剖析; 2.2  ServiceManager与Binder的关系; 2.3  Zygote揭秘及其运作方式; 2.4  Android中的第一个Java进程揭秘,第一个Java进程和ServiceManager的关系及代码实现;   第3个主题:细致剖析Init进程 3.1 Init进程运行过程是什么? 3.2 init.rc剖析:Action List、Service List等 3.3进程的启动与终止   第4个主题:HAL Stub实战 4.1 用面向对象的思想分析、设计、实现Stub 4.2 hw_module_t的子类和hw_device_t的子类的关系以及这种关系的优势 4.3在结构体中如何实现C函数的调用?hw_module_t的子类在代码中又是如何和hw_device_t的子类交互的? 4.4 类型转换问题   第5个主题:Service与HAL Stub整合 5.1 以面向服务的观点和方式与HAL交互 5.2 Library的中so库文件的类型及C/S结构剖析 5.3 hw_get_module 5.4 获取HAL Stub对象的代码流程剖析 5.5 为何HAL Stub的open方法必须提供supporting API(对设备的操作接口)给runtime;   第7个主题:细致剖析Binder 7.1 Binder IPC数据传递和数据流 7.2 RPC代码与RPC数据 7.3 Binder Driver分析 7.4 ContextManager     第8个主题:Service、ServiceManager和Binder交互关系揭秘 8.1 Binder的第一号服务是谁?为何要这样设计和实现? 8.2 如何编写Service 8.3 新的Service产生与ServiceManager和Binder交互流程 8.4 如何获取一个Service? 8.5 Binder的生产者与消费者模式剖析     第9个主题:Binder与Shared Memory 9.1 Binder源代码剖析 9.2 Shared Memory剖析 9.3 Binder是如何使用共享内存来完成进程间通信的? 9.4 从代码的角度来分析Binder使用Shared Memory的生产者与消费者模式   第10个主题:Dalvik VM 10.1 Dalvik VM的特点,Dalvik VM和JVM的比较 10.2 Dalvik VM的内存分布及OOM(Out of Memory)的根本原因和解决方案是什么? 10.3 Preload Classes和 Preload Resources,ClassLoader到底在哪里? 10.4 Dalvik与Java和C/C++     时间 內  容 备注 第二天   第11个主题:Android中的JNI编程 11.1 Java调用C/C++ 11.2 JNIEnv、JVM、JObject揭秘 11.3 C/C++创建Java对象、调用Java属性和方法 11.4 JNI中的多线程编程 11.5 Facade Pattern在JNI中绝妙应用剖析 11.6 PnP(Plug and Play)   第12个主题:Android中的NDK编程 11.1 NDK与JNI关系揭秘 11.2 NDK开发的流程 11.3 采用NDK方式开发出的程序安装和运行的内幕 11.4 NDK中的Java与C/C++相互调用 11.5 NDK中的多线程编程 11.6 关于Android软件开发的标准化和可替换性揭秘   第13个主题:SystemServer与Framework中的Service 13.1 Zygote与SystemServer 13.2 SystemServer开启Java世界的过程揭秘 13.3 Android Service和Native Service是如何关联起来的? 13.4 Android Service与ServiceManager 13.5 如何把自己的服务加入到ServiceManager中? 13.6以PowerManagerService为例分析其工作机制 13.7 WallpaperService底层机制分析     第14个主题:把Java写的 Service加入到Applciation Framework中 14.1 IInterface与CTS 14.2 Binder 14.3 AIDL 14.4 Java Service与Manager 14.5 SystemServer、ServiceManager   第15个主题:Android框架移植移植时的事件驱动机制 15.1 Android Service是如何应对硬件阻塞的? 15.2 开辟新的子线程并不断的poll 15.3 Listener注册 15.4 Callback 15.5 Application Framework中的Handler、Message、Looper、MessageQueue 15.6 事件驱动机制实例   第16个主题:Manager、Service和完整的数据流 16.1,Manager和Service分离的原则 16.2,ANR问题 16.3,阻塞式的操作和非阻塞式操作 16.4,以实例说明Android中的从最底层到最上层的数据流   第17个主题:Android Application Framwork和App的关系 17.1 Framework和App的具体关系是什么? 17.2 Framework和App的交互过程? 17.3 Framework如何掌控App的? 1.4 Framework与Android的四大组件;   第18个主题: Handler、Looper、Message、MessageQueue 18.1. Android的事件驱动模型 18.2. Looper、MessageQueue、Hanlder、Message等源码深度剖析 18.3. Looper、MessageQueue、Hanlder、Message及多线程实战案例   第19主题:ActivityManager与WindowManager彻底揭秘 19.1 ActivityManager ArchitectProxy执行流程Code 19.2 ActivityManager ArchitectProxy执行流程Code     时间 内容                                           第三天 第20主题:浏览器开发和自定义 20.1 浏览器定制和开发的核心原理剖析 20.2 浏览器定制和开发的技术手段剖析 20.3 浏览器定制和开发实战   第21个主题:HTML5 架构思维 21.1  All in JavaScript 21.2  Architect of Device Cloud 21.3  Open Platform API   第22主题:Android中Java与WebView中Javascript相互沟通 22.1  制作Android界面的新大陆 22.2  Java调用Javascript 22.3  Javascript调用Java   第23个主题:通过一个Blog实例实战HTML5CSS3 23.1 实战HTML5新增页面元素; 23.2 实战HTML5中的表单; 23.3 实战HTML5中的Canvas 23.4 实战html 5页面中视频和音频 23.5  CSS3技术实战   第24个主题:HTML5的新特性 24.1 本地存储 24.2 离线应用 24.3 多线程技术 24.4 地理位置信息 24.5 其它新特性   第25个主题:PhoneGap的技术思考 25.1  PhoneGap的架构艺术 25.2  PhoneGap与HTML5、CSS3、JavaScript的关系 25.3  PhoneGap与智能手机的核心功能——包括相机、文件访问、地理定位,加速器,联系人,声音和振动等 25.4  PhoneGap的优势和劣势   第26个主题:PhoneGap框架的技术基石是什么? 26.1  使用WebView 26.2  在WebView中使用JavaScript 26.3  创建本地Java API 26.4  使用JavaScriptInterface 26.5  JavaScript调用Java 26.6  Java调用JavaScript 26.7  PhoneGap是如何使用JavaScriptInterface的   第27个主题:PhoneGap案例开发实战 27.1  PhoneGap的生命周期事件 27.2 通过Connection测试网络链接 27.3 通过Accelerometer来采集设备的动作 27.4 通过Compass获得当前设备的方向 27.5  PhoneGap 操作本地系统的Camera 27.6  PhoneGap其它的本地API;   第28个主题:彻底洞悉jQuery Mobile 28.1  jQuery Mobile设计的技术思考和商业思考 28.2  jQuery Mobile入门初体验; 28.3 使用页眉、工具栏和标签栏; 28.4  jQuery Mobile中的表单和按钮; 28.5  jQuery Mobile中的列表; 28.6  jQuery Mobile和CSS结合; 28.7  jQuery Mobile主题; 28.8  jQuery Mobile的API; 28.9  jQuery Mobile和HTML5开发框架PhoneGap结合;   第29个主题:Node***实战高并发和非阻塞式的服务端 29.1  Node***的思考; 29.2  Node***开发环境安装; 29.3  Node***开发实战   第30个主题:Node***和WebSocket的整合 30.1 使用Node***和WebSocket打造非同步处理机制及其重大价值; 30.2使用Node***和WebSocket打造非同步处理机制案例实战      
相关资源