2024全面拥抱AI

2024-06-02
阅读 3 分钟
4.8k
从去年年初大模型开始火了之后,最开始注册账号体验了下,后面就没有太用了,感觉没有诉求似的,老板们也在念叨,自己思维上一直在想如何让公司的业务和AI结合,结果想破脑袋也没有找个结合点,包括公司去年的一号项目最后也很鸡肋,我们在负责的业务探索了一个让AI帮助实现将语音输入的内容去口语化,以此降低语音输入...
封面图

从ChatGPT到AGI还有多远

2024-06-02
阅读 7 分钟
854
21年开始在公司负责一个全链路语音的项目,支持公司的Iot设备,有点类似于市面上”小爱“、”小度“之类的音响,算是语音+语言在AI方向的综合应用,整体交互流程如下图:
封面图

2024年移动端技术探索

2024-06-18
阅读 5 分钟
2.1k
2023年号称AI元年,AI带来了一些不是很清晰的机会,没有看到有多好的落地,对于互联网,不止技术层面没有突破,业务层面的需求也断崖式下滑,没有创新就没有需求,老业务的修修补补也带不来多少需求。以音视频行业为例,业界很有影响力的LiveVideoStack也停止了商务活动,音视频大会也不再开了。一切都在朝着萎缩的方向...
封面图

HarmonyOS 6.0 AR Engine引擎高精度几何重建体积测量能力介绍

7 月 2 日
阅读 7 分钟
298
AR Engine(AR引擎服务)是一个用于在HarmonyOS上构建增强现实应用的引擎,提供了运动跟踪、环境跟踪和命中检测等空间计算能力。通过这些能力,应用可以实现虚拟世界与现实世界的融合,给用户提供全新的视觉体验和交互方式。AR Engine包含三大能力,分别是运动跟踪能力、环境跟踪能力和命中检测能力。
封面图

HarmonyOS Next数据底座向量数据库介绍

6 月 30 日
阅读 5 分钟
297
今年HDC在展厅遇见了HarmonyOS 数据底座的架构师,介绍了基于数据底座实现端侧能力的智能小助手,听着很吸引人,HarmonyOS将端侧AI做到了系统层,给开发者创造了无限可能。回来后赶紧看了下更新的文档,HarmonyOS提供了ArkTS与C++两种语言接口。本文将深入探讨向量数据库的技术特性、核心概念、操作接口以及高级功能,帮...
封面图

HarmonyOS Next 用户通知服务Notification Kit介绍与实战

6 月 28 日
阅读 12 分钟
270
Notification Kit(用户通知服务)为开发者提供本地通知发布通道,开发者可借助Notification Kit将应用产生的通知直接在客户端本地推送给用户,本地通知根据通知类型及发布场景会产生对应的铃声、震动、横幅、锁屏、息屏、通知栏提醒和显示。类似Android 的通知栏功能:
封面图

HarmonyOS Next 自定义图形Canvas实践

6 月 28 日
阅读 7 分钟
350
HarmonyOS Next中使用Canvas提供画布组件,用于自定义绘制图形,我们可以使用CanvasRenderingContext2D对象和OffscreenCanvasRenderingContext2D对象在Canvas组件上进行绘制,绘制对象可以是基础形状、文本、图片等。
封面图

HarmonyOS Next IM实战:数据库查询慢的优化过程分享

6 月 28 日
阅读 5 分钟
291
在IMSDK开发中,客户端要使用关系型数据库存储会话、用户、消息等数据,最开始做C端应用一直没发现问题,今年开始有B端用户使用时反馈应用卡,消息延迟等,经过定位发现是B端用户的会话和消息更多,在数据库查询时更慢,由于之前都在主线程所以导致应用卡和慢。本文分享整个优化过程中的遇到问题、解决思路,最终效果等。
封面图

HarmonyOS Next IM实战:PushKit在辅助IM消息通知场景最佳实践

6 月 24 日
阅读 5 分钟
496
在IM开发中除了收发消息,还有很重要的一环是消息提醒。在传统Android时代,国内没办法用GMS,大家研究了各种保活方案,可以让应用不被后台杀死一只可以在后台接收消息。随着Android系统的迭代,各种保活方案都被系统逐步封死,当然各厂商也推出了系统Push,让应用在被关闭后仍然可以收到消息。
封面图

HarmonyOS Next IM实战:双Navigation生命周期引起的事件被取消功能异常问题

6 月 18 日
阅读 3 分钟
281
IM应用聊天页中有用户反馈点击图片无法查看大图,查看代码发现点击查看大图使用了ohos.events.emitter事件机制处理大图点击,进一步定位发现事件已发出,但是消费处没有被调用。增加日志发现事件已被成功注册,当时收不到事件。
封面图

HarmonyOS Next网络抓包配置实践

6 月 17 日
阅读 3 分钟
399
在移动应用开发过程中,抓包是调试网络请求最好的方式,Charles是市面上主流的应用程序抓包工具,在调试IM网络请求结果过程中由于测试环境也是https请求,所以遇到了一些配置问题,本文记录HarmonyOS Next整个网络请求抓包配置。
封面图

