小编Sal*_*leh的帖子

为什么要使用Objects.requireNonNull()?

为什么要使用Objects.requireNonNull()

我注意到Oracle JDK中使用了许多Java 8方法,如果给定的对象(参数)是NullPointerException内部抛出nullNullPointerException.

public static <T> T requireNonNull(T obj) {
    if (obj == null)
        throw new NullPointerException();
    return obj;
}
Run Code Online (Sandbox Code Playgroud)

但是null如果NullPointerException对象被解除引用,则无论如何都会抛出.那么,为什么要进行额外的空检查和抛出 Objects.requireNonNull()

一个明显的答案(或好处)是它使代码更具可读性,我同意.我很想知道Objects.requireNonNull()在方法开头使用的任何其他原因 .

java nullpointerexception java-8

158
推荐指数
5
解决办法
4万
查看次数

创建一个新的颜色drawable

我试图将十六进制值转换为int,以便我可以创建一个新的颜色drawable.我不确定这是否可行,但根据文档,它应该.它显然要求

public ColorDrawable(int color)

在API级别1中添加创建具有指定颜色的新ColorDrawable.

参数 color 要绘制的颜色.

所以,我的代码不起作用,因为我得到一个无效的int:"FF6666"错误.有任何想法吗?

int decode = Integer.decode("FF6666");
ColorDrawable colorDrawable = new ColorDrawable(decode);
Run Code Online (Sandbox Code Playgroud)

java android android-drawable colordrawable

69
推荐指数
4
解决办法
8万
查看次数

实模式内存寻址中的段和偏移量是多少?

我正在读关于内存寻址的内容.我读了关于段偏移然后关于描述符偏移的内容.我知道如何计算实模式下的确切地址.这一切都没问题,但我无法理解究竟是什么偏移?到处都读到:

在实模式下,寄存器只有16位,因此最多只能寻址64k.为了允许寻址更多内存,地址קד是从segment*16 + offset计算的.

在这里我可以理解第一行.我们有16位,所以我们可以解决最多2 ^ 16 = 64k.

但这第二行是什么?细分代表什么?为什么我们将它乘以16?为什么我们添加偏移.我只是无法理解这个偏移是什么?有人可以解释我或给我链接吗?

memory x86 assembly operating-system real-mode

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

Django 引导程序警报未按预期工作

我需要这方面的帮助。

我正在尝试使用引导程序警报使我的应用程序看起来更好,我有一个添加项目的警报和另一个删除项目的警报。

当我添加一个项目时,我的警报看起来很棒并且工作正常,但是当我删除该项目时它无法正常工作......只显示我的消息而没有引导警报......

我究竟做错了什么?

这是我得到的:

<div class="container">
  {% if messages %}
  <div class="row">
  <div class="col-sm-6 col-sm-offset-3">
      {% for message in messages %}
      <p{% if message.tags == "success" %} class="alert alert-success "{% endif %}>{{ message }}</p>
      {% if message == 'danger' %}
      <p{% if message.tags == 'danger'  %} class="alert alert-danger"{% endif %}>{{ message }}</p>
      {% endif %}
      {% endfor %}


    </div>

  </div>
  {% endif %}
Run Code Online (Sandbox Code Playgroud)

查看我的成功 msg messages.success(request, '已添加!.')

对我的危险 msg messages.error 的看法(请求,'已被删除!。')

提前致谢..!

编辑

当 Silvio 回答我的问题时,我解决了我的问题。每个引导程序警报都很好用,但alert-danger …

javascript django jquery twitter-bootstrap

12
推荐指数
2
解决办法
6552
查看次数

将我的Android应用程序签名为系统应用程序

将我的Android应用程序签名为系统应用程序

在我的公司,我们希望在现场完全控制电池消耗,仅使用2g和gps可以快速耗尽电池.我们的决定是我们需要拥有移动电话的root权限,这样当手机闲置时,我们会关闭那些不必要的电池消耗.而且我们也不允许用户将其卸载并清除数据.

