我的问题是静态关键字的一个特定用法.可以使用static关键字来覆盖不属于任何函数的类中的代码块.例如,以下代码编译:
public class Test {
private static final int a;
static {
a = 5;
doSomething(a);
}
private static int doSomething(int x) {
return (x+5);
}
}
Run Code Online (Sandbox Code Playgroud)
如果你删除static它抱怨的关键字,因为变量a是final.但是,可以删除两个final和static关键字并使其编译.
这两种方式让我感到困惑.我怎么能有一个不属于任何方法的代码部分?如何调用它?一般来说,这种用法的目的是什么?或者更好,我在哪里可以找到关于此的文档?
我想在我的Android应用程序中存储一些小而重要的信息,例如AES密钥.建议的方法是什么?我不想将密钥硬编码作为我的应用程序的一部分.
我看看KeyStore,但它并没有真正解决我的问题.它可以存储我的密钥,因为我可以提供密码.然后我需要找到一个安全的地方来存储这个密码,这与我原来的问题相同.
是否有内置的Android类来执行此任务?或者我应该寻找第三方图书馆?使用NDK对我来说也是可以接受的.
更新:
我希望找到一个用于存储的Android API,以确保只有存储某些信息的应用程序才能检索回来.Android OS可以基于签署应用程序的签名来强制执行此操作.这样,我的应用程序可以在第一次运行时生成随机密钥,并将其存储在安全存储中以供以后使用.这有什么API吗?
这不是关于如何签署.apk文件的问题.我想知道签名实际意味着什么以及如何实施.
在.apk文件里面有META-INF文件夹,里面有两个文件.
第一个是CERT.SF包含各种组件的SHA1哈希,如下所示:
Name: res/layout/main.xml
SHA1-Digest: Cox/T8fN1X9Hv4VqjH9YKqc/MsM=
Name: AndroidManifest.xml
SHA1-Digest: wZ418H9Aix1LNch3ci7c+cHyuZc=
Name: resources.arsc
SHA1-Digest: P+uoRrpFyVW6P3Wf+4vuR2ZSuXY=
Name: classes.dex
SHA1-Digest: cN3zXtGii9zuTOkBqDTLymeMZQI=
Run Code Online (Sandbox Code Playgroud)
还有一个名为CERT.RSA的文件.我认为这是验证签名的公钥.
我的问题是,整个.apk文件的签名存储在哪里?实际上签了什么?它可能是
如果您能够向我指出详细签名和验证过程的文档,那也会好得多.
是否可以为sqlite数据库文件选择自定义位置?
如果可能,我想将数据库文件存储在存储卡中.如果用户从一个存储卡切换到另一个存储卡,我希望我的应用程序使用卡上可用的任何版本的数据库文件.
所有绘画程序,无论它们多么简单或复杂,都带有填充工具.这基本上用另一种颜色替换封闭区域的颜色.我知道有不同的API可以做到这一点,但我对算法很感兴趣.实现此工具的有效算法是什么?
我能想到的一些事情很快就是:
1所有其他颜色0.当我运行 Android 服务时,有时会收到 ANR。我怀疑这是因为僵局而发生的。
有没有一种简单的方法可以监控 Android 或 Eclipse 中的死锁?例如显示哪个线程持有哪个锁等的实用程序?
有没有办法通过查看 traces.txt 文件来找出死锁?
我的 ddms 日志在崩溃时看起来像这样
02-15 18:09:01.046: INFO/Process(90): Sending signal. PID: 450 SIG: 3
02-15 18:09:01.046: INFO/dalvikvm(450): threadid=3: reacting to signal 3
02-15 18:09:01.056: INFO/dalvikvm(450): Wrote stack traces to '/data/anr/traces.txt'
02-15 18:09:01.076: INFO/Process(90): Sending signal. PID: 10548 SIG: 9
02-15 18:09:01.076: ERROR/ActivityManager(90): ANR in com.abc.cm.core
02-15 18:09:01.076: ERROR/ActivityManager(90): Reason: Executing service com.abc.cm.core/.WorkOrderManager
02-15 18:09:01.076: ERROR/ActivityManager(90): Load: 1.46 / 1.16 / 1.05
02-15 18:09:01.076: ERROR/ActivityManager(90): CPU usage from 19462ms to 1067ms …Run Code Online (Sandbox Code Playgroud) 我试图找到一个好的算法来检测手机中图像的角落.有多种算法要做,我不确定哪种算法在内存和处理器有限的环境中表现更好.
具体来说,我试图在使用手机相机拍摄的照片中找到数独网格.我正在使用C#,找不到任何具有基本图像处理功能的库.我实施了Sobel滤波器来进行边缘检测,这就是我的立场.
为了说清楚问题,是否有人有任何建议使用特定的算法或库?
Windows具有GetFileTime API,允许通过打开文件句柄获取文件时间信息.我想知道的是,如果可以通过文件名获取此信息而无需明确打开文件.如果可能,它是否也适用于Windows Mobile平台?
有没有办法使用Android API读取当前运行的应用程序的META-INF\MANIFEST.MF文件?
我想为classes.dex文件读取SHA1并将其用作我的一个资产的加密密钥.
我不能使用.apk文件的签名,因为每次我创建一个新的apk我需要重新加密我的资产并放入apk文件,这需要重新签署.apk,它成为鸡和蛋的问题.