小编Ale*_*hak的帖子

向下滑动时,SwipeRefreshLayout禁用拖动动画

是否可以SwipeRefreshLayout在没有类自定义的情况下在向下滑动时禁用拖动动画?

android swiperefreshlayout

38
推荐指数
3
解决办法
2万
查看次数

android弹出菜单文字颜色(AppCompat)

我需要更改popuo菜单的文本颜色,但我找不到任何方法可以做到这一点,我可以更改popmenu的背景而不是文本,我以这种方式编辑style.xml:

<style name="AppBaseTheme" parent="Theme.AppCompat.Light">
    <!-- API 14 theme customizations can go here. -->

    <item name="popupMenuStyle">@style/MyPopupMenu</item>
    <item name="android:textAppearanceLargePopupMenu">@style/myPopupMenuTextAppearanceLarge</item>
    <item name="android:textAppearanceSmallPopupMenu">@style/myPopupMenuTextAppearanceSmall</item>
</style>

<style name="MyPopupMenu" parent="@style/Widget.AppCompat.PopupMenu">
    <item name="android:popupBackground">#0F213F</item>
</style>

<style name="myPopupMenuTextAppearanceSmall" parent="@style/TextAppearance.AppCompat.Base.Widget.PopupMenu.Small">
    <item name="android:textColor">#ffffff</item>
</style>

<style name="myPopupMenuTextAppearanceLarge" parent="@style/TextAppearance.AppCompat.Base.Widget.PopupMenu.Large">
    <item name="android:textColor">#ffffff</item>
</style>
Run Code Online (Sandbox Code Playgroud)

哪里出错了?

android colors popupmenu

25
推荐指数
3
解决办法
3万
查看次数

下载内容的缓存与数据存储

我通过向服务器发出HTTP GET请求来下载一些文本数据.我想保存下载的文本文件,以便在已经下载的情况下根据请求重新使用它.但我希望将我的数据保密,以便其他任何应用都无法访问它.另一方面,如果没有足够的磁盘空间,Android会删除该文件.

所以,我的问题是 - 我应该将下载的内容存储在App Data文件夹或缓存文件夹中吗?两个之间有什么区别吗?

首先,我曾经使用像这样的方法保存App Data文件夹中的文件

