- 浏览: 1065987 次
- 性别:
- 来自: 南昌
最新评论
-
dd18349182956:
你是用的smack哪个版本?我用的smack4.1.3和sma ...
关于socket长连接的心跳包 -
xukaiyin:
全英文
getApplicationContext()与this,getBaseContext() -
裂风矢:
...
<category android:name="android.intent.category.DEFAULT" /> 惹的祸 -
xanthodont:
mark一下
XMPP——Smack -
Evilover3:
mark一下,学习了
XMPP——Smack
文章列表
打印调用堆栈
- 博客分类:
- Android 系统知识
平常我们遇到不清楚代码逻辑的,可以通过打印调用堆栈来理清楚,如下为各层打印堆栈的方法:
1. Java打印调用堆栈
Exception e = new Exception("test");
e.printStackTrace();
或者
Log.d("test",Log.getStackTraceString(new Throwable()));
2. JNI打印调用堆栈
class throwable_class = env->FindClass("java/lang/Throwable");
jmethodID t ...
Android Webview加载www.youtube.com的问题
1.若在AndroidManifest.xml去掉android:hardwareAccelerated="true"即不启动硬件加速,会导致有声音但视频显示黑色。所以要开启硬件加速
WebView中也有对此的说明:
<h3>HTML5 Video support</h3>
*
* <p>In order to support inline HTML5 video in your application you need to have hardware
* ac ...
我们可以通过Log.isLoggable来动态开关log的输出。
http://androidxref.com/8.1.0_r33/xref/frameworks/base/core/java/android/util/Log.java
android.util.Log中的isLoggable方法解析:
/**
* Checks to see whether or not a log for the specified tag is loggable at the specified level.
*
* The default level of any t ...
转https://blog.csdn.net/tankai19880619/article/details/17589015
frameworks/base/core/java/view/inputmethod/InputConnection.java
public interface InputConnection {
public boolean deleteSurroundingText(int beforeLength, int afterLength); //删除输入的字符
public boolean commitText(CharSequence text, int n ...
11-05 10:08:18.058 673 736 W BroadcastQueue: Background execution not allowed: receiving Intent { act=android.intent.action.TEST flg=0x400010 } to mvp.com.presentationapp/.PresentationScreenReceiv
er
在Android O上处于安全的考虑,google不允许广播隐试intent了。可以查看源码http://androidxref.com/8.1.0_r33/xref/frameworks/b ...
在App的mk文件设置了LOCAL_CERTIFICATE := platform和在
AndroidManifest.xml里有android:sharedUserId="android.uid.system"进行
SystemProperties.set("persist.env.test.enabled", String.valueOf(true));
报java.lang.RuntimeException: failed to set system property。
1.SystemProperties.set("persist.s ...
dalvik.vm.heapstartsize=8m
相当于虚拟机的 -Xms配置,该项用来设置堆内存的初始大小。
dalvik.vm.heapgrowthlimit=192m
相当于虚拟机的 -XX:HeapGrowthLimit配置,该项用来设置一个标准的应用的最大堆内存大小。
一个标准的应用就是没有使用android:largeHeap的应用。
dalvik.vm.heapsize=512m
相当于虚拟机的 -Xmx配置,该项设置了使用android:largeHeap的应用的最大堆内存大小。
dalvik.vm.heaptargetutilization=0.75
相当于虚拟机的 -XX ...
Suite / Plan:VTS / cts-on-gsi
Suite / Build: 8.1_R4 / 4766758
test_result_failures.html显示:
dEQP-GLES3.functional.shaders.declarations.invalid_declarations#uniform_block_in_vertex
fail
=== with config {glformat=rgba8888d24s8ms0,rotation=unspecified,surfacetype=window,required=true} ===
dEQP-GLES3.fu ...
今天客户提了一个bug说在短信添加附件,界面无法显示缩略图。接到这个bug我第一反应是缩略图生成失败了。
1.复现问题
1)在自己手上的版本无法复现该问题,再详细确认客户所处的分支,发现客户的分支与自己的不一致。
2)找与客户对应的分支的测试机器,复现只有当在Recent最近这个页面不能显示缩略图,其他页面都可以正常显示
2.通过Monitor—Hierarchy View工具查看Recent页面找到显示图片的icon的id为:icon_mime_lg.在DocumentUI搜索icon_mime_lg,定位到代码GridDocumentHolder.java
@Override
...
在任务栏中清除掉播放器的进程,状态栏仍有音乐播放器状态,且音乐仍在后台播放
1.先从UI切入问题分析,使用Monitor—Hierarchy View找到清除任务X按钮对应的id为r.id.dismiss_task,并且属于SystemUI
2.到SystemUI定位到包含dismiss_task的是TaskViewHeader.java,该按钮对应的onClick事件为:
TaskView tv = Utilities.findParent(this, TaskView.class);
tv.dismissTask();
// Kee ...
之前对于CTS测试的失败case接触不多,组长突然转了这样一个bug给我。
1027 I TestRunner: failed: testAvcGoog0Perf0320x0240(android.media.cts.VideoDecoderPerfTest)
05-23 01:24:17.675 1007 1027 I TestRunner: ----- begin exception -----
05-23 01:24:17.676 1007 1027 I TestRunner: junit.framework.AssertionFailedError: Failed to ge ...
有时候没有对应的硬件设备,那我们就得通过某种方式来模拟。比如模拟实体键盘的输入事件。有时候测试的时候,需要大量的重复同一个点击动作(几年前老总要求测试MM重复一个动作1000次,当时我听后就觉得崩溃幸好我不是测试的),如果人工操作会很耗时耗力,此时就得自动化,那也得模拟人的操作。以上两个问题我们都可以adb shell input和adb shell sendevent/getevent三个命令来完成即可,可以写成脚本在电脑端执行,也可以写一个小程序在手机端允许。
具体用法可以参考以下链接
https://blog.csdn.net/soslinken/article/details/49587 ...
Android 在Android 23增加了UndoManager撤销相关的处理,EditText可以使用android:allowUndo来配置是否支持撤销的功能。
当我们的设备连接了实体键盘,可以通过crl+z来撤销输入。(TextView with the default Control-Z undo behavior.)
可以参考http://androidxref.com/8.0.0_r4/xref/development/samples/ApiDemos/src/com/example/android/apis/content/TextUndoActivity.java
http ...
很早之前接触ContentProvider知道它提供的方法就是query,insert,update,delete这几个常用的方法,最近在解决Email的问题时发现ContentProvider提供了一个有意思的方法Call,通过这个方法可调用到ContentProvider自定义的方法。
/**
* Call a provider-defined method. This can be used to implement
* interfaces that are cheaper and/or unnatural for a table-like
* ...
当用户在Setting中清除了Email的data,再返回到Email进行新建邮件就会一直显示“waiting for sync”.从字面的意思就是要进行同步,我跑到Setting-->Account中手动同步了账号,再新建邮件,发现问题仍一直存在。
1.导出Email APP的数据查看Account tables的数据发现,发生问题和正常时数据是一致的
2.通过搜索“waiting for sync”定位到显示该UI的是在ComposeActivity.java中
private void showWaitFragment(Account account) {
...