首页 文章 精选 留言 我的

精选列表

搜索[快速],共10000篇文章
优秀的个人博客,低调大师

快速上手,使用 Kotlin 把支付宝小程序装进自己的 App

写一个 Android App 或许不难,但企业对于移动应用的要求愈来愈高,不只要求开发速度、稳定度、质量等,甚至希望能具备动态扩展的架构设计、在 App 中自启动小程序。面向这些需求,若是有好的开发工具及平台的支持,将可以大大降低开发及运维的成本。本次网络研讨会特别邀请到支付宝高级无线开发工程师温盛章为大家演示用 Kotlin 开发移动应用,并集成 mPaaS 让 App 具备小程序能力。 主题分享 本次分享共有三个关键字:Kotlin 、 小程序 、 mPaaS 。温盛章首先从用户、开发、技术、平台等四大视角,向大家说明小程序是什么?简单来说,小程序就是一种拥有完整生命周期、应用间相互隔离、独立运行于宿主应用内的应用。而小程序从工作型 App、平台型 App、超级 App 到新阶段一路的演化历程,目前已经可以有接近 Native 的体验和顺畅、也可以有 H5 的快捷发布的优势。 对小程序有概念后,温盛章就以 Android Studio 演示如何在一个 Mobile App 里,以 Kotlin 撰写 Mobile App 的代码,并接上 mPaaS 平台,让 App 有自启动小程序的能力。要接入 mPaaS,首先需在 Android Studio 里安装 mPaaS 插件,并到阿里云的 mPaaS 后台创建一个新建用。接着,在 Android Studio 里通过插件介入 mPaaS 后下载设置文件及基线。再来,依照项目的需求,下载所需的 mPaaS 组件。完成这些设置后,在 Native 部份,仅需 App、Activity、Plugin 三个文件,就可以做出一个接上小程序的简单应用。 小程序的部份,可以通过 mPaaS 的 IDE 撰写 HTML、CSS、JS 完成小程序端的开发,上传至 mPaaS 后台后,就可在 App 里启动。不仅如此,mPaaS 的 SDK 还可以将 Native 端与小程序间打通,两者可以交互传递信息,只要照着文档示例操作,一个具备小程序能力的移动应用,就在不到 1 小时内完成! 听完这场分享后,相信大家都能体验小程序在开发及部署的好处、Kotlin 语法的简洁及 mPaaS 服务的完整性。通过这样的工作流,可帮助您实现“代码仅需撰写一次,便可多端投放”,从而深度提升研发效率。 Q&A Q. 学习 Kotlin 可以完全不用懂 Java 吗?或者了解下 Java 的一些基本知识就够了? 温盛章:Kotlin 在设计上有许多语法糖,像是 Extension 可以轻松的依据需要做扩展、Lambda 表达式可以构成 DSL 的能力、Coroutine 把线程封装后更好使用,加上现在 Google 的 Android 团队采用 Kotlin 做为官方语言,所以我觉得可以先以 Kotlin 为主去学习 Android 开发。不过,别忘了 Kotlin 最终还是编译成 JVM 的字节码,所以要搞清楚底层的话,一些基本功还是不能落下。 范圣佑补充:学习 Android 时,可以到 Google 的 Code Lab 上学习,非常适合初学者。 Q. 我的理解是 Kotlin 是负责数据的处理,而像获取安卓手机信息这个功能只需要调用安卓的一些组件就能实现了是吗? 温盛章:这个东西需要隔离开来看,我们可以先把 Kotlin 理解成一个槌子,调用安卓组件我们可以简单的理解成钉子。怎么把钉子打到墙里面,你可以用槌子、也可以用剪刀,只要能完成任务就行。但很明显的,用剪刀把钉子打到墙里估计要比槌子难,所以 Kotlin 在这里就是扮演着槌子的角色。就我自己使用的经验来说,Kotlin 在提升效率这方面带来非常大的帮助。原本用 Java 得写又臭又长的代码,改用 Kotlin 后就变得非常的简洁。 我这边要特别强调一下 Kotlin 里 Null Safety 的特性,以前在 Java 里一个变量是否为 Null 需要在逻辑层里自行解决,但在 Kotlin 里可以用问号,通过编译器就可以预先做好对空值的处理。这部份的强化和提升是我非常喜欢的。 Q. 用 Kotlin 开发安卓,用 Andriod Studio 比较好还是用 IntelliJ IDEA 更方便些,有哪些好用的插件了可以推荐下? 范圣佑:Android Studio 和 IntelliJ IDEA 是使用相同的 IntelliJ Platform 打造出来的,所以在 UI、快捷键操作上其实都很雷同,许多插件也是可以互通的。若你只需要开发 Android 的话,用 Android Studio 其实就可以满足你的需求;但若你不仅需要开发 Android,还需要开发像 Web、数据库的工作,那会推荐使用 IntelliJ IDEA Ultimate 版才能满足各方面的需求。 温盛章:单纯开发 Android 或 Android 与其他工程混在一起的项目,我会推荐用 Android Studio;但假如是纯 Java 或 Kotlin 的项目,我就会推荐用 IntelliJ IDEA,而且非常推荐使用 Ultimate 版,因为 Ultimate 版相比 Community 版提供了更多的功能,非常的好用。 两位推荐的插件包括: 1)在演示过程中可以显示快捷键提示的 Presentation Assistant 插件 2)让 IntelliJ IDEA 可以有像 Vim 一样操作模式的 IdeaVim 插件 3)本次演示的主角 mPaaS 插件(目前仅支持 Android Studio) 4)用 Annotation 让 Java 有一些类似 Kotlin 特性的 Lombok 插件 Q. 有办法可以 Android 模拟器调试吗? 温盛章:以开发 mPaaS 应用来说,因为没有提供 x86 及 x64 的 Native 支援,所以很遗憾的目前没有办法以 Android 模拟器调试,只真机调试。对于 Android 开发者来说,因为 Google 及许多平台的 SDK 对 x86 的支持也不是那么的好,加上考虑自己的电脑是不是够快,所以 Android 开发我还是强调建议真机调试。 Q. 请问手机投屏的软件是? 温盛章:付费版的 Vysor。 Q. 请问小程序怎么不选择 Flutter 作为引擎? 温盛章:小程序的好处是上层使用的语言(也就是使用 HTML、CSS、JS)及下层搭配用 Web View 显示已经固定且稳定,所以 mPaaS 优先支持这样的架构。而 Flutter 在下层使用的引擎不同,我们其实已经有在做尝试,但现阶段还不适合商业公开。等到技术上够成熟后,会再公开 mPaaS 与 Flutter 的版本。

