为什么要使用Objects.requireNonNull()?
我注意到Oracle JDK中使用了许多Java 8方法,如果给定的对象(参数)是NullPointerException内部抛出null的NullPointerException.
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()在方法开头使用的任何其他原因
.
我试图将十六进制值转换为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) 我正在读关于内存寻址的内容.我读了关于段偏移然后关于描述符偏移的内容.我知道如何计算实模式下的确切地址.这一切都没问题,但我无法理解究竟是什么偏移?到处都读到:
在实模式下,寄存器只有16位,因此最多只能寻址64k.为了允许寻址更多内存,地址קד是从segment*16 + offset计算的.
在这里我可以理解第一行.我们有16位,所以我们可以解决最多2 ^ 16 = 64k.
但这第二行是什么?细分代表什么?为什么我们将它乘以16?为什么我们添加偏移.我只是无法理解这个偏移是什么?有人可以解释我或给我链接吗?
我需要这方面的帮助。
我正在尝试使用引导程序警报使我的应用程序看起来更好,我有一个添加项目的警报和另一个删除项目的警报。
当我添加一个项目时,我的警报看起来很棒并且工作正常,但是当我删除该项目时它无法正常工作......只显示我的消息而没有引导警报......
我究竟做错了什么?
这是我得到的:
<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 …
将我的Android应用程序签名为系统应用程序
在我的公司,我们希望在现场完全控制电池消耗,仅使用2g和gps可以快速耗尽电池.我们的决定是我们需要拥有移动电话的root权限,这样当手机闲置时,我们会关闭那些不必要的电池消耗.而且我们也不允许用户将其卸载并清除数据.
我的问题是:
我在板上编译了一个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
我试图在我的marshmallow AOSP构建中包含一个预建的google apk(没有.so文件),基于此链接中的信息,如下所示:
在我的vendor/manufacturer/device/proprietary/system/app中,我创建了一个名为'Testapk'的文件夹.
我在这个'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)
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) 我有一个应用程序,用户可以在其中输入要在 sql server 数据库中执行的 sql 语句。这些语句只能返回数据,不能执行任何 DML 或 DDL 操作。目前输入被验证只允许编写 SELECT 语句。但现在要求允许执行存储过程,但只允许那些只读取数据的过程。也将有助于列出这些 SP 以显示一种智能感知。
我想创建一个只有 db_datareader 权限的用户并以此用户身份执行语句。但是要执行存储过程,我必须向用户授予 Execute 权限,并且因为Ownership Chaining,可能不会检查权限。我还没有想出如何解决这个问题。
我还认为只允许执行在只有读取权限的特定数据库模式中创建的存储过程。同样,我可以通过这种方式轻松列出 SP。我不知道这是否可能。
我(作为 AOSP 构建者)可以预安装一些应用程序,以便在设备上刻录后可以轻松卸载它们(就像常规下载的应用程序一样)吗?
我已经熟悉系统应用程序和隐私应用程序,但由于它们位于系统分区中,因此无法删除!(仅在设置菜单中禁用)
PS 我知道华为例如使用 /system/delapp 来安装此类应用程序。但我正在寻求一种通用方法或专门针对我正在研究的 AMLogic 平台!
我想手动编译我的主板设备树。我已经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文档除外),请对其进行介绍。
我在这里写了一段代码:
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) 我们正在使用 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 复制时,切勿禁用持久写入。
但它没有说明为什么......除了丢失日志或时间结果之外,我们是否冒着其他风险?
android ×4
java ×2
linux-kernel ×2
assembly ×1
c# ×1
cassandra ×1
device-tree ×1
django ×1
dts ×1
embedded ×1
java-8 ×1
javascript ×1
jquery ×1
leanback ×1
linux ×1
memory ×1
okhttp ×1
prebuild ×1
real-mode ×1
retrofit2 ×1
sql-server ×1
wake-on-lan ×1
wakelock ×1
x86 ×1