我的问题是:

  1. 我在哪里可以获得这些签名密钥?
  2. 是否会像root用户那样成功设置签名?
  3. Root vs Signed与key有什么区别?

android android-permissions

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

如何在Android中启用USB唤醒(远程唤醒)?

我在板上编译了一个AOSP树。我购买了无线键盘,并通过USB端口将其连接到板上。我希望板子处于挂起状态时,可以通过按键盘上的键来唤醒。但事实并非如此。

我在自举程序(uboot),内核等中尝试了几种方法。但是没有效果。另外,我进行了一个实验,发现在睡眠状态下,我的USB端口(其中有一个加密狗)只有1-5 mA。但是,加密狗的工作效率应该更高!

有人经历过吗?如何在Android中为USB启用远程唤醒?

谢谢


更多信息:uboot支持USB主机控制器接口。我调整了内核构建选项。但是这两个动作无效。


编辑:我在amlogic的p212参考板上工作。它的SoC是Amlogic S905X。


编辑2:我使用手机及其充电器测试了该板(实际上是一个电视盒),发现当盒进入睡眠状态时,充电停止了!因此,我可以推断出加密狗没有足够的能量来维持生命!(但仍将唤醒信号发送到SoC!)

然后,我进行了第二个实验:我使用仅具有两个引脚而不是四个引脚的USB充电器连接了手机。(仅供电;差分引脚(信号引脚)已断开)。结果:我的手机正在充电!似乎当SoC挂起时,它会向USB外设发送信号,告诉它们不要消耗功率。我对么?如何配置AOSP树和Linux内核以及uboot引导加载程序以避免发生这种情况?请指导我如何在内核或堆栈的其他部分修复它!


编辑3

我已经在这里粘贴了内核配置。我将这些选项配置为y但没有效果:

CONFIG_PM_RUNTIME=y
CONFIG_PM_AUTOSLEEP=y
CONFIG_PM_DEBUG=y
CONFIG_USB_OTG_WAKELOCK=y

CONFIG_USB_DEBUG=y
CONFIG_USB_OTG=y
Run Code Online (Sandbox Code Playgroud)

另外,此链接是我的设备树文件。(在内核中。不是 uboot)

linux-kernel wake-on-lan android-source android-wake-lock wakelock

9
推荐指数
0
解决办法
270
查看次数

将prebuilt apk添加到AOSP build

我试图在我的marshmallow AOSP构建中包含一个预建的google apk(没有.so文件),基于此链接中的信息,如下所示:

  1. 在我的vendor/manufacturer/device/proprietary/system/app中,我创建了一个名为'Testapk'的文件夹.

  2. 我在这个'Testapk'文件夹中保存了两个文件,apk('Testapk.apk')和一个Android.mk文件,其中包含以下说明:

LOCAL_PATH:= $(调用my-dir)

包括$(CLEAR_VARS)

LOCAL_MODULE_TAGS:=可选

LOCAL_MODULE:= Testapk

LOCAL_SRC_FILES:= $(LOCAL_MODULE).apk

LOCAL_MODULE_CLASS:= APPS

LOCAL_MODULE_SUFFIX:= $(COMMON_ANDROID_PACKAGE_SUFFIX)

LOCAL_CERTIFICATE:=预设

包含$(BUILD_PREBUILT)

  1. 我在vendor/manufacturer/device/vendor_device.mk中添加了以下说明:

PRODUCT_PACKAGES + = \

Testapk

在进行AOSP构建时,我收到以下错误:

make: *** No rule to make target `/Testapk', needed by `out/target/product/mako/obj/APPS/Books_intermediates/Testapk.apk'.  Stop.

#### make failed to build some targets (01:00 (mm:ss)) ####
Run Code Online (Sandbox Code Playgroud)

android prebuild android-source

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

Sql server - 以只读权限执行存储过程

我有一个应用程序,用户可以在其中输入要在 sql server 数据库中执行的 sql 语句。这些语句只能返回数据,不能执行任何 DML 或 DDL 操作。目前输入被验证只允许编写 SELECT 语句。但现在要求允许执行存储过程,但只允许那些只读取数据的过程。也将有助于列出这些 SP 以显示一种智能感知。

