RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-5648

Barmaley's questions

Martin Hope
Barmaley
Asked: 2024-04-02 23:17:03 +0000 UTC

KMP 中的 DeviceId - 有哪些选项?

  • 6

如您所知,在 Android 中,有一个作为ANDROID_ID用户函数在操作系统深处生成的特定唯一标识符,即应用程序签名的应用程序 ID。检索通过:

import android.provider.Settings.Secure;

private String android_id = Secure.getString(getContext().getContentResolver(),
                                                        Secure.ANDROID_ID);

一般来说,它被认为是识别特定设备的相当可靠的方法,该设备只能由应用程序本身访问 - 第三方软件包(当然在正常情况下)无法访问它。通常并且经常使用它,将其用作加密密钥(加盐后等)

更重要的是:有一个常规的 Android 应用程序,其中该密钥用作加密密钥。决定在 KMP(Android + JVM + WASM + iOS)下重写应用程序。

注意:为这些平台生成/使用密钥/标识符有哪些选项?嗯,也就是说,我们有:

expect fun getUniqueId(any: Any): String

我们期待:

actual fun getUniqueId(any: Any): String = ???

如果可能的话,那就不用传统的火焰:为什么你需要它ANDROID_ID作为钥匙,等等。

java
  • 1 个回答
  • 53 Views
Martin Hope
Barmaley
Asked: 2020-05-05 03:57:40 +0000 UTC

如何获取包含国家字母的字符串?

  • 2

一般来说,有这样一个问题。有一个密码生成器应该是国家依赖的,就是我们取当前的locale(应用是多语言的:如果你有兴趣,支持10多个locale),上传这个语言支持的所有可能的字符,设置密码长度并从字符集中生成一个随机密码。或多或少是这样的:

private String generatePassword(String charSet, int passwordLength) {
    char[] symbols=charSet.toCharArray();
    StringBuilder sbPassword=new StringBuilder();
    Random wheel = new Random();

    for (int i = 0; i < passwordLength; i++) {
       int random = wheel.nextInt(symbols.length);
       sbPassword.append(symbols[random]);
    }
    return sbPassword.toString();
}

对于拉丁字母:

charSet="AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz";

我怎样才能得到一个类似的字符串说泰语、梵文或希伯来语?

我们知道 Unicode 包含所有字符,我们不想为每种语言硬编码一组字母......

java
  • 1 个回答
  • 10 Views
Martin Hope
Barmaley
Asked: 2020-01-13 19:18:11 +0000 UTC

Android Q,范围存储

  • 21

众所周知,在Android Q(API=29)中,谷歌再次改变了访问外部存储器(external storage)的规则,引入了Scoped Storage的概念。现在:

默认情况下,面向 Android 10(API 级别 29)及更高版本的应用会获得对外部存储或范围存储的范围访问权限。此类应用程序只能访问外部存储上特定于应用程序的目录,以及应用程序创建的特定类型的媒体。

我有一个应用程序使用 SQLite 数据库中的用户数据存储,该数据库位于外部存储器中。这是故意这样做的,因为根据之前的评论,有很多用户抱怨,当应用程序被拆除时,内部存储器(目录android/android/[пакет приложения]/files)中的数据也被破坏了。当然,该应用程序有能力备份数据和所有这些,但用户通常会忽略它。

结果,有一次我决定将数据存储在/Documents由方法返回的目录中,该方法Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS)在 API 29 中被声明为已弃用

注意问题:SQLiteOpenHelper我需要做什么才能使用通常提供的访问存储在外部存储器中的 SQLite 数据库android:targetSdkVersion="29"?

更新

开放意味着使用标准设计:

 SQLiteDatabase db=SQLiteDatabase.openDatabase(file.getPath(), 
     null, 
     SQLiteDatabase.OPEN_READWRITE);
java
  • 3 个回答
  • 10 Views
Martin Hope
Barmaley
Asked: 2020-12-06 15:44:42 +0000 UTC

所有表中的行数

  • 0

有一个包含数千个表的数据库(如果很重要,则为 Oracle)。我得到带有查询的表列表:

 select table_name from all_tables;

对于每个表,我可以获得记录数:

 select count(*) as numRecords from <table_name>;

现在,您需要获取所有表中的记录数 - 例如:

 <table_name> <numRecords>

如何在不涉及 PL/SQL 的情况下做到这一点 - 简单 SQL?

sql
  • 1 个回答
  • 10 Views
Martin Hope
Barmaley
Asked: 2020-09-30 03:34:05 +0000 UTC

正则表达式 - 提取复数

  • 2

给定一个复数模板作为模板{real, image},例如:

{1, 2}
{1.2, 2.3}
{1.2e+100, 5.678e-10}
{1.2E-2, -5.678E+01}
{+.12, +5.5e-12}

需要编写一个正则表达式来提取/解析复数的实部和虚部。

 String regex = "([{]*)([,]*)([}])";
 Pattern pattern = Pattern.compile(regex);
 Matcher matcher = pattern.matcher("{1.2e+100, 2.34555}");

不工作:(

PS不知何故,我通常在没有正则表达式的情况下进行管理,但我遇到过它:)

java
  • 1 个回答
  • 10 Views
Martin Hope
Barmaley
Asked: 2020-11-22 00:17:44 +0000 UTC

将字符串解析为整数的最有效代码

  • 5

通常您必须将字符串解析为整数,例如:

public static int string2Int(String s, int defaultValue) {
    int i=defaultValue;
    try {
        i=Integer.parseInt(s);
    }
    catch(Exception ex) {
    }
    return i;
}

代码对每个人都有好处,除了Exception众所周知的昂贵过程。

所以问题是:谁将提供最有效的(在资源和速度方面)解析字符串的方法int?该字符串包含一个十进制数(没有hex/bin/octal) - 可能是负数。如果字符串包含小数,则丢弃小数部分。

条件:该方法有 2 个参数:一个字符串和一个默认值 - 没有一个Exception被丢弃。解析错误时,返回默认值。

更新

因此,有 3 种方法,条件经典(在问题本身),@ArtemKonovalov 的化身中直接解析的方法和@LiashenkoV 提出的通过 Apache Commons 的远程方法。

我做了一个小测试,生成 50k 个随机字符串,1/3 字符串 like int,1/3 字符串double,1/3 字符串被随机字符破坏。我们得到以下数字:

ClassicParser - 300 мс.
ArtemParser - 100 мс.
ApacheParser - 200 мс.
java
  • 1 个回答
  • 10 Views
Martin Hope
Barmaley
Asked: 2020-05-19 17:00:26 +0000 UTC

我需要明确关闭应用程序吗?

  • 29

我们都知道生命周期Activity,它是构成 Android 应用程序(至少是 UI)的基本构建块。

我们也知道Activity轴本身可以破坏什么,这取决于负载/内存可用性等。情况。

有这样的应用程序(例如,网上银行应用程序)需要授权/登录,在这种情况下,通过与普通桌面应用程序类比,选项/按钮/操作会自动提示 -退出/退出/退出,点击它会导致保证关闭应用程序。例如,著名的 Sberbank Online 移动应用程序中就使用了这种模式。

另一个稍微不太知名的 Tinkoff Bank 移动应用程序没有使用这样的模板(或者更确切地说,你可以通过这种方式退出应用程序,但它隐藏得相当深),退出应用程序,在这种情况下,是通过系统后退/后退按钮- 当到达后者堆栈的底部时Activity- 应用程序本身停止工作。

注意,问题是: Android 应用程序使用专门的退出/退出操作是正常的还是反模式?

android
  • 8 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5