我有一个在Genymotion 2.4中运行的Android设备(带有Lollipop图像,如果重要的话),并通过ADB(版本1.0.32)从另一台开发人员PC连接到它,在本地网络中使用Eclipse而没有连接问题.一切都很好,除了ADB连接的周期性下降(其他协议保持正常工作),即ADB丢失设备,当我尝试重新连接时,表示设备处于脱机状态.根据我的经验,这种离线状态基本上意味着接收端(设备)仍然认为它已连接并拒绝新连接.我知道解决此问题的唯一方法是重新启动设备,然后ADB按预期连接到它.
如果有人感兴趣,ADB不会在使用Genymotion的远程主机上运行 - 否则将无法从其他PC上删除连接.
问题:如何在不重新启动整个设备的情况下"轻柔地"刷新虚拟设备以接受新的ADB连接?
PS如果我离开"离线"设备一段时间(很长一段时间,例如一小时)它似乎刷新其状态没有外部交互,所以ADB再次能够正确连接到并报告设备作为"在线".但是,等待这么长时间没有任何意义.这只是一条需要考虑的新信息.
我目前正在尝试使用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) 我在一个简单的情况下有一个问题(至少,它看起来像这样).我需要动态创建一个上下文菜单的子菜单,并为每个项目提供一个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应用程序,应该列出设备上的所有已安装的应用程序(没有root).我曾经尝试都getInstalledApplications(0)
和getInstalledPackages(0)
方法PackageManager
,但在某些设备上,这显然是做安装了太多的应用程序,我得到"包经理人已去世" RuntimeException
(我通过谷歌播放的错误报告服务接收它们).这是由于Android内部使用的IPC中每1次呼叫1MB的众所周知的限制.
如何解决这个问题?我不介意通过块请求长列表,但我没有看到任何方法.只有2种上述方法可供使用.
我有一个完美运行的应用程序与可访问性服务.到目前为止,它一直在按预期工作.当我尝试构建新的更新版本时,问题出现了.与可访问性服务相关的代码中没有任何更改.但该服务不再绑定到更新的应用程序.日志中没有错误或警告.这是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)就足够了,例如通过添加版本控制后缀.此方法的缺点是用户必须重新启用系统中的新辅助功能服务,因为它被视为另一个.理想情况下,如果服务一旦启用,应用程序的更新不应要求此项.
所以我仍然对解决方案感兴趣 - 更方便的解决方案.
提前致谢.
这似乎是一个FAQ问题,因为我知道在Eclipse中为Java代码设置缩进应该是什么样的答案(Windows - > Preferences - > Java - > Code Style - > Formatter),但我找不到确切的答案导致以下行为的选项,我想禁用它.
问题:每次在一行上的某些文本后按Enter键时,编辑器会将文本光标移动到上一行的开头,但会添加一级缩进.如何在Indigo中禁用它?我需要每个新行都从上面的源行开始的位置开始.我在格式化程序首选项中尝试了很多控件 - 到目前为止没有任何帮助.也许我错过了什么.
我有一个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是否在幕后执行此类优化?事实上,该函数被声明为确定性的.
我还需要提一下,函数参数部分来自选定表的列.我稍微改变了这个例子以反映这一点.
出于测试目的,当Android系统决定保存状态并终止后台应用程序时,我需要轻松地重现这种情况,其方式与通常用于内存优化的方式相同.实际上,当用户切换回它时,我还需要测试这种被删除过程的恢复过程.
直截了当的方法是打开应用程序,然后打开更多其他任务,尝试尽可能多地分配资源.这太复杂,不可靠.
我已经在SO上找到了这个问题,但答案意味着简单地杀死进程,这似乎不等同,因为当用户决定切换回时,似乎没有办法进一步自动恢复已保存状态的被杀死进程.应用程序.如果我理解正确,那么在明确杀死应用程序之后,如果启动,将从一开始就运行,而不是从已保存状态运行.如果我错了,请纠正我.
根据Android文档,我需要的是执行ActivityManager.killBackgroundProcesses(packageName)
,但这是执行该操作的编程方式.是否有一个实用程序已经从UI提供相同的选项?
我正在编写一个 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) 我有一个关于对话框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 ×6
adb ×1
contextmenu ×1
eclipse ×1
genymotion ×1
imap ×1
jakarta-mail ×1
java ×1
javascript ×1
mysql ×1
ssl ×1
xml ×1
xslt ×1