HarmonyOS Next IM实战:Worker线程中引起的so动态库崩溃问题处理

6 月 16 日
阅读 5 分钟
476
HarmonyOS Next版本IMSDK接入应用上线后,很多用户反馈应用特别卡顿,特别是是一些会话和消息比较多的用户反馈尤其明显,而且由于SDK本身设计逻辑问题,收到消息会刷新整个会话列表,刷新会话列表会全量查询数据库,会话数量较多时查询会比较耗时,之前都放在主线程,这样会导致整个应用卡顿。
封面图

HarmonyOS Next IM实战:异步缺乏await导致的逻辑错误Bug处理

6 月 13 日
阅读 8 分钟
395
IMSDK开发过程中,逻辑特别复杂,拿消息拉取逻辑来说,通过序号拉取热消息列表,接着处理消息,遍历消息内容,根据不同消息类型进行不同处理,将最终消息插入到消息表,如果消息是新会话消息还需要将会话信息插入到会话表,将用户信息插入到用户表、用户成员表等,最后通知UI新消息更新。网络请求、数据库操作很多都是异...
封面图

HarmonyOS Next IM实战: Worker线程中模块未初始化异常处理

5 月 31 日
阅读 5 分钟
561
开发即时通讯IM SDK过程中遇到了用户反馈消息接收延迟,打开页面卡顿等问题,由于IM涉及到较多的网络请求和数据库操作等,而之前这些全部都放在了主线程,当涉及聊天内容与会话较多时,IO操作会导致应用卡顿丢帧。最开始设计时考虑到使用HarmonyOS 提供的Worker也TaskPool等多线程,但是由于时间关系和逻辑复杂,非共享...
封面图

AI 进阶指南:携手DeepSeek从小白到行业先锋的跃迁之路

3 月 2 日
阅读 6 分钟
1k
在当今数字化浪潮汹涌澎湃的时代,人工智能(AI)宛如一颗璀璨的明星,照亮了各个领域的创新与发展道路。然而,面对 AI 这一庞大而复杂的体系,许多人往往感到迷茫无措,不知自己处于何种水平,更不知如何迈向更高的层次。尤其是DeepSeek的出圈,AI的热度更加火爆。无论是普通用户还是AI从业者也变得很迷茫,不知如何应...

HarmonyOS Next 最佳实践之发布SDK到OpenHarmony 中心仓

2 月 27 日
阅读 5 分钟
799
之前在HarmonyOS Next适配mars过程中将xlog的的适配提交pr到mars官方仓库,中间有些伙伴私信需要编译好的xlog动态库,想着直接把动态库封装后开放出来下载更方便,所以开源了qlog源码([链接])。开放源码后为了方便大家使用想着将产物上传到中心仓,本文记录发布中心仓的过程,希望对大家有所帮助。
封面图

HarmonyOS Next 仿微信视频通话悬浮窗效果实现

2 月 22 日
阅读 18 分钟
1.8k
在移动应用开发中,悬浮窗是很场景的功能,比如像微信音视频通话时,为了保证通话过程可以查看和处理其他功能,允许在通话过程将通话页面以悬浮窗展示,本文我们讨论在HarmonyOS Next中如何实现通话效果的悬浮窗功能。
封面图

HarmonyOS Next 计时器组件详解

2 月 22 日
阅读 6 分钟
812
在日常UI开发中,经常会用到计时控件,比如播放视频是的时间进度显示以及音视频通话时显示的通话时长,都需要用到正计时的计时控件。还有些场景会用到倒计时的计时控件,设置一个最大时间,开始倒计时。在Android中我们一般使用TextView,配合Handler来更新TextView实现计时效果。HarmonyOS Next提供了TextTimer组件来实...
封面图

DeepSeek官方推荐的AI集成系统

2 月 11 日
阅读 7 分钟
1.5k
DeepSeek模型虽然强大先进,但是模型相当于大脑,再聪明的大脑如果没有输入输出以及执行工具也白搭,所以需要有配套工具才能让模型发挥最大的作用。下面是一个典型AI Agent架构图,包含核心组件与数据流转关系:
封面图

DeepSeek 接口详解

2 月 11 日
阅读 5 分钟
2.4k
DeepSeek的火爆不仅是国家的骄傲,更是为AI普惠大众做出了重大贡献。就连AI.com的域名持有者也开始认可deepseek,从之前指向chatgpt.com变成指向chat.deepseek.com。我们不仅可以使用deepseek的免费聊天页面,也可以调用deepseek提供的接口,但是有伙伴可能会问,为什么调用deepseek的接口要使用openai的接口,难道是高...
封面图

深度优化:如何用结构化提示词提升DeepSeek的响应质量