优秀的个人博客,低调大师

2020-2026年全球边缘计算市场:物联网应用快速增长

据ResearchAndMarkets发布的边缘计算分析报告,在全球范围内,边缘计算市场将在预测期内以37.5%的复合年增长率增长,到2020年基础价值将达到40.4亿美元,到2026年将达到266.2亿美元。 推动这一市场增长的因素是物联网在各行业应用的增加,从而使得在各个部门中都可以轻松进行工作,而无需人与人之间的交互,对自动决策解决方案的需求不断增加,并且克服了数据的急剧增长。 边缘计算按产品划分的市场包括硬件、平台和服务。在预测期内,硬件组件将占据主要市场规模,原因是大规模购买硬件组件以分散存储和计算操作,实现包容性边缘基础设施部署并减少网络流量。企业组织提供升级的边缘计算硬件,这些硬件可以用作数据源的初始点或整个网络的促进者,或者在整个边缘计算过程中充当存储和本地处理单元。 此外,在按应用计算的边缘计算市场中,智能城市应用占有主要份额,因为它增强了城市建筑物的安全性、家庭中的自动化设施,并增强了智能城市的交通管理以应对繁重的工作。 由于数据的增长趋势,大型企业对边缘计算解决方案的收购是异乎寻常的,这已得到广泛分布的地理区域和常规客户的认可。此外,员工对无处不在的计算解决方案和应用程需求不断增长,同时安全,适当的数据存储也推动了大型企业对边缘计算解决方案的需求。例如,大型制造公司需要与来自与他们的有形资产相连的传感器或执行器(例如机器、涡轮机和升降机)的大量数据与历史信息相对应。因此,这有助于他们在短时间内识别或预测故障,从而忽略停顿时间和生产损失。 北美被认为是该市场中最大的创收地区。边缘计算与工业物联网(IIoT)的集成已促使美国制造商向互联工厂迈进。此外,各种新兴企业的到来为开发基于边缘的解决方案提供了机会,从而推动了北美地区的行业发展。 自动驾驶汽车和互联汽车技术的出现增强了边缘计算的效率。主要参与企业包括: Cisco HPE Huawei Unit4 Dell Technologies Microsoft Corporation NOKIA IBM Foghorn Systems Machineshop