我想创建一个只有 db_datareader 权限的用户并以此用户身份执行语句。但是要执行存储过程,我必须向用户授予 Execute 权限,并且因为Ownership Chaining,可能不会检查权限。我还没有想出如何解决这个问题。

我还认为只允许执行在只有读取权限的特定数据库模式中创建的存储过程。同样,我可以通过这种方式轻松列出 SP。我不知道这是否可能。

c# sql-server

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

预装一些应用程序,以便用户无需root即可卸载

我(作为 AOSP 构建者)可以预安装一些应用程序,以便在设备上刻录后可以轻松卸载它们(就像常规下载的应用程序一样)吗?

我已经熟悉系统应用程序和隐私应用程序,但由于它们位于系统分区中,因此无法删除!(仅在设置菜单中禁用)

PS 我知道华为例如使用 /system/delapp 来安装此类应用程序。但我正在寻求一种通用方法或专门针对我正在研究的 AMLogic 平台!

android-source android-7.1-nougat

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

设备树编译器无法识别包含文件的C语法

我想手动编译我的主板设备树。我已经dtc从官方来源下载了最新版本的,但是当我尝试运行以下命令时,出现错误提示我将所有#include指令更改/include/#define等等。

dtc -I dts -O dtb -p 0x1000 meson-gxl-s905x-khadas-vim.dts -o kvim1.dtb
Run Code Online (Sandbox Code Playgroud)

我的董事会是Khadas Vim,其核心是amlogic S905x SoC。所有包含文件都存在,并且错误是:

Error: meson-gxl-s905x-khadas-vim.dts:8.1-9 syntax error
FATAL ERROR: Unable to parse input tree
Run Code Online (Sandbox Code Playgroud)

第八行是:

#include <dt-bindings/input/input.h>
Run Code Online (Sandbox Code Playgroud)

更改#include/include/将抑制错误!

如果您知道设备树“语言”的某些参考(U-boot文档除外),请对其进行介绍。

linux embedded dts linux-kernel device-tree

4
推荐指数
1
解决办法
1884
查看次数

java.lang.IllegalStateException 由于 okhttp 异步 HTTP POST 请求中的 onResponse 代码

我在这里写了一段代码:

public class Wizard1 extends GuidedStepFragment implements Callback {

    private boolean sendPhoneNumber(String userPhoneNumber) {

        OkHttpClient client = new OkHttpClient();

        RequestBody requestBody = new MultipartBody.Builder()
                .setType(MultipartBody.FORM)
                .addFormDataPart("request_magic_code", Urls.REQUEST_MAGIC_CODE)
                .build();

        Request request = new Request.Builder()
                .url(Urls.HOST + Urls.SEND_PHONE_NUMBER)
                .post(requestBody)
                .build();

        client.newCall(request).enqueue(this);
        return success;
    }

    @Override
    public void onFailure(@NonNull Call call, @NonNull IOException e) {
        e.printStackTrace();
    }

    @Override
    public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException {
        ResponseBody myResponse = response.body();
        Log.d("SS", response.body().string());

    Log.d("SS", response.body().string());

        if (myResponse != null) {
            success …
Run Code Online (Sandbox Code Playgroud)

android okhttp leanback retrofit2

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

cassandra Durable_writes=false 与 simplestrategy

我们正在使用 Cassandra 3 来编写批处理程序的结果/日志。对于时间结果,我们写入如下定义的键空间:

CREATE keyspace mykeyspace
WITH REPLICATION = { 'class' : 'org.apache.cassandra.locator.SimpleStrategy', 'replication_factor': '3' }
AND DURABLE_WRITES = false;
Run Code Online (Sandbox Code Playgroud)

我们设置durable_writes为 false,因为临时结果/日志仅供参考,以防出现问题,因此不需要提交日志。

但是 Cassandra doc 说:

注意:在使用 SimpleStrategy 复制时,切勿禁用持久写入。

但它没有说明为什么......除了丢失日志或时间结果之外,我们是否冒着其他风险?

cassandra cassandra-3.0

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