2 月 10 日
阅读 1 分钟
1.4k
深度优化:如何用结构化提示词提升DeepSeek的响应质量一、提示词设计的核心原则角色定义法:明确AI的专家身份场景具象化:提供背景信息和目标说明格式结构化:使用分隔符划分内容模块二、基础提示词案例库1. 编程辅助场景 {代码...} 2. 创意写作场景 {代码...} 三、进阶提示技巧1. 分步验证法(适合复杂任务) {代码...}...
封面图

Mac 基于Ollama 本地部署DeepSeek离线模型

2 月 7 日
阅读 6 分钟
3.8k
最近节日期间最火的除了《哪吒》就是deepseek了,毕竟又让西方各个层面都瑟瑟发抖的产品。DeepSeek凭借其强大的AI能力真的是在全球多个领域展现出强大的影响力。由于受到外部势力的恶意攻击倒是deepseek官方服务不稳定,国内其他厂家的适配版本也不是很稳定,所以在自己电脑部署一个本地离线模型就可以解决很大问题。本...
封面图

一文看懂HarmonyOS在Openharmony基础上做了什么

1 月 13 日
阅读 3 分钟
1.1k
很多人会问HarmonyOS与OpenHarmony的关系是什么,最简单的回答是HarmonyOS是OpenHarmony的一个发行版。再稍微详细点会介绍它们的历史渊源:华为将 HarmonyOS 的基础能力部分开源出来,捐赠给开放原子开源基金会,从而正式成立了 OpenHarmony 开源项目,这为 OpenHarmony 的发展奠定了基础,使得二者在技术上有了共同的源...
封面图

HarmonyOS Next 日志知识一文搞定

1 月 6 日
阅读 7 分钟
979
日志是日常开发中必不可少的调试工具,好的日志工具和日志调用可以帮助我们快速定位开发中或者线上问题,极大提高开发效率。HarmonyOS Next除了支持TS的console打印日志外,还提供了hilog工具,可以在ArkTS层和C++层实现日志输出,此外我们还可以使用封装持久化的日志工具帮助定位解决线上问题。
封面图

HarmonyOS实战IM系统之:一次开发多端部署

1 月 5 日
阅读 5 分钟
902
即时通讯功能已经成为现代应用中不可或缺的一部分,对提升用户体验、提高业务效率、增强客户服务、推动业务增长具有重要作用。从刚工作时做的秀场直播应用到现在的房屋平台应用,IM都在其中发挥了重要作用。随着鸿蒙系统的崛起及鸿蒙生态的成熟,很多厂商还是适配HarmonyOS Next系统,有幸成为先行者,希望从HarmonyOS的...
封面图

HarmonyOS 多目标产物构建最佳实践

1 月 5 日
阅读 7 分钟
916
在Android或iOS开发时经常会有打“马甲”包的场景,就是一套代码打出不同主题的包,一个公司的产品可能针对不同用户提供不同的应用,比如抖音有国内版也有国外版,滴滴有个人版还有企业版,同样的在鸿蒙平台也有类似的诉求,本文我们讨论鸿蒙平台的多产物构建。

HarmonyOS Next NAPI异步调用入门

1 月 4 日
阅读 12 分钟
864
TS是单线程,如果TS调用C++方法执行耗时任务,比如文件操作、网络请求、数据库操作、图像处理等需要在C++层创建线程来异步执行。如果需要获取异步任务返回结果一般通过回调方式获取。如果要维护原生线程和主线程之间同步需要一些工作量,NAPI基于异步 I/O 库libuv提供了异步调用机制,统一管理线程等,简化开发者使用。
封面图

一文了解HarmonyOS Next ArkTS与C++数据类型转换

1 月 4 日
阅读 6 分钟
830
HarmonyOS的主力开发语言是ArkTS,也提供了C++语言的支持,对于一些能力,比如音视频编解码等,HarmonyOS 提供的也只有C++ API,对于一些其他平台现有能力的迁移,C++也是最快捷高效的,所以对于一个HarmonyOS 开发者,掌握ArkTS与C++交互成了一项必备技能。
封面图

HarmonyOS Next 最佳实践之呼叫页面响铃与震动实现

1 月 3 日
阅读 9 分钟
993
在开发音视频通话模块中,在发起呼叫和接收呼叫页面一般都会有呼叫铃声,类似与微信的视频通话页面,在被叫方一般还会伴随着振动。在Android端可以使用MediaPlayer循环播放raw中的mp3铃声,使用Vibrator实现振动效果。本文介绍在HarmonyOS Next如何实现铃声播放与振动效果。
封面图

HarmonyOS Next 主动调用自定义控件中封装的方法最佳实践

1 月 3 日
阅读 2 分钟
754
HarmonyOS Next主要开发语言是ArkTS,语言框架ArkUI是声明式UI,声明式UI一般不直接操作控件,而是通过状态变量更新来驱动UI刷新。但是有些场景,只通过状态变量驱动UI刷新无法满足我们复杂场景下的业务逻辑,需要在父布局调用子控件中的方法,这种情况怎么处理呢?
封面图