优秀的个人博客,低调大师

每日一博 | 一道快速考察 Python 基础的面试题

这是前一阵子群友发在群里的一道面试题,利用 Python 字典的特性,可以巧妙地使用精简代码达成完美解。 题目 将 data 转换成 new_data 这种形式,写出转换过程。 data = { 'a_b_h':1, 'a_b_i':2, 'a_c_j':3, 'a_d':4, 'a_c_k':5, 'a_e':6 } new_data = { 'a':{ 'b':{ 'h':1, 'i':2 }, 'c':{ 'j':3, 'k':5 }, 'd':4, 'e':6 } } 可以看出,转换的过程是将 key 的下划线进行拆分,然后下划线后边的字符嵌套在前面字符的值中。 感兴趣就打开 IDE,自己先试着解一下。 解题思路 你应该很快想到,主要思路是将下划线 split 后,然后依次使用字符生成内层字典,当达到最后一个字符时将数字作为值。 那么关键点在于,如何不断地获得内层字典去修改呢?实际本题就是考察你是否理解 Python 字典是引用传递这个特性。 什么是引用传递?我们知道 Python 中字典和列表对象都是可变对象,它们的变量传递给另一个变量后,改变对象元素会使得两个变量都会同时改变,比如: new_data = {} tmp = {} new_data['a'] = tmp print(new_data) # {'a': {}} tmp['b'] = 1 print(new_data) # {'a': {'b': 1}} 如上,利用这个特性,将内层字典赋值给一个中间变量,然后改变这个中间变量,即可同步修改最终的 new_data 变量。 根据这个思路,初步代码如下: data = { 'a_b_h':1, 'a_b_i':2, 'a_c_j':3, 'a_d':4, 'a_c_k':5, 'a_e':6 } new_data = {} for key, value in data.items(): keys = key.split('_') tmp = new_data last = len(keys) - 1 # 最后一个 key 的索引值 for i, k in enumerate(keys): if i == last: tmp[k] = value continue if k not in tmp: sub_tmp = {} tmp[k] = sub_tmp tmp = sub_tmp else: tmp = tmp[k] 这也是群友给出的第一版答案,这样写并没有多大问题,但是代码比较繁琐,肯定还有优化空间。 我们可以只使用一个中间变量即可,进一步优化: for field, value in data.items(): keys = field.split('_') tmp = new_data last = len(keys) - 1 for i, k in enumerate(keys): if k not in tmp: tmp[k] = {} if i < last else value tmp = tmp[k] # 将内层 dict 传给 tmp 上面这个代码看似很简洁了,但是仍然还有两个 if 判断,如果不是使用了三元表达式的话,还会更多行。 所以可以进一步优化: for field, value in data.items(): keys = field.split('_') tmp = new_data for k in keys[:-1]: tmp = tmp.setdefault(k, {}) tmp[keys[-1]] = value 我们省略掉了 last 来判断最后一个字符的索引,直接通过 keys[:-1] 避开最后一个字符,末尾再单独生成数字键值对。 这里还使用字典的一个内置方法 —— setdefault。 dict.setdefault(key, default=None) 方法和 get 方法类似,只是如果键不存在于字典中,不仅会返回 default 参数的值,还同时会用该值自动生成一个键值对。 if k not in tmp: tmp[k] = {} v = tmp[k] # 等价于 v = tmp.setdefault(k, {}) 最终我们使用了 6 行代码就解出该题,这也是接近最简代码。 如果使用字典引用的特性是合格的话,那么当你用出 setdefault 这个方法后,面试官已经给你打了优秀,所以一定要熟悉这些数据对象的所有内置方法。 本文属于原创,首发于微信公众号「面向人生编程」,如需转载请后台留言。

