当前位置: 首页 > news >正文

Android TV跨平台开发心得

这半年来陆陆续续做了一堆poc,刚开始是flutter,结果领导叫停了,说有其他部门做一样的事,真不巧;后来是react native,开发了个demo,上报上去了已经;现在又要做android native+webview PWA,也做的差不多了。一直忙到现在,终于喘口气。前两天领导让我出一个flutter培训,惊奇的发现,才放下不久的flutter已经忘的差不多了,估计react native也快了,再不总结一下,半年就白干了

纯主观感受,没有一点客观

Flutter最大的一个特点就是它的skia引擎,让给我的感觉就像一块画布,skia在上面画,这个画布不管铺到ios,安卓,还是什么其他的(据说还能用来开发桌面端和web,真的有人这么干吗),都是一样的,带来相同的体验

React Native的是用的原生的组件,不过我觉得吧,一个view,你width height设置好了,bgcolor shadow全填了,那还能显示的不一样?不过确实,针对不同平台不同写法的情况是有的,比如<video>,react-native-video,一堆选项ios专用,这就是由于底层安卓用的是exoplayer,ios用的avplayer,exoplayer和avplayer的feature不同导致的。但是这个,flutter的video就没有吗,也不见得吧,flutter 也是 embad 到这俩player的

然后flutter还有一个,就是它的引擎,巨大无比,装在apk包里,apk包巨大,装在tpk包里,tpk包巨大。这个其实要是装app还好,装得上去就行,但如果是想做web页面,这个首屏加载速度简直感人,给大家放一个flutter demo感受一下:
https://flutter.github.io/samples/web/material_3_demo/

所以我觉得总体上Flutter好像相对React Native没看出什么特别的优势,而且它是dart写的,很多人一看到dart就害怕了,要新学,就算了

dart其实不难,有点像java,就是很面向对象,还有关键字啥的。反正我当时学会了StatelessWidget和StatefulWidget就上手写了,不会的现查,也写的挺顺利的

倒是开发react native,js,老本行啊,我当时可有信心了,感觉这不是容易的很,但是,奉劝大家,手里已经有一个写好的react项目的,千万不要觉得迁移到react native非常方便!一点都不方便!不止是div要换成View的问题,webapp用的那些包,什么sass,className,都要找react native版本的替代,能替代的,配置配一个下午,替代不了的,等着重写吧,比如关于页面跳转的,web和android app的逻辑都不一样,只能用react navigator重写

还有样式,没想到样式表从scss拉过来放到js里面这么长,这怎么不算一种css-in-js呢(x),甚至还不支持嵌套!这一个从json create的StyleSheet,不支持这个json嵌套!还有那个动画,只能说幸好我写过flutter,有一点底子,要不然直接从css动画过渡过去,肯定满脸懵

可能是开发用的电视棒的比较低端,同样的代码,在webapp里很快,开发react的时候也很少useMemo啥的,react native可好了,响应速度感人,没做优化前四五百毫秒都是有的,优化后200ms以内,喜欢顺手写onFocus={() => {setFocus(true); focusCb();}}的人有难了,必须提出来用useCallback包一下,要不然这个cb对象会重新生成,它生成不要紧,下面的所有自元素接到命令都要重新生成。。。

其他的下次再写吧,该下班了

相关文章:

Android TV跨平台开发心得

这半年来陆陆续续做了一堆poc&#xff0c;刚开始是flutter&#xff0c;结果领导叫停了&#xff0c;说有其他部门做一样的事&#xff0c;真不巧&#xff1b;后来是react native&#xff0c;开发了个demo&#xff0c;上报上去了已经&#xff1b;现在又要做android nativewebview …...

View->裁剪框View的绘制,手势处理

XML文件 <?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android…...

语言模型的进化:从NLP到LLM的跨越之旅

在人工智能的浩瀚宇宙中&#xff0c;自然语言处理&#xff08;NLP&#xff09;一直是一个充满挑战和机遇的领域。随着技术的发展&#xff0c;我们见证了从传统规则到统计机器学习&#xff0c;再到深度学习和预训练模型的演进。如今&#xff0c;我们站在了大型语言模型&#xff…...

应急响应--网站(web)入侵篡改指南

免责声明:本文... 目录 被入侵常见现象: 首要任务&#xff1a; 分析思路&#xff1a; 演示案例: IIS&.NET-注入-基于时间配合日志分析 Apache&PHP-漏洞-基于漏洞配合日志分析 Tomcat&JSP-弱口令-基于后门配合日志分析 (推荐) Webshell 查杀-常规后门&…...

vue3+vue-router+vite 实现动态路由

文章中出现的代码是演示版本&#xff0c;仅供参考&#xff0c;实际的业务需求会更加复杂 什么是动态路由 什么场景会用到动态路由 举一个最常见的例子&#xff0c;比如说我们要开发一个后台管理系统&#xff0c;一般来说后台管理系统都会分角色登录&#xff0c;这个时候也就涉…...

Okhttp hostnameVerifier详解

