鸿蒙和安卓开发的一些对比
说明:写个文章简单总结一下鸿蒙和安卓开发常见的一些异同之处,能快速认识理解一下鸿蒙和安卓的开发,意在同时开发两个端的或者转鸿蒙比较方便理解。有空会更新一下。
一、鸿蒙/安卓开发相关
1、开发文档
鸿蒙官方文档:
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ability-ability-overview-0000000000029852
安卓官方文档:
https://developer.android.google.cn/guide
2、关于调试
鸿蒙调试:现在只能用远程模拟器,没有本地调试,对于没有真机调试,现在鸿蒙的远程模拟器还是比较麻烦,运行卡,1小时后就断开要重新安装了。然后对于分布式应用没真机现在也调试不了,以后要比较久才能开放本地模拟器和分布式应用调试。
二、鸿蒙/安卓开发语言对比
鸿蒙开发语言:
- Java (应用层开发)
- JS(使用前端渐进式的开发方式,参考Vue、小程序开发)(应用层开发)
- C/C++ (Framework/系统/硬件层开发)
Android开发语言:
- Java (应用层开发)
- kotlin (JVM语言,可以看成Java的衍生语言,比Java要简洁、易用)(应用层开发)
- C/C++ (Framework/系统/硬件层开发)
简单总结下鸿蒙开发的特点:
- 鸿蒙和安卓的应用层的开发都使用了Java开发,其鸿蒙的Java的API和安卓很相似,安卓开发的人员能够很快熟悉鸿蒙的开发
- 鸿蒙使用JS的前端语言作为开发应用语言,一方面由于国内比较多前端开发人员,容易吸引更多的人转到鸿蒙开发,一方面由于前端编程效率要比开发Java要快点,更容易开发。
三、鸿蒙/安卓常见使用的类/资源对比
1、重要基础类
鸿蒙 | 安卓 | 描述 |
---|---|---|
Page Ability (Ability 、AbilitySlice) |
Activity | 用户显示和交互的界面。鸿蒙的Page Ability一般由Page(Ability类)和AbilitySlice构成,一个Page可以由一个或多个AbilitySlice构成,可以说Page是管理AbilitySlice,这个和安卓的Activity有点区别,可以把一个AbilitySlice看作一个Activity界面,Page就是一组Activity;安卓上一个Activity就是一个Activity,没有组的定义,都是单独使用的,而鸿蒙一般是Page和AbilitySlice组合使用的。 |
Service Ability | Service | 后台服务,处理后台的任务 |
Data Ability | ContentProvider | 数据内容提供者,用来管理自身应用、共享数据给其他应用 |
Fragment | 模块化界面。Fragment依附于Activity上,一个Activity有多个Fragment界面回来切换。鸿蒙没有类似的功能类,可以说和AbilitySlice有点相似之处 | |
公共事件 (CommonEventData) |
BroadcastReceiver | 用于发送、接收广播消息,鸿蒙和安卓在实现上有点差别,鸿蒙类似EventBus之类的框架,实际上都差不多,都是使用观察者的模式实现 |
Intent | Intent | 意图,对象之间传递信息的载体,主要用于组件间启动和传递数据,如上面鸿蒙的Page Ability与Service Ability之间的启动和传递数据,安卓的Activity和Activity,Activity和Service之前传递数据,就需要它 |
TaskDispatcher | 任务分发器,鸿蒙已经把封装了类似线程池的类,安卓上要自己使用Java的线程池类 | |
EventHandler | Handler | 线程间通信的类,常用于子线程中通知更新UI |
2、Java/XML UI类:
鸿蒙 | 安卓 | 描述 |
---|---|---|
Component | View | 基础视图组件,各类UI组件基本都继承它。 |
ComponentContainer | ViewGroup | 组视图,可以把它看成一个容器,这个容器能放多个视图组件。鸿蒙的ComponentContainer继承Component,安卓的ViewGroup继承View |
DirectionalLayout | LinearLayout | 按照水平或者垂直方向的布局,安卓叫线性布局,最常用的布局 |
StackLayout | FrameLayout | 堆叠/层次/帧布局,视图组件会一层层堆叠覆盖,简单的来说就是后面的视图叠在前面的视图上,最常用的布局 |
DependentLayout | RelativeLayout | 相对布局,按照布局中的其他组件的位置来定位的 |
AdaptiveBoxLayout | 鸿蒙的自适应盒子布局,大概就是分为行和指定的多少列,每一行中,每一列的高度按照最高的那一列,每一列的宽度按照指定的高度。安卓的没有相似的布局。 | |
ConstraintLayout | 安卓的约束布局,要通过support包才使用,官方推荐的布局方式(创建带视图的项目一般默认使用它),其布局特性和RelativeLayout很相似,都是根据各个视图或父视图的相对位置来定位的,其灵活性要高于 RelativeLayout,而且可以使用鼠标拖动设计,设计上是比较方便,但是国内依然比较少用 | |
PositionLayout | AbsoluteLayout | 位置布局,子组件通过指定的x/y坐标定位位置 |
TableLayout | TableLayout | 表格布局,按照表格排列划分组件 |
Text | TextView | 文本视图组件,显示普通的文字 |
Button | Button | 按钮视图组件 |
TextField | EditText | 可编辑文本框视图组件 |
Image | ImageView | 图片视图组件 |
TabList和Tab | TabLayout | Tab标题栏视图组件,实现多个标签栏/标题,能快速切换 |
Picker | NumberPicker | 滑动选择器视图组件 |
DatePicker | DatePicker | 年月日选择器视图组件 |
TimePicker | TimePicker | 时分秒选择器视图组件 |
Switch | Switch | 开关切换视图组件 |
RadioButton | RadioButton | 单选按钮视图组件 |
RadioContainer | RadioGroup | 单选按钮组,RadioButton的容器,在其包裹下的RadioButton保证只有一个被选项 |
Checkbox | Checkbox | 多选框视图组件 |
ProgressBar | ProgressBar | 进度条视图组件 |
RoundProgressBar | 圆形进度条视图组件,安卓官方没有实现圆形的进度条组件,需要自己实现 | |
ToastDialog | Toast | 吐司,窗口上方弹出的文字提示对话框 |
ScrollView | ScrollView(垂直滚动)、HorizontalScrollView(横向滚动) | 滚动视图组件,用来包裹子组件,子组件超过一定高度或者宽度就能滚动显示 |
ListContainer | ListView/RecyclerView | 列表视图组件,用来显示列表数据 |
PageSlider | ViewPager | 页面滑动切换视图组件,广告切换功能一般会用到 |
PageSliderIndicator | TabLayout | 指示器组件,安卓的TabLayout一般配合ViewPager使用 |
WebView | WebView | 访问web页面的组件 |
3、其他类:
鸿蒙 | 安卓 | 描述 |
---|---|---|
HiLog | Log | 日志打印类 |
4、资源
鸿蒙 | 安卓 | 描述 |
---|---|---|
ResourceTable | R | 资源引用类,studio会自动构建该类。鸿蒙的需要ResourceTable类来引用,安卓直接使用R类资源引用,鸿蒙的没有安卓方便~ |
ResourceTable.Id_xx | R.id.xx | Java代码中Id资源引用 |
ResourceTable.Layout_xx | R.layout.xx | Java代码中Layout资源引用 |
鸿蒙和安卓开发的一些对比相关推荐
- 鸿蒙要出来了,安卓开发工程师有影响吗?
根据此前余承东所说,4月份鸿蒙就要用在部分华为手机上了.不少朋友在网络上开始问,这对安卓开发工程师有什么影响呢?我们需要颤抖吗... 我觉得这有点杞人忧天,与其担心是否会对安卓开发工程师有影响,不如去 ...
- ios系统和android开发工具,开发者对比安卓和iOS系统
安卓和iOS哪个好?今天就从开发者的角度来谈谈安卓和iOS有哪些区别,以及它们各自的优缺点. 一.开发环境对比 首先在开发环境的配置上,二者就表现出了极大的差异. 1.配置过程 iOS的开发环境非常完 ...
- 安卓开发要学多久_华为发布鸿蒙2.0,和安卓相似度达80%「西瓜视频」
2020年9月10号,华为消费者业务CEO余承东在华为开发者大会2020上宣布鸿蒙2.0系统正式发布,成为这一年来科技界最火爆的事件. 也有很多人提出质疑,为什么鸿蒙系统都升级到了2.0版本,消费者却 ...
- 京东有鸿蒙系统app,刘强东力挺华为鸿蒙,安卓版京东与鸿蒙版京东,差距不是一点点...
鸿蒙系统从2020年12月16日召开开发者大会以来,基本没有太多的消息传出,具体的体验状况怎样,华为手机用户一直都在等待华为公布出最新结果. 值得注意的是,与鸿蒙系统紧密合作的京东APP传出了新的信息 ...
- 华为回鸿蒙,信口开河!华为直播回应鸿蒙的安卓套壳传闻!
见过美国网友吐槽高通.苹果,没见过韩国网友吐槽三星,但是却有大量的国内网友一直在吐槽华为.6.5号华为将官方直播回应鸿蒙的安卓套壳传闻!华为技术人员将在线回答鸿蒙套壳安卓传闻,希望黑子,水军等可以当面 ...
- 转载:从法律和商业角度看鸿蒙和安卓的关系
转载:https://www.newsmth.net/nForum/#!article/ITExpress/2256856 发信人: kevinz (生活在云端), 信区: ITExpress 标 ...
- 鸿蒙 直播,信口开河!华为直播回应鸿蒙的安卓套壳传闻!
见过美国网友吐槽高通.苹果,没见过韩国网友吐槽三星,但是却有大量的国内网友一直在吐槽华为.6.5号华为将官方直播回应鸿蒙的安卓套壳传闻!华为技术人员将在线回答鸿蒙套壳安卓传闻,希望黑子,水军等可以当面 ...
- 为什么鸿蒙比安卓快,有人说华为鸿蒙比安卓快60%,你觉得可信吗,为什么?
原标题:有人说华为鸿蒙比安卓快60%,你觉得可信吗,为什么? 在手机操作系统中,安卓与IOS已经平分天下,此前的诺基亚塞班以及微软WP都已经消失得无影无踪.在很多工程师的眼中,建立手机系统从来都不是一 ...
- 鸿蒙是安卓换皮UI,鸿蒙2.0是安卓换皮?还真不是
安卓和 iOS 到底谁好用?科技君觉得这问题就算争论个三天三夜怕是也不会有结果.搞不好还会引战! 鸿蒙加入战局 讲道理,这俩确实是各有优缺点,很难说谁有绝对优势.安卓是开放的,可玩性高,拓展性强,iO ...
最新文章
- 怎么让代码不再臃肿,写的像诗一样优雅
- Refuses to install for WTP10
- “德国屈臣氏”来天猫!欧洲3000家门店,优质低价背后有啥秘密
- 电源管理 解析_智能电源控制箱
- (46)VHDL实现4位桶性形移位器
- python爬高德地图_爬取高德地图poi数据
- 软考软件设计师下午真题-面向对象的程序设计与实现-装饰设计模式(2012年上半年试题六))Java代码讲解
- thinkpad 开启虚拟服务器,ThinkPad笔记本怎么开启处理器虚拟化技术
- php zip扩展文件,php使用ZipArchive扩展实现文件的zip压缩与zip解压
- matlab心电滤波,应用Matlab对人体的心电信号进行滤波
- android设置闹钟组件,Android 设置系统闹钟
- 卷积神经网络——灰度图像的卷积
- C#网络编程 (二) 数据流的类型和应用
- Error opening device
- 敏捷开发?敏捷管理?什么是敏捷?(一)
- java专业大学生入伍_JAVA程序征兵系统(包含登录系统和征兵系统)
- CAD之设置坐标原点
- java实现手机扫二维码登陆
- linux必装软件有哪些,来说说Linux下的那些常用软件
- 新型无线充电技术:能为人体植入设备充电