优秀的个人博客,低调大师

DataWorks数据分析模块全新发布,快速的数据智能洞察平台

DataWorks数据分析概述 数据分析主要提供表格模式的MaxCompute表操作、电子表格协同编辑和统计分析、可视化报表搭建和分享等核心功能。凭借简单易用的操作界面,使数据变化所见即所得,可视化完成数据的修改和分析、报表的搭建和分享,支持电子表格、可视化报表、维表三种分析形式。 DataWorks数据分析产品入口 通过DataWork功能入口-全部产品-数据分析即可进入数据分析模块首页 DataWorks数据分析核心功能 1. 电子表格编辑明细数据,支持加减乘除基础运算、函数套用、分类汇总等多类型数据加工方式。 在线协同编辑可邀请小伙伴们共同完成表格内容的编辑 透视分析可选择不同的列进行分类汇总;可按条件展示不同格式 2.可视化报表自助完成可视化探索和报表制作,无需写SQL代码,所有过程均可通过鼠标拖拽、点选完成。 18+种控件丰富的控件选择,可以满足多种分析场景 按权限分享分析结果可进行权限设置,分享给特定的人 3.维表表格式建MaxCompute表、编辑数据,无需SQL即可一键生成、多人协作修改,为您的数据工作添砖加瓦 表格式建表无需编写 DDL/Insert 语句,MaxCompute表行列数据所见即所得 转存表电子表格的编辑数据可一键转存为MaxCompute表 DataWorks数据分析功能示例 1. DataStudio搜索结果直接透视在DataStudio/数据分析工作台等DataWorks的研发模块执行select语句获取一个或多个表的查询结果,直接对结果数据开始透视分析。 2. 数据源透视直接选择MaxCompute表或已有的MySQL数据源中的表,然后开始透视分析 3. 本地Excel文件导入透视支持将本地Excel文件上传后,编辑修改、分享给其他人协同编辑或透视分析数据分布等。 更多功能介绍请查看DataWorks数据分析帮助文档:https://help.aliyun.com/document_detail/119756.html如果您有任何使用问题,欢迎您加入DataWorks数据分析用户钉钉群:23341214

优秀的个人博客,低调大师

Dapps 1.1.0 发布,增加开发者模式,快速创建自己的应用

前言:开发者模式可以让用户创建自己的应用程序,并通过dapps面板方便的进行管理。如果应用质量较好,可联系作者,发布到商店中 # 注:每周会上架1~2款新应用,持续更新 介绍 dapps是一个应用程序商店,包含丰富的软件,一键安装程序;多版本共存。 官网文档:dapps应用商店 新增内容: 开发者模式:用户创建自己的应用程序,并通过dapps面板方便的进行管理。 目前包含的32软件 NextCloud云盘:将电脑(或服务器)变为网盘 ------查看效果 百度网盘web版:下载速度比官方快很多 ------查看效果 AriaNg高速下载器:2倍迅雷速度,迅雷无法下载的资源,也能下载 ------查看效果 人人影视:美剧爱好者的第一选择 ------查看效果 kodexplorer可道云:像Windows操作一样的企业网盘 ------查看效果 auxpi免费图床:集合多家 API 的新一代图床 ------查看效果 百度网盘下载器(命令行) ------查看效果 wordpress ------查看效果 zblog个人博客:小巧而强大的PHP博客程序与建站系统 ------查看效果 py12306抢票 ------查看效果 magnetw: 种子搜索神器 ------查看效果 PhpMyAdmin:mysql管理工具 ------查看效果 adminmongo: mongo管理工具 ------查看效果 PHP: 世界上最好的语言(版本:5.6,7.1,7.2,7.3)------查看效果 Mysql:数据库(版本:5.6,5.7,,8.0)------查看效果 Nginx:服务器(版本:1.16)------查看效果 redis:nosql数据库(版本:5.0)------查看效果 mongo:是一个基于分布式文件存储的数据库(版本:3.4,4.0)------查看效果 gogs版本控制 ------查看效果 rabbitmq3.7队列服务 ------查看效果 2048游戏 ------查看效果 cxk打篮球:一款休闲游戏 ------查看效果 等...... 效果:

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册