HarmonyOS

用Android的Activity生命周期解释HarmonyOS的Page Ability生命周期

孤人 提交于 2020-10-17 09:55:38
由华为出品、我国完全自主知识产权的HarmonyOS是一款“面向未来”、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统 。现已于2020年9月10日开源,并面向应用开发者发布Beta版本。预计明年鸿蒙将取代Android,全面支持华为手机。 Android程序员转型HarmonyOS程序员的已经提上了日程,学习HarmonyOS的开发是每个Android程序员的头等大事。就像每个Android程序员都是从Activity的生命周期开始学习Android开发的,我们转型Harmony开发也要从Page Ability的生命周期入手。本文我将用Android的Activity生命周期解释HarmonyOS的Page Ability生命周期。 如官方图所示,Page Ability的生命周期分初始状态(INITIAL)、前台状态(ACTIVE)、可见状态(INACTIVE)和后台状态(BACKGROUND),与Android的Activity的生命周期状态大同小异(把不可见状态分为了“刚创建”和“快结束”两种),触发这些状态的回调方法也可以理解为Activity的某些方法: (1)onStart(): 当系统首次创建Page Ability实例时,会触发onStart()方法。就像onCreate()方法在一个Activity实例的生命周期过程中只调用一次一样

三星Tizen系统的失败教训,值得华为鸿蒙学习

假如想象 提交于 2020-10-16 08:16:38
华为高管表示最快在明年将推出搭载鸿蒙系统的手机,而近期业界预期华为明年推出的鸿蒙手机将是中低端手机。鸿蒙系统能否取得成功决定着华为手机能否走得更远,华为发展鸿蒙系统或许应该吸取下三星当年发展Tizen系统的教训。 三星的Tizen系统并非从零起步,它最早是自行发展bada系统,后来与诺基亚和Intel合作的MeeGo系统相融合成为Tizen系统,由此可见Tizen系统可谓集中了当时几家世界领先科技企业的技术合力而成。 不过诺基亚早在2012年被微软收购后就放弃了MeeGo系统,后来Tizen系统发布后不久Intel也放弃了,于是Tizen系统就仅剩下三星一家力推。然而三星自己也没有全力推动Tizen系统,它主要是在中低端手机搭载Tizen系统,而在中高端手机上还是搭载谷歌的安卓系统。 三星的智能手机出货量多年来曾保持在3亿部以上,即使它拥有如此强大的实力也不敢完全押宝自家的Tizen系统,随着安卓系统在全球智能手机市场的份额迅速扩大,三星为了保持自家在智能手机市场的领先份额优势最终不得不放弃了Tizen系统,目前Tizen系统主要用在三星的冰箱、穿戴设备等产品上。 华为的鸿蒙系统号称早在2012年就开始研发,然而至今尚未搭载在手机上,鸿蒙系统最早是在去年用于荣耀智慧屏上,这与当年Tizen系统诞生时相比无疑要弱小很多。 华为声称将在自己的手机、平板、穿戴和PC等产品上将应用鸿蒙系统

漫画:如何螺旋遍历二维数组?