public void save(String fileName, String data) {
    FileOutputStream fos;
    try {
        fos = mContext.openFileOutput(fileName, Context.MODE_PRIVATE);
        fos.write(data.getBytes());
        fos.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

使用此方法,我可以为我的文件设置私有模式,以便其他应用程序无法访问它们.但后来我考虑将文件移动到缓存目录,我需要做类似的事情

private void save(String filename, String data) {
    File cacheDir = new File(mContext.getCacheDir(), "app_directory");
    cacheDir.mkdir();
    try {
        FileOutputStream fos = new FileOutputStream(new File(cacheDir, filename));
        fos.write(data.getBytes());
        fos.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

我不能再将Private属性设置为我的文件,因此,据我所知,任何应用程序都可以访问我的数据.我对吗?

也许有一种方法可以将缓存目录中的文件设为私有?或者将文件保存到哪里并不重要?

storage android

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

在长模式下使用64/32位寄存器可能会有任何处罚吗?

可能这甚至都不是微观但纳米优化,但主题让我感兴趣,我想知道在长模式下使用非本机寄存器大小时是否存在任何惩罚?

我从各种来源了解到,部分寄存器更新(比如ax代替eax)会导致eflags停顿并降低性能.但我不确定长模式.对于此处理器操作模式,哪个寄存器大小被视为原生?x86-64仍然是x86架构的扩展,因此我相信32位仍然是原生的.还是我错了?

例如,像

sub eax, r14d
Run Code Online (Sandbox Code Playgroud)

要么

sub rax, r14
Run Code Online (Sandbox Code Playgroud)

具有相同的尺寸,但在使用其中任何一种时可能会有任何处罚吗?在如下连续指令中混合寄存器大小时可能会有任何处罚吗?(假设高dword在所有情况下均为零)

sub ecx, eax
sub r14, rax
Run Code Online (Sandbox Code Playgroud)

optimization x86 assembly micro-optimization

8
推荐指数
1
解决办法
186
查看次数

Windows启动 - 如何从批处理文件以管理员身份运行程序

在Windows 8.1上,我尝试从启动期间调用的批处理文件启动程序,我希望程序以管理员身份运行.这是我做的:

  1. 我在c:\ program files\MyProgram下有一个程序prog.exe
  2. EXE被标记为"以管理员身份运行"
  3. 在c:\ program files\MyProgram下有一个名为RunEXE.bat的批处理文件.它包含各种各样的东西,最后它包含一行"start prog.exe"
  4. 在"C:\ programdata\Microsoft\Windows\Start Menu\Programs\StartUp"下,有一个RunEXE.BAT的快捷方式.
  5. 当我重新启动PC时,我希望快捷方式启动RunEXE.BAT,然后运行PROG.EXE.

但它不会发生.有一个短暂的"哔哔"声,好像Windows正在显示一条消息,要求确认程序应以管理员身份运行,但屏幕上看不到任何内容.

a)如果我旗的快捷和exe文件作为管理员身份运行,那么EXE启动.
b)如果我标记了以管理员身份运行的快捷方式&exe ,那么EXE 不会启动.
C)如果我举报的快捷方式运行的管理和EXE 运行作为管理员则EXE 启动,但它不以管理员身份运行.
d)EXE的启动快捷方式.(没有批次).快捷方式标记以管理员身份运行,EXE 标记:EXE没有运行.
e)EXE的启动快捷方式.(没有批次).标记为以管理员身份运行的快捷方式,EXE 标记:EXE正在运行但不是管理员.

我尝试完全禁用UAC - 结果相同.我还尝试使用另一个EXE代替批处理,结果相同.

那么 - 有没有办法从启动时获得EXE的快捷方式,它将以管理员身份运行EXE?

uac windows-8.1

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

使用pxor和xorps的混合会影响性能吗?

我遇到了使用PCLMULQDQ实现快速CRC计算.我看到,那些人混合pxorxorps说明很像下面的片段:

movdqa  xmm10, [rk9]
movdqa  xmm8, xmm0
pclmulqdq xmm0, xmm10, 0x11
pclmulqdq xmm8, xmm10, 0x0
pxor  xmm7, xmm8
xorps xmm7, xmm0

movdqa  xmm10, [rk11]
movdqa  xmm8, xmm1
pclmulqdq xmm1, xmm10, 0x11
pclmulqdq xmm8, xmm10, 0x0
pxor  xmm7, xmm8
xorps xmm7, xmm1
Run Code Online (Sandbox Code Playgroud)

这有什么实际的理由吗?性能提升?如果是,那么这下面是什么?或者它可能只是一种编码风格,有趣吗?

x86 assembly sse simd

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

CAST性能中的SQL VARCHAR与NVARCHAR

我有一个查询比较两个表中的数据:

SELECT DISTINCT
    MT.Column1,
    MT.Column2,
    MT.Column5,
    MT.Column7,
    MT.Column9
FROM tblMyTable MT
WHERE
    EntryDate >= @StartDate AND EntryDate <= @EndDate AND
    NOT EXISTS (
        SELECT ID FROM tblOtherTable
        WHERE SomeString LIKE 
                'X' + CAST(MT.Column1 AS VARCHAR(16)) +
                'Y' + CAST(MT.Column3 AS VARCHAR(16)) +
                'Z' + CAST(MT.Column4 AS VARCHAR(16)) + '%'
    )
Run Code Online (Sandbox Code Playgroud)

