Android 高内存压力:如何诊断和修复错误

内存是您的 Android 应用程序拥有的最重要的资产之一。Android 平台尝试将尽可能多的应用程序保留在内存中,即使它们不使用时也是如此。这不仅仅是组成应用程序的文件的缓存,而是正在运行的应用程序进程及其线程。这种行为使应用程序和任务之间的切换变得快速,并使最终用户感觉设备“活泼”。然而,在低端设备上,如果正在运行的应用程序占用的内存超过其公平份额,事情就会开始变得混乱。这种情况的结果是增加了所谓的“记忆压力”。

您可以将内存压力视为主要应用程序,即用户与之交互的应用程序,它将其他应用程序挤出内存。这是一个过程,不会同时发生,也不会一直发生。取而代之的是,Android 平台(特别[……]

继续阅读

一个新的 Android TreeView 实现

大家好,在 2022 年初,我想创建一个文件树,正如您在任何代码编辑器或 IDE 中看到的那样,代表项目结构,您可以执行一些操作,例如展开或折叠目录,我已经搜索了许多 Tree View 实现在 GitHub 中,但我发现其中一些多年来没有维护,并且示例项目也没有在新的 Android Studio 版本上运行,其他实现从头开始创建自定义视图并绘制树,但它们无法正常工作大量节点和其他限制。

所以我开始创建一个列表,其中包含所有这些特性的集合,以及 GitHub 问题上要求的一组特性,以便从中获得灵感,这样我就可以创建一个通用且有用的实现,它可以很容易每个人都可以自定义和扩展,因此我想介绍[……]

继续阅读

2022 年 5 款适用于 Android 的儿童最佳脑力游戏

可以说现在的孩子们都沉迷于他们的智能手机,玩很多不同的游戏和内容。然而,并不是他们观看或播放的所有内容都对他们有好处,这就是为什么他们参与可以提高他们的智力并让他们学习新事物的内容变得很重要的原因。这就是孩子们的脑力游戏发挥作用的地方。

安卓平台上有很多适合孩子的脑力游戏,不仅可以让他们玩耍和娱乐,还可以增加他们的大脑活动,让他们更聪明。这些最好的脑力游戏和机器人基于让孩子们学习新事物并时刻测试他们的思想的概念。

有基于问卷调查、谜题等的游戏。这就是为什么我们为孩子们列出了他们一定会喜欢玩的最好的脑力游戏。

以下是儿童最佳脑力游戏列表

脑筋急转弯

当我们谈论[……]

继续阅读

Android开发中常用的组件

由于手机已经成为人们生活中不可或缺的一部分,软件开发行业正在以更快的速度蓬勃发展,并努力提供高质量的软件。可以使用不同类型的软件来完成各种任务。

例如,如果您想从移动设备上查找特定位置,则可以安装提供前往您所在位置的路线的地图。

在移动设备方面,软件开发公司生产与不同操作系统兼容的软件产品,例如 Android、iOS、LuneOS、Tizen 等等。

其中,Android是最流行和最常用的移动操作系统之一。而只为Android设备开发软件的过程称为Android软件开发。

但是,您有没有想过软件开发人员在 Android 开发中使用哪些组件?或者 Android 应用[……]

继续阅读

Android 12 功能、支持的设备以及您需要知道的一切

Android 12 turn 于 6 月在 Google IO 2021 上回归,展示了改头换面的外观和功能,特别关注隐私和交互性。

我们已经注意到,更新的通知、更高的屏幕截图帮助、超越模式和更多额外的可见公开测试版发布显示。

在 Pixel 6 发布活动之后,谷歌发布了软件程序更新,现在将用于旧款 Pixel 手机——尽管该机构没有显示哪些手机是志同道合的(我们怀疑 Pixel 3 可能是最旧的智能手机得到更换,因为它变成了 Android 12 测试版的优势)。

Android 12是 2021 年谷歌 Android 工作机的替代品,基于 2020 年的 Androi[……]

继续阅读

Golang 中的内存缓存

最终,所有项目最终都需要加快服务响应或进行一些繁重的计算。快速简便的解决方案是使用缓存。通常,有 Redis 或 Memcached,但我们在单实例微服务中并不需要它们。有时在 Go 应用程序中使用简单的内存缓存会更好,今天我想向您展示实现它的主要方法。

简单地图

第一种方式是简单的显式缓存实现。通常,它使用 map 并在那里存储结构。此外,还需要观察密钥的过期时间和缓存大小。

我将所有实现都放在了一个 GitHub 存储库中。

我们使用用户 ID 作为缓存项的键。由于有地图,所有更新/读取/删除都需要 O(1) 时间。

优点

  • 显式实现
  • 很棒的表演

[……]

继续阅读

如何在 Golang 中开发 Facebook Messenger Bot

Facebook 是当今全球最大的社交网络。它每月有超过 29 亿活跃用户。这就是为什么许多公司开始将 Facebook Messenger 用于商业目的的原因。

最近,我们开发了 Facebook Messenger 机器人作为 2FA(双因素身份验证)的另一种方式,它显着降低了 SMS 成本。这就是为什么我想告诉你如何开发 Facebook Messenger 机器人。

建筑学

让我们看看整个架构是什么样子的。

因此,用户向 Facebook Messenger 机器人发送消息。在消息中,Facebook 将 webhook 发送到我们的服务器(Golang 应[……]

继续阅读

在 Go 中练习函数式编程

在使用新语言时,您总是会尝试找到与您已经知道的语言的相似之处。我在 JavaScript 和 Java 方面经验丰富,可以得出结论,Go 与 JS 更相似。为什么呢?嗯,在我看来,这是因为支持一些功能范式特性。

纯函数

它是函数式编程的基本实体。来自维基:

对于相同的参数,函数返回值相同

下面是一个纯函数的例子:

作为一等公民的职能

根据维基,这意味着:

给定实体(例如函数)支持其他实体固有的所有操作属性;属性,例如能够分配给变量、作为函数参数传递、从函数返回等。

我们可以返回一个函数:

在这里你应该注意的是,makeCounter[……]

继续阅读

Goroutines:如何在 Go 中运行并发代码

Go 编程语言的最大优势之一是其内置的并发支持,基于 Tony Hoare 的“Communicating Sequential Processes”。作为一名具有 JS 和 Java 背景的开发人员,我对在 Go 中运行并发代码的轻松程度感到惊讶。

Go 和其他语言的并发区别

实际上,goroutines 不是线程。它们是绿色的线。让我们看看什么是绿线。

在 计算机编程中, 绿色线程 或 虚拟线程 是  由 运行时库 或 虚拟机(VM) 调度的线程, 而不是由底层&[……]

继续阅读

如何使用 GoReleaser 自动化 GoLang 构建版本

为了使项目更加用户友好和有吸引力,作者添加了 docker 图像并为许多不同的平台进行了分发构建。项目的每个新版本都需要它,即使是次要版本。因此,有必要编写这个过程的自动化,因为手工编写非常冗长且例行公事,而且很容易出错或忘记某些东西。下面我将告诉您有关GoReleaser的信息,它几乎可以免费地自动构建 golang 项目的发布版本。

在本文中,所有示例都将用于 GitHub。但是这些相同的技术也可以很容易地适应关闭项目。

我准备了一个简单的项目来展示 GoReleaser 的可能性。该项目由客户端和服务器两部分组成。服务器可以计算文本中的字数,客户端可以通过查询字数来寻址服务器[……]

继续阅读