hostnameVerifier 方法简介核心原理参考资料 方法简介 本篇博文以Okhttp 4.6.0来解析hostnameVerfier的作用&#xff0c;顾名思义&#xff0c;该方法的主要作用就是鉴定hostnname的合法性。Okhttp在初始化的时候我们可以自己配置hostnameVerfier&#xff1a; new OkHttpClien…...

TCP的p2p网络模式

TCP的p2p网络模式 1、tcp连接的状态有以下11种 CLOSED&#xff1a;关闭状态LISTEN&#xff1a;服务端状态&#xff0c;等待客户端发起连接请求SYN_SENT&#xff1a;客户端已发送同步连接请求&#xff0c;等待服务端相应SYN_RECEIVED&#xff1a;服务器收到客户端的SYN请请求&…...

力扣-贪心算法4

406.根据身高重建队列 406. 根据身高重建队列 题目 假设有打乱顺序的一群人站成一个队列&#xff0c;数组 people 表示队列中一些人的属性&#xff08;不一定按顺序&#xff09;。每个 people[i] [hi, ki] 表示第 i 个人的身高为 hi &#xff0c;前面 正好 有 ki 个身高大于或…...

动手学深度学习6.2 图像卷积-笔记练习(PyTorch)

以下内容为结合李沐老师的课程和教材补充的学习笔记&#xff0c;以及对课后练习的一些思考&#xff0c;自留回顾&#xff0c;也供同学之人交流参考。 本节课程地址&#xff1a;卷积层_哔哩哔哩_bilibili 代码_哔哩哔哩_bilibili 本节教材地址&#xff1a;6.2. 图像卷积 — 动…...

展开说说:Android服务之bindService解析

前面两篇文章我们分别总结了Android四种Service的基本使用以及源码层面总结一下startService的执行过程&#xff0c;本篇继续从源码层面总结bindService的执行过程。 本文依然按着是什么&#xff1f;有什么&#xff1f;怎么用&#xff1f;啥原理&#xff1f;的步骤来分析。 b…...

node-sass 老版本4.14.0 安装失败解决办法

旧项目 npm install 发现 node-sass 安装 失败 切换淘宝镜像之后 不能完全解决问题。因为需要编译&#xff0c;本地没有Python环境不能实现 安装node-sass时&#xff0c;在install阶段会从Github上下载一个叫binding.node的文件&#xff0c;而「GitHub Releases」里的文件…...

最近很火的字幕截图生成器

网址 https://disksing.com/fake-screenshot/ 最近很火的字幕截图生成器&#xff0c;对于自媒体来说真的太实用了 另外透露一下&#xff0c;你仔细研究就会发现&#xff0c;这是个纯前端的项目...

使用RabbitMQ实现可靠的消息传递机制

使用RabbitMQ实现可靠的消息传递机制 大家好&#xff0c;我是微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 1. RabbitMQ简介 RabbitMQ是一个开源的消息代理软件&#xff0c;实现了高级消息队列协议&#xff08;AMQP&…...

Function Call ReACT,Agent应用落地的加速器_qwen的function calling和react有什么不同

探索智能体Agent的未来之路&#xff1a;Function Call与ReACT框架的较量&#xff0c;谁能引领未来&#xff1f; 引言 各大平台出现智能体应用创建&#xff0c;智能体逐渐落地&#xff0c;背后的使用哪种框架&#xff1f; 随着各大平台&#xff0c;例如百度千帆APPbuilder、阿…...

Java的JSONPath(fastjson)使用总结

背景 最近使用json实现复杂业务配置, 因为功能需要解析读取json的中节点数据。如果使用循环或者stream处理&#xff0c;可以实现&#xff0c;但是都过于麻烦。在想能否使用更简单json读取方式&#xff0c;正好发现fastjson支持该功能&#xff0c;本文做一个记录 案例说明 示…...

【大模型】大语言模型:光鲜背后的阴影——事实准确性和推理能力的挑战

大语言模型&#xff1a;光鲜背后的阴影——事实准确性和推理能力的挑战 引言一、概念界定二、事实准确性的局限2.1 训练数据的偏差2.2 知识的时效性问题2.3 复杂概念的理解与表述 三、推理能力的局限3.1 表层理解与深层逻辑的脱节3.2 缺乏常识推理3.3 无法进行长期记忆和连续推…...

Java面向对象练习(1.手机类)(2024.7.4)

