小编Sta*_*tan的帖子

在Genymotion中运行的虚拟设备会定期在ADB中脱机

我有一个在Genymotion 2.4中运行的Android设备(带有Lollipop图像,如果重要的话),并通过ADB(版本1.0.32)从另一台开发人员PC连接到它,在本地网络中使用Eclipse而没有连接问题.一切都很好,除了ADB连接的周期性下降(其他协议保持正常工作),即ADB丢失设备,当我尝试重新连接时,表示设备处于脱机状态.根据我的经验,这种离线状态基本上意味着接收端(设备)仍然认为它已连接并拒绝新连接.我知道解决此问题的唯一方法是重新启动设备,然后ADB按预期连接到它.

如果有人感兴趣,ADB不会在使用Genymotion的远程主机上运行 - 否则将无法从其他PC上删除连接.

问题:如何在不重新启动整个设备的情况下"轻柔地"刷新虚拟设备以接受新的ADB连接?

PS如果我离开"离线"设备一段时间(很长一段时间,例如一小时)它似乎刷新其状态没有外部交互,所以ADB再次能够正确连接到并报告设备作为"在线".但是,等待这么长时间没有任何意义.这只是一条需要考虑的新信息.

android adb genymotion

23
推荐指数
1
解决办法
3913
查看次数

基于SSL的JavaMail IMAP非常慢 - 批量获取多条消息

我目前正在尝试使用JavaMail从IMAP服务器(Gmail和其他人)获取电子邮件.基本上,我的代码工作:我确实可以得到标题,正文内容等.我的问题如下:当处理IMAP服务器(没有SSL)时,处理消息基本上需要1-2ms.当我使用IMAPS服务器(因此使用SSL,例如Gmail)时,我的消息达到250米左右.我只测量处理消息的时间(不考虑连接,握手等).

我知道,因为这是SSL,所以数据是加密的.但是,解密的时间不应该那么重要,不是吗?

我已经尝试设置更高的ServerCacheSize值,更高的connectionpoolsize,但我的想法很严重.谁有人遇到这个问题?有人可能希望解决它吗?

我担心JavaMail API每次从IMAPS服务器获取邮件时都会使用不同的连接(涉及握手的开销......).如果是这样,有没有办法覆盖这种行为?