蓝咒 提交于 2020-10-15 06:15:28
Python实战社群 Java实战社群 长按识别下方二维码, 按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群 ▲ 作者丨小灰 来源丨程序员小灰(chengxuyuanxiaohui) ————— 第二天 ————— 什么意思呢?我们来举个例子,给定下面这样一个二维数组: 我们需要从左上角的元素1开始,按照顺时针进行螺旋遍历,一直遍历完所有的元素,遍历的路径就像下图一样: 经过这样的遍历,返回的元素结果如下: 1,2,3,4,5,10,15,20,19,18,17,16,11,6,7,8,9,14,13,12 ———————————— 第1层 从左到右遍历“上边”: 从上到下遍历“右边”: 从右到左遍历“下边”: 从下到上遍历“左边”: 第2层 从左到右遍历“上边”: 从上到下遍历“右边”: 从右到左遍历“下边”: 从下到上遍历“左边”: 第3层 从左到右遍历“上边”: 从上到下遍历“右边”: 从右到左遍历“下边”: 第三层的“左边”已无需遍历,二维数组到此遍历完毕。 public class SpiralOrder { public static List<Integer> spiralOrder(int[][] matrix) { List<Integer> list = new ArrayList<Integer>(); /

Xcode Tips 002:以源码形式显示 plist 文件

倾然丶 夕夏残阳落幕 提交于 2020-10-14 17:12:43
Python实战社群 Java实战社群 长按识别下方二维码, 按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群 ▲ 作者丨-> 来源丨知识小集(zsxjtip) Info.plist 文件是 iOS/macOS 应用的基本配置文件, plist 是一种结构化的文本文件,使用 Unicode UTF-8 编码,实际上是 XML 文件。 在默认情况下,Xcode 中的 Info.plist 文件在编辑器中如下方式显示: 为了让文件更具可读性, Info.plist 中的键都是以可读字符串出现的,而不是实际的键名。有时我们可能需要在代码中,将编程的方式获取属性列表中的某个属性的值,这时我们就需要知道对应的键名。若要显示实际的键名,有两种方式: • 在编辑器窗口中按住 control 键并单击任意键,在出现的菜单中启用 Raw Keys & Value • 以源文件的形式显示 plist 文件,如下所示: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key

继AMD之后,英特尔也表态可供货华为了!

邮差的信 提交于 2020-10-12 01:55:32
华为芯片断货再迎转机。 9月21日,据最新消息,英特尔官方表示,已获得向华为供货许可! 近日,英特尔、美光科技、韩国三星、SK海力士、台积电、联发科,中芯国际等厂商均向美国商务部提交了在9月15日以后继续对华为供货的许可证申请。目前已经获得许可的有AMD、英特尔。 实际上,华为并非将希望全部寄托于国外芯片厂商。据报道,针对芯片断供,华为目前暂时没有B计划,但具体对策主要还是寻求国产替代方案。 业内人士称:美国颁布针对华为的修订版禁令,旨在遏制其自造芯片的能力,此次Intel获得许可,更能说明这一点。 对于芯片断供的问题,华为多位高管都曾表明态度。华为消费者业务软件部总裁王成录在日前的大会上表示,“芯片问题涉及到的技术非常复杂,华为在这方面,困难一定有,毫无疑问。” 他认为,芯片问题同时也给了企业反思,没有选择就是最好的选择。“限制反而让大家有一个非常好的机会,危、机并存。” Gartner数据显示,2019年全球半导体收入约4180亿美元,前十中五家为美企: 波士顿咨询集团(BCG)2020年3月份发布的《限制对华贸易会如何结束美国在全球半导体行业的领导地位》的报告中称:在未来三到五年,如果美国继续对中国目前实体名单上赫然在列的公司使用含有美国技术的产品施加限制,美国半导体公司可能会失去8%的全球份额和16%的收入。 如果美国完全禁止半导体公司向中国客户出售产品

电子发烧友论坛参与Hispark开发板众筹被退单的问题,华为整了个猪队友?

﹥>﹥吖頭↗ 提交于 2020-10-12 01:47:17
感谢华为的介入,事情已经妥善解决。但是电子发烧友论坛缺乏成熟的社区运营经验,团队暴露了严重的管理问题,不适合继续参与鸿蒙社区的建设。 鸿蒙2.0是一个众望所归的操作系统,我们都非常的期待这个操作系统的生态打造。对于鸿蒙操作系统的关注,我们持续了很长时间,我们坚信这是一款可以改变中国软件产业的事情,需要包括我们开发者在内共同的努力,但是现在,我们因为在电子发烧友论坛参与了开发板的众筹遇到非常不愉快并且很不负责任的事情。 众筹页面有三个产品链接,我下单了其中的两个,HiSpark DIY IPC开发套件和HiSpark Wi-Fi IoT开发套件。我在下单的时候,HiSpark DIY IPC套件的标价是269,HiSpark Wi-Fi IoT开发套件的标价是239。下单截图如下: 我还在订单号2020091212013692的备注里写上了“中国人改变世界”的字样,我希望华为几千名工程师的努力会被世界所认可。然而接下来我要描述的,不仅仅是让开发者失望的事情,跟华为合作的电子发烧友论坛的愚蠢行为,并且想低调处理的态度,损害了鸿蒙生态。 我再次登陆了电子发烧友论坛的众筹页面。看到里面有提到有开发套件的视频课程,我想加一下客服微信,看看能不能索取相关课程,然后就发生了如下的事情。客服跟我说239的订单价格设置错误,需要补差价或者退单。我意识到这次他们所谓的价格标错的众筹

车载OS大盘点及市场发展格局分析

旧时模样 提交于 2020-10-10 14:06:51
一:车载OS几大系统介绍 OS,英文全称operating system,即操作系统,意思是指用于管理计算机硬件和软件资源,并提供通用服务的计算机程序。 对于我们日常接触的OS而言,操作系统就是Windows、Macos、Android,基于工程师们比较钟爱的Linux等。但是对于车载OS而言,一般就比较陌生了,车载OS,顾名思义,就是在汽车上使用的OS,与普通电脑、移动终端的OS不同,这类OS使用在汽车上。但是车载OS也有很多的分类和用途。 未来,汽车将演变为移动智能终端,软件将定义汽车,OS是传统车企实现数字转型的关键,成为各企业必争的战略要地。在汽车领域,OS包括与安全相关的控制系统OS和与用户体验相关的IVI(信息娱乐系统)OS两大部分。 至于各个操作系统之间有什么区别,有什么重要性,一般人是不关心的,但是随着智能网联汽车技术的发展,自动驾驶距离推广应用越来越近,车载操作系统很快进入汽车行业巨头的视线,并且纷纷布局,智能网联汽车发展大背景下的车载OS,也将会迎来一波江湖纷争。 进入2019年,车载OS领域的竞争急剧升温,QNX由于其安全性优势成为智能网联汽车行业的新宠,Linux基于自身开源特性和广大的工程师基础在低调中默默吸取市场份额,Google充分发挥Android开源优势并向第三方开发者开放Android Automotive OS,大众提出要自研vw.OS

尝鲜!我在华为鸿蒙上编写的第一个 Hello World!

谁说胖子不能爱 提交于 2020-10-07 04:24:20
最激动入门级选手的心的时刻来了,本示例将演示如何编写简单业务,输出“Hello World”。 修改源码 bugfix和新增业务两种情况,涉及源码修改。下面以新增业务举例,向开发者介绍如何进行源码修改。 1.确定目录结构。 开发者编写业务时,务必先在./applications/sample/wifi-iot/app路径下新建一个目录(或一套目录结构),用于存放业务源码文件。 例如:在app下新增业务my_first_app,其中hello_world.c为业务代码,BUILD.gn为编译脚本,具体规划目录结构如下: . └── applications └── sample └── wifi-iot └── app │── my_first_app │ │── hello_world.c │ └── BUILD.gn └── BUILD.gn 2.编写业务代码。 在hello_world.c中新建业务入口函数HelloWorld,并实现业务逻辑。并在代码最下方,使用OpenHarmony启动恢复模块接口SYS_RUN()启动业务。(SYS_RUN定义在ohos_init.h文件中) #include "ohos_init.h" #include "ohos_types.h" void HelloWorld(void) { printf("[DEMO] Hello world.\n

趣谈鸿蒙,一文尽始终

自古美人都是妖i 提交于 2020-10-05 13:49:16
鸿蒙   道教神话传说的远古时代,传说盘古在昆仑山开天辟地之前,世界是一团混沌的元气,这种自然的元气叫做鸿蒙,因此把那个时代称作鸿蒙时代,后来此一词也常被用来泛指称远古时代。四大名著《西游记》第一回中,也有“自从盘古破鸿蒙,开辟从兹清浊辨”的描述。 发展历程   2012年12月,华为在芬兰设立研究中心,开始规划自有操作系统“鸿蒙”。   2019年5月17日,由某教授领导的华为操作系统团队开发了自主产权操作系统——鸿蒙。   2019年5月24日,国家知识产权局商标局网站显示,华为已申请“华为鸿蒙”商标,申请日期是2018年8月24日,注册公告日期是2019年5月14日,专用权限期是从2019年5月14日到2029年5月13日。   同月,华为向欧洲知识产权局提交了“HUAWEI ARK OS”商标申请,“ARK”在英文中是“方舟”的意思,很有可能是华为自研操作系统的海外版本。   2019年7月12日,华为董事长梁华在深圳表示,鸿蒙本来就是为物联网开发的系统,使得在自动驾驶,远程操作医疗环境,提供低时延的一个操作系统。   2019年8月9日,在华为开发者大会上正式发布。   2020年9月10日,2020年华为开发者大会上,华为宣布推出鸿蒙OS 2.0版本。 技术特性   分布式架构首次用于终端OS,实现跨终端无缝协同体验。   确定时延引擎和高性能IPC技术实现系统流畅。

单片机常用的14个C语言算法,看过的都成了大神!

馋奶兔 提交于 2020-10-03 01:48:37
文章来源于:单片机与嵌入式 算法(Algorithm): 计算机解题的基本思想方法和步骤。 算法的描述: 是对要解决一个问题或要完成一项任务所采取的方法和步骤的描述,包括需要什么数据(输入什么数据、输出什么结果)、采用什么结构、使用什么语句以及如何安排这些语句等。通常使用自然语言、结构化流程图、伪代码等来描述算法。 一、计数、求和、求阶乘等简单算法 此类问题都要使用循环,要注意根据问题确定循环变量的初值、终值或结束条件,更要注意用来表示计数、和、阶乘的变量的初值。 例:用随机函数产生100个[0,99]范围内的随机整数,统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数并打印出来。 本题使用数组来处理,用数组a[100]存放产生的确100个随机整数,数组x[10]来存放个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数。即个位是1的个数存放在x[1]中,个位是2的个数存放在x[2]中,……个位是0的个数存放在数组x[10]。 二、求两个整数的最大公约数、最小公倍数 分析: 求最大公约数的算法思想:(最小公倍数=两个整数之积/最大公约数) (1) 对于已知两数m,n,使得m>n; (2) m除以n得余数r; (3) 若r=0,则n为求得的最大公约数,算法结束;否则执行(4); (4) m←n,n←r,再重复执行(2)。 例如: 求 m="14"