手机类 package Phone;public class Phone {private String brand;private int price;private String color;public Phone(){}public Phone(String brand, int price, String color){this.brand brand;this.price price;this.color color;}public void setBrand(String bra…...

智慧生活新篇章,Vatee万腾平台领航前行

在21世纪的科技浪潮中&#xff0c;智慧生活已不再是一个遥远的梦想&#xff0c;而是正逐步成为我们日常生活的现实。从智能家居的温馨便捷&#xff0c;到智慧城市的高效运转&#xff0c;科技的每一次进步都在为我们的生活增添新的色彩。而在这场智慧生活的变革中&#xff0c;Va…...

Spring Cloud Gateway报sun.misc.Unsafe.park(Native Method)

项目引入spring cloud gateway的jar报&#xff0c;启动的时候报&#xff1a; [2024-07-05 10:10:16.162][main][ERROR][org.springframework.boot.web.embedded.tomcat.TomcatStarter][61]:Error starting Tomcat context. Exception: org.springframework.beans.factory.Bean…...

select single , select endselect

select single , select endselect single 根据条件找到一条数据&#xff0c;就出来了。 select endselect是在里面循环&#xff0c;每次找一条&#xff0c;依次放到into table中&#xff0c;或者放到into work area中&#xff0c;下面append table 。 实际开发中不建议这么操…...

CPU架构启发的智能仓储布局优化实践

1. 仓库布局优化的核心挑战与创新机遇在物流仓储领域&#xff0c;拣货环节通常占据运营成本的55%-65%&#xff0c;而其中约50%的时间消耗在无效行走路径上。传统矩形仓库布局虽然易于规划和施工&#xff0c;但其正交的通道设计导致拣货员需要频繁进行90度转向&#xff0c;这种&…...

DeepSeek重复代码识别失效了?5个被90%团队忽略的AST解析盲区及修复清单

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;DeepSeek代码重复检测失效的真相与影响 DeepSeek-R1 模型在代码理解任务中表现出色&#xff0c;但其内置的代码重复检测机制在特定场景下存在系统性失效。根本原因在于模型对语义等价但语法结构差异显著的代…...

机器学习在犬类癌症筛查中的性能极限与挑战:基于血液数据的多癌种分析

1. 项目概述&#xff1a;当机器学习遇见犬类癌症筛查作为一名长期关注数据科学在生命科学领域应用的从业者&#xff0c;我常常被问及一个充满希望的问题&#xff1a;我们能否像分析人类健康数据一样&#xff0c;利用宠物的常规体检数据&#xff0c;通过机器学习提前发现癌症的蛛…...

手机也能玩转无人机仿真:用安卓QGC App连接同一WiFi下的PX4 JMAVSim模拟器

手机也能玩转无人机仿真&#xff1a;用安卓QGC App连接同一WiFi下的PX4 JMAVSim模拟器 无人机开发者和爱好者们&#xff0c;是否曾想过用手机就能完成整个无人机仿真测试流程&#xff1f;告别笨重的电脑束缚&#xff0c;只需一部安卓设备&#xff0c;就能在沙发上调试飞控算法。…...

终极STL到STEP转换指南:如何实现3D打印模型到CAD设计的无缝衔接

终极STL到STEP转换指南&#xff1a;如何实现3D打印模型到CAD设计的无缝衔接 【免费下载链接】stltostp Convert stl files to STEP brep files 项目地址: https://gitcode.com/gh_mirrors/st/stltostp 在数字化制造和工程设计领域&#xff0c;STL到STEP转换已成为连接3D…...

ImageGlass:一个支持90+图像格式的轻量级Windows图片查看器

ImageGlass&#xff1a;一个支持90图像格式的轻量级Windows图片查看器 【免费下载链接】ImageGlass &#x1f3de; A lightweight, versatile image viewer 项目地址: https://gitcode.com/gh_mirrors/im/ImageGlass 还在为Windows自带的图片查看器功能单一而烦恼吗&…...

5步完美解决Windows 10 PL2303驱动兼容性问题:完整实施方案指南

5步完美解决Windows 10 PL2303驱动兼容性问题&#xff1a;完整实施方案指南 【免费下载链接】pl2303-win10 Windows 10 driver for end-of-life PL-2303 chipsets. 项目地址: https://gitcode.com/gh_mirrors/pl/pl2303-win10 在Windows 10系统中使用PL2303 USB转串口设…...

条件Shapley值:用shapr包实现更公平的模型可解释性

1. 项目概述与核心价值 如果你在数据科学或机器学习领域工作过一段时间&#xff0c;尤其是在需要向业务方或非技术团队解释模型决策的场景里&#xff0c;你肯定遇到过这样的困境&#xff1a;模型预测准确率很高&#xff0c;但当别人问“为什么这个客户的贷款申请被拒绝了&#…...

Unity VFX Graph实战:从Compute Shader依赖看GPU粒子特效的性能与平台适配(以HDRP项目为例)

Unity VFX Graph深度解析&#xff1a;GPU粒子特效的性能优化与跨平台实战指南在游戏开发领域&#xff0c;粒子特效一直是营造沉浸感的关键要素。当传统CPU驱动的粒子系统遇到性能瓶颈时&#xff0c;Unity的Visual Effect Graph&#xff08;VFX Graph&#xff09;凭借其GPU加速能…...

3分钟掌握PUBG罗技鼠标宏:新手也能轻松压枪的完整指南

3分钟掌握PUBG罗技鼠标宏&#xff1a;新手也能轻松压枪的完整指南 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 还在为《绝地求生》中难以控制…...