我为Project Euler Q14编写了这两个解决方案,在汇编和C++中.它们是用于测试Collatz猜想的相同蛮力方法.装配解决方案与组装
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) 在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) 我正在开发一个信息Android应用程序,我想在设备充电时读取以毫安为单位的充电速率.我见过其他可以做到这一点的应用,比如Ampere.
我相信信息应该在目录/sys/class/power_supply/battery中,这些文件中的哪一个与实现这一点有关,我怎样才能从中计算出mA的充电率?
我的应用程序运行正常,但从我的日志垃圾邮件发送到此:
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)
我的应用程序使用了大量的EditText有OnFocusChangedListeners和TextWatchers,会是这样的原因是什么?究竟是什么导致它,我应该做些什么或忽略它?
我已经设置了类似于示例快速启动应用程序的 android firestore应用程序,换句话说:
EntryActivity 显示集合中的文档DetailsActivityDetailsActivity使用它自己的FirebaseFirestore引用来读取带有ID的文档EntryActivity和DetailsActivity获取自己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) 我有一个 API 网关/lambda REST API,可以从 React Web 应用程序访问。我需要使用谷歌作为身份提供者添加身份验证。应用程序还应该让用户保持登录状态。
我了解当用户首次授予对(反应)客户端应用程序的访问权限时,它应该将 ID 令牌发送到我的后端,然后后端应该验证该令牌。
由于我的架构是无服务器的,我假设验证应该在 API 网关授权者函数中完成,然后在成功验证令牌后授予对 API 的访问权限。
我的问题是,如何创建持久会话?我应该将有关用户的任何信息保存到数据库中吗?是否需要在每次 API 调用时验证令牌?
授权者应该检查用户是否已经注册或者是否是新用户?
在我所有的 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 5.0,Lollipop兼容.我想在启动器上获取最近的应用程序列表.
但由于ActivityManager.getRecentTasks()不再适用于API 21,我该怎么做?
我是Android开发的新手,我刚刚为我的免费应用程序发布了付费的pro解锁器.
我在2天前发布它,在它上线的12小时内我用谷歌搜索我的应用程序和theres至少8个网站列出我的免费应用程序,但修补所以应该锁定在免费的所有付费功能都解锁.他们基本上复制了我的整个商店列表描述,略微改变了措辞,并将几个镜像发布到修补后的apk.
反正有没有避免这个?
由于这些被如此快速地发布,它让我相信它是自动完成的.使用什么工具,我在哪里可以得到它?我可以做什么编码来阻止修补它的能力?谷歌开发者控制台中有哪些地方可以报告盗版博客/网站?
付费应用是正常的吗?谢谢!
我已经看到其他 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 商店获取崩溃报告中的行号?
我有一个简单的 lambda 应用程序,它现在不在生产中,仅用于测试和调试。该函数向 SQS 发送消息以在外部应用程序上执行 CRUD 操作。我已将此函数设置为在接收消息时由 SQS 调用,因此发送和接收相同的函数。
我刚刚收到一封电子邮件,说我已经使用了超过 85% 的免费层 SQS 请求配额,或者在过去 2 周内使用了超过 850,000 个请求。我确定这些请求不是发送到队列或接收到的消息。对于我使用此应用程序的频率,发送/接收次数必须低于 1000。我还使用 SQS 监控验证了队列中没有任何消息。发送的消息数量或多或少是我预期的,数量很少。
就像我说的,这个应用程序仅供我自己每周使用几天进行测试。850,000+ 的请求来自哪里?
我正在迁移我的应用程序以使用 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?
android ×9
firebase ×2
java ×2
kotlin ×2
amazon-sqs ×1
apk ×1
assembly ×1
aws-lambda ×1
c++ ×1
google-play ×1
logcat ×1
obfuscation ×1
oop ×1
optimization ×1
packages ×1
patch ×1
performance ×1
proguard ×1
sysfs ×1
textview ×1
x86 ×1