它运作正常.但是当我尝试使用CAST(var AS NVARCHAR)时,查询执行时间超过10分钟,并且在最近的将来似乎没有完成.但是当我如上所述更改为CAST(var AS VARCHAR)时,查询将在2-3秒内完成.

CASTed列定义为:

  • Column1 int,not null,
  • Column3 varchar(50),不为null
  • Column4 varchar(9),不为null

但实际上所有都只包含数字,长度为9-15位

我想知道这种性能损失的原因是什么?

更新:

执行计划显示如下: 在此输入图像描述

sql sql-server performance varchar

5
推荐指数
1
解决办法
2598
查看次数

&lt;layer-list&gt; 背景禁用 android:padding 设置

我有一个ListView自定义项目布局和自定义背景。问题是android:padding在我将可绘制背景从<shape>to切换后, value 似乎被忽略了<layer-list>

布局/list_item.xml

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout_list_item_bill"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="12dp">

    . . .
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

drawable/list_item_background.xml

<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
        <solid android:color="@color/white" />
        <corners android:radius="@dimen/corner_radius" />
        <stroke android:width="1dp" android:color="@color/blue" />
</shape>
Run Code Online (Sandbox Code Playgroud)

以上按预期工作。填充消失当我改变drawable/list_item_background.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item>
        <shape>
            <solid android:color="@color/white"/>
        </shape>
    </item>

    <item>
        <shape android:shape="rectangle">
            <solid android:color="@color/white" />
            <corners android:radius="@dimen/corner_radius" />
            <stroke android:width="1dp" android:color="@color/blue" />
        </shape>
    </item>

</layer-list>
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

android layer-list

5
推荐指数
1
解决办法
1595
查看次数

具有A和B或C必需属性的对象的JSON模式

我有一个请求的两个可能的JSON对象:

{
  "from": "string",
  "to": "string",
  "text": "string"
}
Run Code Online (Sandbox Code Playgroud)

要么

{
  "number": "integer",
  "text": "string"
}
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,"text"属性都是可选的.其他属性是必需的(从"和"到""的"数字或两者").

验证这一点的正确JSON模式是什么?

jsonschema

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

什么是8086 ESC指令操作码

主要是历史兴趣,如果我要为汇编程序实现8086兼容性,哪些操作数被认为对ESC指令有效?

ESC opcode, source

从8086程序员手册我知道,这opcode是0到63范围内的立即数,source是一个寄存器或存储器.但是哪些寄存器可以编码?是reg8reg16reg16?如果source是内存,操作数大小(mem8mem16)是否重要?

基本上,无论是上述的真的不从指令编码的角度关系(如,例如,两者esc 0x01, chesc 0x01, bp会产生相同的结果),但也许装配强迫限制

而且,最后,但并非最不重要,我在哪里可以找到ESC操作码的描述?

assembly x86-16

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

加载获取/存储释放和中断

假设我有一个原子的load-modify-store操作:

1:    ldaxr x8, [x9]
      orr x10, x8, #1
      stlxr w11, x10, [x9]
      cbnz w11, 1b
Run Code Online (Sandbox Code Playgroud)

如果我正确理解这一点,那么在两个内核上执行此代码(访问相同的内存地址)时,线程A就会使用锁定资源ldaxrstlxr线程B中的线程失败,并且重试操作,直到线程A释放锁为止。

但是,如果ldaxr在主线程中发生中断并且中断处理程序尝试访问相同的内存地址后会发生什么?它是死锁还是中断处理程序优先,并且stlxr从中断返回时在主线程中会失败?

assembly arm64 armv8

3
推荐指数
2
解决办法
68
查看次数

多个Android IntentServices可以同时运行吗?

根据我的理解,一个人IntentService只能一次处理一个Intent,因为它共享一个工作线程来完成它的所有工作.但是如果IntentService我的应用程序中有多个s,它们可以并行运行,还是它们共享单个工作线程?

service android android-intent android-intentservice

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