这是从Main()类调用的代码(虽然非常标准):

 public static int connectTest(String SSL, String user, String pwd, String host) throws IOException,
                                                                               ProtocolException,
                                                                               GeneralSecurityException {

    Properties props = System.getProperties();
    props.setProperty("mail.store.protocol", SSL);
    props.setProperty("mail.imaps.ssl.trust", host);
    props.setProperty("mail.imaps.connectionpoolsize", "10");

    try {


        Session session = Session.getDefaultInstance(props, null);

        // session.setDebug(true);

        Store store = session.getStore(SSL);
        store.connect(host, user, pwd);      
        Folder inbox = store.getFolder("INBOX");

        inbox.open(Folder.READ_ONLY);                
        int numMess = inbox.getMessageCount();
        Message[] messages = inbox.getMessages();

        for (Message m : messages) {

            m.getAllHeaders();
            m.getContent();
        }

        inbox.close(false);
        store.close();
        return numMess;
    } catch (MessagingException e) {
        e.printStackTrace(); …
Run Code Online (Sandbox Code Playgroud)

java ssl imap jakarta-mail

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

如何在Android中创建带单选按钮的子菜单?

我在一个简单的情况下有一个问题(至少,它看起来像这样).我需要动态创建一个上下文菜单的子菜单,并为每个项目提供一个radiobox.我做了很多试验.当我打电话时menu.setGroupCheckable(0, true, true),默认情况下菜单本身为0,它会按照预期在每个菜单项的右侧显示单选按钮,但我需要这个用于子菜单.所以我有以下代码:

SubMenu sub = menu.addSubMenu(R.string.name);
int count = 1000;
for(String e : someList)
{
  MenuItem item = sub.add(1, count, count, e);
  count++;
}
menu.setGroupCheckable(1, true, true);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我既没有看到放射线框,也没有看到子菜单中的复选框.然后我写了下面的代码:

SubMenu sub = menu.addSubMenu(R.string.name);
int count = 1000;
for(String e : someList)
{
  MenuItem item = sub.add(1, count, count, e);
  item.setCheckable(true);
  count++;
}
menu.setGroupCheckable(1, true, true);
Run Code Online (Sandbox Code Playgroud)

这使得子菜单在每个项目中都有一个复选框,并且复选框专门工作,但我想要放射线框,因为它们看起来更直观,可以进行独占选择.

那么,如何实现呢?

android contextmenu

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

解决"包管理器已经死亡"的RuntimeException

我有一个Android应用程序,应该列出设备上的所有已安装的应用程序(没有root).我曾经尝试都getInstalledApplications(0)getInstalledPackages(0)方法PackageManager,但在某些设备上,这显然是做安装了太多的应用程序,我得到"包经理人已去世" RuntimeException(我通过谷歌播放的错误报告服务接收它们).这是由于Android内部使用的IPC中每1次呼叫1MB的众所周知的限制.

如何解决这个问题?我不介意通过块请求长列表,但我没有看到任何方法.只有2种上述方法可供使用.

android installed-applications android-package-managers

9
推荐指数
1
解决办法
2935
查看次数

应用程序更新后未绑定辅助功能服务

我有一个完美运行的应用程序与可访问性服务.到目前为止,它一直在按预期工作.当我尝试构建新的更新版本时,问题出现了.与可访问性服务相关的代码中没有任何更改.但该服务不再绑定到更新的应用程序.日志中没有错误或警告.这是manifest.xml的一部分:

...
<uses-permission android:name="android.permission.BIND_ACCESSIBILITY_SERVICE" />

<application
    android:name=".AppState"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:allowBackup="true">

    // ... several activities, services and bootup receiver goes here...

    <service android:name=".ForegroundMonitor"
      android:label="@string/foreground_monitor_label"
      android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
      <intent-filter>
        <action android:name="android.accessibilityservice.AccessibilityService" />
      </intent-filter>
      <meta-data android:name="android.accessibilityservice" android:resource="@xml/serviceconfig" />
    </service>
</application>
Run Code Online (Sandbox Code Playgroud)

这是serviceconfig.xml:

<?xml version="1.0" encoding="utf-8"?>
<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
   android:accessibilityEventTypes="typeViewClicked|typeViewFocused|typeWindowStateChanged"
     android:accessibilityFeedbackType="feedbackGeneric"
     android:notificationTimeout="1000"
     android:canRetrieveWindowContent="false"
     android:description="@string/foreground_monitor_about"
/>
Run Code Online (Sandbox Code Playgroud)

可访问性服务是根据系统注册的,可以启动或停止,如果我在应用程序中更改它们并重新安装应用程序,服务设置会更改.

但该服务不再绑定到我的应用程序了.该onServiceConnected方法ForegroundMonitor不叫.

我在SO上发现了一些类似的问题:

我已经尝试了唯一的建议解决方案,但它在我的情况下不起作用.

根据我的测试,问题只出现在Android 5.0.1上.在Android 2.3.3上,该应用程序正常运行,服务绑定成功.

有人可以共享这个问题的解决方案,这可能是一个Android错误吗?

UPDATE

我刚刚找到了一个解决方法:重命名扩展的类AccessibilityService(在我的情况下为ForegroundMonitor)就足够了,例如通过添加版本控制后缀.此方法的缺点是用户必须重新启用系统中的新辅助功能服务,因为它被视为另一个.理想情况下,如果服务一旦启用,应用程序的更新不应要求此项.

所以我仍然对解决方案感兴趣 - 更方便的解决方案.

提前致谢.

android accessibilityservice android-5.0-lollipop

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

在Eclipse中自动注册新行 - 如何禁用?

这似乎是一个FAQ问题,因为我知道在Eclipse中为Java代码设置缩进应该是什么样的答案(Windows - > Preferences - > Java - > Code Style - > Formatter),但我找不到确切的答案导致以下行为的选项,我想禁用它.

问题:每次在一行上的某些文本后按Enter键时,编辑器会将文本光标移动到上一行的开头,但会添加一级缩进.如何在Indigo中禁用它?我需要每个新行都从上面的源行开始的位置开始.我在格式化程序首选项中尝试了很多控件 - 到目前为止没有任何帮助.也许我错过了什么.

eclipse code-formatting

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

在SELECT和WHERE子句中优化存储的函数调用

我有一个SQL查询具有以下结构:

SELECT *, storedfunc(param, table.field) as f 
FROM table 
WHERE storedfunc(param, table.field) < value 
ORDER BY storedfunc(param, table.field);
Run Code Online (Sandbox Code Playgroud)

有没有办法优化这个消除几个函数调用?或者MySQL是否在幕后执行此类优化?事实上,该函数被声明为确定性的.

我还需要提一下,函数参数部分来自选定表的列.我稍微改变了这个例子以反映这一点.

mysql stored-functions

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

如何模拟Android OS卸载后台应用程序?

出于测试目的,当Android系统决定保存状态并终止后台应用程序时,我需要轻松地重现这种情况,其方式与通常用于内存优化的方式相同.实际上,当用户切换回它时,我还需要测试这种被删除过程的恢复过程.

直截了当的方法是打开应用程序,然后打开更多其他任务,尝试尽可能多地分配资源.这太复杂,不可靠.

我已经在SO上找到了这个问题,但答案意味着简单地杀死进程,这似乎不等同,因为当用户决定切换回时,似乎没有办法进一步自动恢复已保存状态的被杀死进程.应用程序.如果我理解正确,那么在明确杀死应用程序之后,如果启动,将从一开始就运行,而不是从已保存状态运行.如果我错了,请纠正我.

根据Android文档,我需要的是执行ActivityManager.killBackgroundProcesses(packageName),但这是执行该操作的编程方式.是否有一个实用程序已经从UI提供相同的选项?

android

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

Chrome 扩展中的 XSLT:加载 URL 的尝试不安全

我正在编写一个 Chrome 扩展程序,它应该动态地将 XSLT 转换应用于某些 XML 文档。只是为了测试,我使用以下 XML 和 XSL 文件:

XML:

<?xml version="1.0" encoding="utf-8" ?>
<WebServiceMessage>
 <status>timeout</status>
 <message>Nameserver%2520not%2520registered.</message>
 <stepName>Finish</stepName>
 <stepNumber>11</stepNumber>
 <maxStepNumber>11</maxStepNumber>
 <percent>100</percent>
 <session>2fc0f139b88a800151e5f21b9d747919</session>
</WebServiceMessage>
Run Code Online (Sandbox Code Playgroud)

XSL:

<?xml version="1.0" ?>
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">
    <html><head></head>
    <body>
      <xsl:apply-templates/>
    </body>
    </html>
  </xsl:template>
  <xsl:template match="*">
    <xsl:for-each select="*">
      <p><b><xsl:value-of select ="name(.)"/></b>:
      <span><xsl:attribute name="id"><xsl:value-of select ="name(.)"/></xsl:attribute><xsl:value-of select="."/></span></p>
    </xsl:for-each>
  </xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

如果转换在测试 XML 文件本身内部进行链接,则转换正常工作,即通过:

<?xml-stylesheet type="text/xsl" href="message.xsl"?>
Run Code Online (Sandbox Code Playgroud)

扩展应该将相同的 xsl 链接注入到 XML 文件中。

清单.json:

{
  "permissions": ["tabs", "<all_urls>"],
  "content_scripts":
  [
    {
      "matches": ["<all_urls>"],
      "js" : ["contentscript.js"]
    } …
Run Code Online (Sandbox Code Playgroud)

javascript xml xslt google-chrome-extension

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

RelativeLayout对齐规则在DialogFragment中不起作用

我有一个关于对话框RelativeLayout.它在普通活动中正常工作,但当我决定将其移入时DialogFragment,大多数对齐规则停止工作.这是布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:minHeight="250dp" >

    <TextView
        android:id="@+id/label_copyright"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:layout_marginTop="20dp"
        android:text="Copyright (c) 2013 Copyright"
        android:textSize="8dp" />

    <TextView
        android:id="@+id/label_version"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_above="@+id/label_copyright"
        android:layout_marginTop="2dp"
        android:text="@null" />

    <TextView
        android:id="@+id/label_app_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/label_version"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="2dp"
        android:text="Application Name"
        android:textSize="25dp" />


    <ImageView
        android:id="@+id/image_app_logo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/label_app_name"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="16dp"
        android:src="@drawable/field_public_required" />


    <TextView
        android:id="@+id/label_description"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_below="@+id/label_copyright"
        android:layout_marginTop="30dp"
        android:gravity="center"
        android:autoLink="web"
        android:text="application description with more details" />


</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

以下是它应该如何工作,它实际上是有效的,所以在一个活动中(Eclipse图形布局截图):

在此输入图像描述

以下是使用片段运行应用程序时的外观:

在此输入图像描述

显然,只有第一个视图按预期居中,而其他所有视图都被推到了顶部.无论minHeight我在布局中指定哪个,行为总是相同的.

实例化对话框的代码非常简单:

@Override
public …
Run Code Online (Sandbox Code Playgroud)

android relativelayout dialogfragment

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