说明:写个文章简单总结一下鸿蒙和安卓开发常见的一些异同之处,能快速认识理解一下鸿蒙和安卓的开发,意在同时开发两个端的或者转鸿蒙比较方便理解。有空会更新一下。

一、鸿蒙/安卓开发相关

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资源引用

鸿蒙和安卓开发的一些对比相关推荐

  1. 鸿蒙要出来了,安卓开发工程师有影响吗?

    根据此前余承东所说,4月份鸿蒙就要用在部分华为手机上了.不少朋友在网络上开始问,这对安卓开发工程师有什么影响呢?我们需要颤抖吗... 我觉得这有点杞人忧天,与其担心是否会对安卓开发工程师有影响,不如去 ...

  2. ios系统和android开发工具,开发者对比安卓和iOS系统

    安卓和iOS哪个好?今天就从开发者的角度来谈谈安卓和iOS有哪些区别,以及它们各自的优缺点. 一.开发环境对比 首先在开发环境的配置上,二者就表现出了极大的差异. 1.配置过程 iOS的开发环境非常完 ...

  3. 安卓开发要学多久_华为发布鸿蒙2.0,和安卓相似度达80%「西瓜视频」

    2020年9月10号,华为消费者业务CEO余承东在华为开发者大会2020上宣布鸿蒙2.0系统正式发布,成为这一年来科技界最火爆的事件. 也有很多人提出质疑,为什么鸿蒙系统都升级到了2.0版本,消费者却 ...

  4. 京东有鸿蒙系统app,刘强东力挺华为鸿蒙,安卓版京东与鸿蒙版京东,差距不是一点点...

    鸿蒙系统从2020年12月16日召开开发者大会以来,基本没有太多的消息传出,具体的体验状况怎样,华为手机用户一直都在等待华为公布出最新结果. 值得注意的是,与鸿蒙系统紧密合作的京东APP传出了新的信息 ...

  5. 华为回鸿蒙,信口开河!华为直播回应鸿蒙的安卓套壳传闻!

    见过美国网友吐槽高通.苹果,没见过韩国网友吐槽三星,但是却有大量的国内网友一直在吐槽华为.6.5号华为将官方直播回应鸿蒙的安卓套壳传闻!华为技术人员将在线回答鸿蒙套壳安卓传闻,希望黑子,水军等可以当面 ...

  6. 转载:从法律和商业角度看鸿蒙和安卓的关系

    转载:https://www.newsmth.net/nForum/#!article/ITExpress/2256856 发信人: kevinz (生活在云端), 信区: ITExpress 标   ...

  7. 鸿蒙 直播,信口开河!华为直播回应鸿蒙的安卓套壳传闻!

    见过美国网友吐槽高通.苹果,没见过韩国网友吐槽三星,但是却有大量的国内网友一直在吐槽华为.6.5号华为将官方直播回应鸿蒙的安卓套壳传闻!华为技术人员将在线回答鸿蒙套壳安卓传闻,希望黑子,水军等可以当面 ...

  8. 为什么鸿蒙比安卓快,有人说华为鸿蒙比安卓快60%,你觉得可信吗,为什么?

    原标题:有人说华为鸿蒙比安卓快60%,你觉得可信吗,为什么? 在手机操作系统中,安卓与IOS已经平分天下,此前的诺基亚塞班以及微软WP都已经消失得无影无踪.在很多工程师的眼中,建立手机系统从来都不是一 ...

  9. 鸿蒙是安卓换皮UI,鸿蒙2.0是安卓换皮?还真不是

    安卓和 iOS 到底谁好用?科技君觉得这问题就算争论个三天三夜怕是也不会有结果.搞不好还会引战! 鸿蒙加入战局 讲道理,这俩确实是各有优缺点,很难说谁有绝对优势.安卓是开放的,可玩性高,拓展性强,iO ...

最新文章

  1. 怎么让代码不再臃肿,写的像诗一样优雅
  2. Refuses to install for WTP10
  3. “德国屈臣氏”来天猫!欧洲3000家门店,优质低价背后有啥秘密
  4. 电源管理 解析_智能电源控制箱
  5. (46)VHDL实现4位桶性形移位器
  6. python爬高德地图_爬取高德地图poi数据
  7. 软考软件设计师下午真题-面向对象的程序设计与实现-装饰设计模式(2012年上半年试题六))Java代码讲解
  8. thinkpad 开启虚拟服务器,ThinkPad笔记本怎么开启处理器虚拟化技术
  9. php zip扩展文件,php使用ZipArchive扩展实现文件的zip压缩与zip解压
  10. matlab心电滤波,应用Matlab对人体的心电信号进行滤波
  11. android设置闹钟组件,Android 设置系统闹钟
  12. 卷积神经网络——灰度图像的卷积
  13. C#网络编程 (二) 数据流的类型和应用
  14. Error opening device
  15. 敏捷开发?敏捷管理?什么是敏捷?(一)
  16. java专业大学生入伍_JAVA程序征兵系统(包含登录系统和征兵系统)
  17. CAD之设置坐标原点
  18. java实现手机扫二维码登陆
  19. linux必装软件有哪些,来说说Linux下的那些常用软件
  20. 新型无线充电技术:能为人体植入设备充电

热门文章

  1. update set join和 update set from
  2. 新浪微博与腾讯微博暂停评论功能
  3. mysql mysqladmin命令_mysqladmin命令
  4. CentOS 30分钟部署 .net core 在线客服系统
  5. 图片马赛克怎么打?分享好用的图片添加马赛克的技巧
  6. JAVA基础整理(二):数组
  7. 织梦后台上传图集显示302错误解决方法
  8. 超文本标记语言(html)之超链接的使用
  9. 使用http-server配置在本地开启http服务器
  10. 身为职场人要怎么提高自信心?