小编jef*_*son的帖子

用于测试Collat​​z猜想的C++代码比手写程序集更快 - 为什么?

我为Project Euler Q14编写了这两个解决方案,在汇编和C++中.它们是用于测试Collat​​z猜想的相同蛮力方法.装配解决方案与组装

nasm -felf64 p14.asm && gcc p14.o -o p14
Run Code Online (Sandbox Code Playgroud)

C++是用.编译的

g++ p14.cpp -o p14
Run Code Online (Sandbox Code Playgroud)

部件, p14.asm

section .data
    fmt db "%d", 10, 0

global main
extern printf

section .text

main:
    mov rcx, 1000000
    xor rdi, rdi        ; max i
    xor rsi, rsi        ; i

l1:
    dec rcx
    xor r10, r10        ; count
    mov rax, rcx

l2:
    test rax, 1
    jpe even

    mov rbx, 3
    mul rbx
    inc rax
    jmp c1

even:
    mov rbx, 2 …
Run Code Online (Sandbox Code Playgroud)

c++ optimization performance x86 assembly

803
推荐指数
8
解决办法
14万
查看次数

Kotlin在构造函数中调用非最终函数

在Kotlin中,它在构造函数中调用抽象函数时会发出警告,引用以下有问题的代码:

abstract class Base {
    var code = calculate()
    abstract fun calculate(): Int
}

class Derived(private val x: Int) : Base() {
    override fun calculate(): Int = x
}

fun main(args: Array<String>) {
    val i = Derived(42).code // Expected: 42, actual: 0
    println(i)
}
Run Code Online (Sandbox Code Playgroud)

输出是有意义的,因为calculate调用时x尚未初始化.

这是我在编写java时从未考虑过的问题,因为我使用了这种模式没有任何问题:

class Base {

    private int area;

    Base(Room room) {
        area = extractArea(room);
    }

    abstract int extractArea(Room room);
}

class Derived_A extends Base {

    Derived_A(Room room) {
        super(room);
    }

    @Override
    public …
Run Code Online (Sandbox Code Playgroud)

java oop kotlin

19
推荐指数
2
解决办法
6086
查看次数

Android通过sysfs获得以毫安为单位的费率

我正在开发一个信息Android应用程序,我想在设备充电时读取以毫安为单位的充电速率.我见过其他可以做到这一点的应用,比如Ampere.

我相信信息应该在目录/sys/class/power_supply/battery中,这些文件中的哪一个与实现这一点有关,我怎样才能从中计算出mA的充电率?

android sysfs

10
推荐指数
2
解决办法
670
查看次数

使用TextView SYANI Clipboard API发送垃圾邮件

我的应用程序运行正常,但从我的日志垃圾邮件发送到此:

25508-25508/[MY APP PACKAGE NAME] D/TextView: SYANI: Clipboard API is calling: unregisterClipboardEventListener()
25508-25508/[MY APP PACKAGE NAME] D/TextView: SYANI: Clipboard API is calling: clearFilter()
25508-25508/[MY APP PACKAGE NAME] D/TextView: SYANI: Clipboard API is calling: unregisterClipboardEventListener()
25508-25508/[MY APP PACKAGE NAME] D/TextView: SYANI: Clipboard API is calling: clearFilter()
25508-25508/[MY APP PACKAGE NAME] D/TextView: SYANI: Clipboard API is calling: unregisterClipboardEventListener()
25508-25508/[MY APP PACKAGE NAME] D/TextView: SYANI: Clipboard API is calling: clearFilter()
Run Code Online (Sandbox Code Playgroud)

我的应用程序使用了大量的EditTextOnFocusChangedListenersTextWatchers,会是这样的原因是什么?究竟是什么导致它,我应该做些什么或忽略它?

android textview logcat android-edittext

10
推荐指数
0
解决办法
344
查看次数

从缓存中读取的Firestore应用程序无效

我已经设置了类似于示例快速启动应用程序的 android firestore应用程序,换句话说:

