鸿蒙和安卓开发的一些对比

您所在的位置:网站首页 鸿蒙系统和安卓有本质区别吗 鸿蒙和安卓开发的一些对比

鸿蒙和安卓开发的一些对比

#鸿蒙和安卓开发的一些对比| 来源: 网络整理| 查看: 265

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

一、鸿蒙/安卓开发相关 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 AbilityService后台服务,处理后台的任务Data AbilityContentProvider数据内容提供者,用来管理自身应用、共享数据给其他应用Fragment模块化界面。Fragment依附于Activity上,一个Activity有多个Fragment界面回来切换。鸿蒙没有类似的功能类,可以说和AbilitySlice有点相似之处公共事件(CommonEventData)BroadcastReceiver用于发送、接收广播消息,鸿蒙和安卓在实现上有点差别,鸿蒙类似EventBus之类的框架,实际上都差不多,都是使用观察者的模式实现IntentIntent意图,对象之间传递信息的载体,主要用于组件间启动和传递数据,如上面鸿蒙的Page Ability与Service Ability之间的启动和传递数据,安卓的Activity和Activity,Activity和Service之前传递数据,就需要它TaskDispatcher任务分发器,鸿蒙已经把封装了类似线程池的类,安卓上要自己使用Java的线程池类EventHandlerHandler线程间通信的类,常用于子线程中通知更新UI 2、Java/XML UI类: 鸿蒙安卓描述ComponentView基础视图组件,各类UI组件基本都继承它。ComponentContainerViewGroup组视图,可以把它看成一个容器,这个容器能放多个视图组件。鸿蒙的ComponentContainer继承Component,安卓的ViewGroup继承ViewDirectionalLayoutLinearLayout按照水平或者垂直方向的布局,安卓叫线性布局,最常用的布局StackLayoutFrameLayout堆叠/层次/帧布局,视图组件会一层层堆叠覆盖,简单的来说就是后面的视图叠在前面的视图上,最常用的布局DependentLayoutRelativeLayout相对布局,按照布局中的其他组件的位置来定位的AdaptiveBoxLayout鸿蒙的自适应盒子布局,大概就是分为行和指定的多少列,每一行中,每一列的高度按照最高的那一列,每一列的宽度按照指定的高度。安卓的没有相似的布局。ConstraintLayout安卓的约束布局,要通过support包才使用,官方推荐的布局方式(创建带视图的项目一般默认使用它),其布局特性和RelativeLayout很相似,都是根据各个视图或父视图的相对位置来定位的,其灵活性要高于 RelativeLayout,而且可以使用鼠标拖动设计,设计上是比较方便,但是国内依然比较少用PositionLayoutAbsoluteLayout位置布局,子组件通过指定的x/y坐标定位位置TableLayoutTableLayout表格布局,按照表格排列划分组件TextTextView文本视图组件,显示普通的文字ButtonButton按钮视图组件TextFieldEditText可编辑文本框视图组件ImageImageView图片视图组件TabList和TabTabLayoutTab标题栏视图组件,实现多个标签栏/标题,能快速切换PickerNumberPicker滑动选择器视图组件DatePickerDatePicker年月日选择器视图组件TimePickerTimePicker时分秒选择器视图组件SwitchSwitch开关切换视图组件RadioButtonRadioButton单选按钮视图组件RadioContainerRadioGroup单选按钮组,RadioButton的容器,在其包裹下的RadioButton保证只有一个被选项CheckboxCheckbox多选框视图组件ProgressBarProgressBar进度条视图组件RoundProgressBar圆形进度条视图组件,安卓官方没有实现圆形的进度条组件,需要自己实现ToastDialogToast吐司,窗口上方弹出的文字提示对话框ScrollViewScrollView(垂直滚动)、HorizontalScrollView(横向滚动)滚动视图组件,用来包裹子组件,子组件超过一定高度或者宽度就能滚动显示ListContainerListView/RecyclerView列表视图组件,用来显示列表数据PageSliderViewPager页面滑动切换视图组件,广告切换功能一般会用到PageSliderIndicatorTabLayout指示器组件,安卓的TabLayout一般配合ViewPager使用WebViewWebView访问web页面的组件 3、其他类: 鸿蒙安卓描述HiLogLog日志打印类 4、资源 鸿蒙安卓描述ResourceTableR资源引用类,studio会自动构建该类。鸿蒙的需要ResourceTable类来引用,安卓直接使用R类资源引用,鸿蒙的没有安卓方便~ResourceTable.Id_xxR.id.xxJava代码中Id资源引用ResourceTable.Layout_xxR.layout.xxJava代码中Layout资源引用


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3