  • EntryActivity 显示集合中的文档
  • 单击文档时,将文档ID传递给 DetailsActivity
  • DetailsActivity使用它自己的FirebaseFirestore引用来读取带有ID的文档
  • 无论是EntryActivityDetailsActivity获取自己FirebaseFirestore通过参考FirebaseFirestore.getInstance()onCreate

但是,由于之前读取的文档是打开的EntryActivity,我希望DetailsActivity从本地缓存中读取它比从服务器读取它更快.

DetailsActivity,从缓存中请求文档时:

var time = System.currentTimeMillis()
firestore.collection(collectionPath)
    .document(docId)
    .get(Source.CACHE)
    .addOnSuccessListener { snapshot ->
        time = System.currentTimeMillis() - time
        Log.v(TAG, "read took $time ms fromCache=${snapshot.metadata.isFromCache}")
    }
Run Code Online (Sandbox Code Playgroud)

结果是:

read took 300-500 ms fromCache=true
Run Code Online (Sandbox Code Playgroud)

从服务器读取:

var time = System.currentTimeMillis()
firestore.collection(collectionPath)
    .document(docId)
    .get(Source.SERVER)
    .addOnSuccessListener { snapshot ->
        time = System.currentTimeMillis() - time …
Run Code Online (Sandbox Code Playgroud)

android firebase google-cloud-firestore

7
推荐指数
0
解决办法
205
查看次数

AWS API Gateway 授权者 google 登录

我有一个 API 网关/lambda REST API,可以从 React Web 应用程序访问。我需要使用谷歌作为身份提供者添加身份验证。应用程序还应该让用户保持登录状态。

我了解当用户首次授予对(反应)客户端应用程序的访问权限时,它应该将 ID 令牌发送到我的后端,然后后端应该验证该令牌。

由于我的架构是无服务器的,我假设验证应该在 API 网关授权者函数中完成,然后在成功验证令牌后授予对 API 的访问权限。

我的问题是,如何创建持久会话?我应该将有关用户的任何信息保存到数据库中吗?是否需要在每次 API 调用时验证令牌?

授权者应该检查用户是否已经注册或者是否是新用户?

amazon-web-services google-signin aws-api-gateway

7
推荐指数
1
解决办法
3291
查看次数

平台类型的 Android Studio Kotlin 类型不匹配

在我所有的 kotlin 项目中,我都发现了涉及平台类型的新警告。例如

val s: String = sharedPrefs.getString("key", "defaultValue")
Run Code Online (Sandbox Code Playgroud)

产生警告

Type mismatch: inferred type is String? but String was expected

它编译得很好,所以它似乎与 kotlins 强制执行可空类型无关。但是这个警告似乎在最近几周突然出现,这可能与 android studio 或 kotlin 插件的变化有关。

在这种特定情况下,为什么推断的类型与我在第二个参数中提供的类型不匹配(aString不是 a String?

android kotlin

6
推荐指数
1
解决办法
1507
查看次数

如何获取Android API 21 Lollipop最近的应用程序列表?

我正在创建一个家庭启动器,我希望与Android 5.0,Lollipop兼容.我想在启动器上获取最近的应用程序列表.

但由于ActivityManager.getRecentTasks()不再适用于API 21,我该怎么做?

android packages usage-statistics android-recents

5
推荐指数
1
解决办法
7080
查看次数

Android反盗版停止打补丁

我是Android开发的新手,我刚刚为我的免费应用程序发布了付费的pro解锁器.

我在2天前发布它,在它上线的12小时内我用谷歌搜索我的应用程序和theres至少8个网站列出我的免费应用程序,但修补所以应该锁定在免费的所有付费功能都解锁.他们基本上复制了我的整个商店列表描述,略微改变了措辞,并将几个镜像发布到修补后的apk.

反正有没有避免这个?

由于这些被如此快速地发布,它让我相信它是自动完成的.使用什么工具,我在哪里可以得到它?我可以做什么编码来阻止修补它的能力?谷歌开发者控制台中有哪些地方可以报告盗版博客/网站?

付费应用是正常的吗?谢谢!

android patch piracy-prevention apk

5
推荐指数
1
解决办法
2332
查看次数

Android 以编程方式更改应用程序图标

我已经看到其他 android 应用程序可以选择应用程序图标,然后更改会立即反映在应用程序抽屉和主屏幕上。

这些应用程序如何像这样更改应用程序图标?

android

3
推荐指数
1
解决办法
5027
查看次数

Android 开发者控制台中出现崩溃报告问题

因此,我正在使用 proguard 构建我的应用程序,这会混淆代码,并将我的 mapping.txt 上传到反混淆文件。我的崩溃报告显示类和方法名称,但不显示行号。

在我的 build.gradle 中:

    buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我上传作为反混淆文件: ProjectFolder/app/build/outputs/mapping/release/mapping.txt

所以我的问题是:

  • 我是否上传了正确的反混淆文件?该目录中还有seeds.txt、dump.txt、usage.txt。

  • 使用 proguard 构建时是否可以通过 Play 商店获取崩溃报告中的行号?

obfuscation android proguard google-play developer-console

3
推荐指数
1
解决办法
1089
查看次数

AWS SQS 为什么请求数如此之高

我有一个简单的 lambda 应用程序,它现在不在生产中,仅用于测试和调试。该函数向 SQS 发送消息以在外部应用程序上执行 CRUD 操作。我已将此函数设置为在接收消息时由 SQS 调用,因此发送和接收相同的函数。

我刚刚收到一封电子邮件,说我已经使用了超过 85% 的免费层 SQS 请求配额,或者在过去 2 周内使用了超过 850,000 个请求。我确定这些请求不是发送到队列或接收到的消息。对于我使用此应用程序的频率,发送/接收次数必须低于 1000。我还使用 SQS 监控验证了队列中没有任何消息。发送的消息数量或多或少是我预期的,数量很少。

就像我说的,这个应用程序仅供我自己每周使用几天进行测试。850,000+ 的请求来自哪里?

amazon-sqs amazon-web-services aws-lambda

2
推荐指数
1
解决办法
1091
查看次数

Android Firestore 对自定义对象模型的限制

我正在迁移我的应用程序以使用 Firebase Firestore,并且我的模型之一非常复杂(包含其他自定义对象的列表)。查看文档,了解如何将模型对象作为文档提交,看起来您只需使用公共构造函数以及 getter 和 setter 创建模型对象。

例如,来自添加数据指南:

public class City {
    private String name;
    private String state;
    private String country;
    private boolean capital;
    private long population;
    private List<String> regions;

    public City() {}

    public City(String name, String state, String country, boolean capital, long population, List<String> regions) {

    // getters/setters
}
Run Code Online (Sandbox Code Playgroud)

Firestore 会自动将其与文档进行相互转换,无需任何其他步骤。您将一个实例传递给DocumentReference.set(city)调用,并从调用中检索它DocumentSnapshot.toObject(City.class)

它到底是如何将其序列化为文档的?通过反思?它没有讨论任何限制。基本上,我想知道这是否适用于更复杂的模型,以及有多复杂。它适用于具有自定义对象的类吗ArrayList

java android firebase google-cloud-firestore

0
推荐指数
1
解决办法
980
查看次数