- 博客(83)
- 资源 (1)
- 收藏
- 关注
原创 Only the original thread that created a view hierarchy can touch its views
单元测试时遇到的问题,执行的操作本应该弹出悬浮框,实际却没有,并报错:android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.这是因为更新UI的操作需要放到UI线程里:runOn
2014-08-10 12:22:48
678
原创 单元测试时被测工程引用了其它工程
eclipse中建立三个工程: Lib (android library project) [Lib]public class A {} [App]public class A extends B {} [Test]public class MyUnitTest extends AndroidTestCase { public void test()
2014-08-10 12:20:40
778
原创 android模拟器加速,堪比真机
android模拟器慢的要死,因为速度问题几乎失去了利用价值。现在找到了一种办法可以把模拟机变得和真机一样快。前提条件:1、使用intel处理器的电脑(公司的电脑应该都达标)2、进入bios,enable CPU栏下面的Virtualization Technology选项(进入bios的方法为开机时连续按F1)具体步骤:详见点击打开链接遇到问题:使用SDK Man
2014-08-10 12:18:40
783
原创 android根据号码删除短信
根据号码删除短信:(需先在manifest.xml文件中添加权限) String queryString="ADDRESS="+smsItem.getphoneNum();mActivity.getContentResolver().delete(Uri.parse("content://sms"), queryString, null); 非常方便,因为不用cursor
2014-08-10 12:14:11
1522
原创 android删除某个号码的通话记录
增加权限manifast.xml: 删除某个号码的通话记录: public void DeleteCallLogByNumber(String number) { String queryString="NUMBER="+number; this.getContentResolver().delete(CallLog.Calls.CO
2014-08-10 12:12:07
1004
原创 根据包名获取进程pid
根据包名来获取进程pid: ActivityManager am = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE); List mRunningProcess = am.getRunningAppProcesses(); int pid=-1; //int
2014-08-10 12:11:45
12535
原创 android结束进程方法总结
方法1(需root): adb shell ps 获取正在运行的进程列表 adb kill 根据进程id杀死杀死进程 方法2: 使用DDMS 方法3: 只能杀死后台进程 adb shell am kill [options] 方法4(需root): adb shell pm disable 方法5(3.0及
2014-08-10 12:11:00
1236
原创 在android程序中执行adb shell命令
在android程序中执行adb shell命令行的函数: public static void doCmds(List cmds) throws Exception { Process process = Runtime.getRuntime().exec("su"); DataOutputStream os = new DataOutputStream(proces
2014-08-10 12:10:31
9620
3
转载 android获取屏幕某一点的像素值
Android屏幕绘制基本与linux相同,都是使用Framebuffer机制来绘制屏幕。FrameBuffer提供接口将显示设备抽象为帧缓冲区。用户可以将它看成是显示内存的一个映像,将其映射到进程地址空间之后,就可以直接进行读写操作,应用程序可以简单地通过改变这段内存的值来改变屏幕上某一点的颜色。例如如果你想把一张bitmap图片显示到屏幕上去,你只要解析bitmap之后把数据bit cop
2014-08-10 12:09:27
10420
转载 java时间与日期转换
//毫秒转换为日期DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");long now = System.currentTimeMillis();Calendar calendar = Calendar.getInstance();calendar.setTimeInMillis(now);System.
2014-08-10 12:07:18
617
原创 利用batch批量安装卸载android应用
批量安装: @echo offdir /b | find ".apk" > filelist.txtfor /F "delims=|" %%i in (filelist.txt) do (rem echo %%iadb install "%%i")pause批量卸载: @echo offfor /F "delims=|" %%i in (filel
2014-08-10 12:04:09
681
原创 java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.MAIN
做了一个可以在桌面生成很多快捷方式的工具。生成的快捷方式是指向 .DerivedActivity这个Activity的。但测试时发现,点击快捷方式并不能启动这个Activity,而是提示应用不存在。查看log发现:Launcher does not have the permission to launch Intent { act=android.intent.action.MAIN f
2014-08-10 12:01:56
16011
1
原创 jenkins构建失败原因: invoke ant
如果jenkins构建失败原因是invoke ant,只要把jenkins workspace中相应工程目录下文件全部删除即可,让jenkins自己从SVN上重新把工程down下来再运行就好了
2014-08-10 12:01:19
4713
原创 利用DisplayMetrics 获取手机屏幕分辨率
网上找到一个很巧妙的方法,可以利用context示例获取,不需要getWindowManager: DisplayMetrics dm = new DisplayMetrics();//getWindowManager().getDefaultDisplay().getMetrics(dm);dm = this.getApplicationContext().getResource
2014-08-10 11:57:37
606
原创 eclipse中androd工程名出现红色叹号
这个一般是build path问题。但在build path中检查配置却没有报错,没有找不到的jar包,这时怎么找错误原因呢?可以在这里看到:
2014-08-10 11:56:25
588
原创 Java Mail邮件SMTP协议返回信息 535 5.7.3 Authentication unsuccessful
说明用户名与或密码不正确导致验证失败,有可能是你更改过密码。 详见点击打开链接 2.2.1.4 SMTP_AUTH_Fail_Response MessageSMTP_AUTH_Fail_Response is defined as follows. This message, identified by the 535 status code, is de
2014-08-10 11:54:01
11119
原创 使用Jenkins邮件配置在邮件中输出测试运行详细结果
Jenkins的邮件配置还是比较人性化的,提供了很多令牌供用户获取特定的内容并输出。如: • ${BUILD_NUMBER} -显示当前构建的编号。• ${BUILD_STATUS} -显示当前构建的状态(失败、成功等等)• ${BUILD_URL} -显示当前构建的URL地址。• ${CHANGES, showPaths, format, path
2014-08-10 11:53:06
13419
原创 在java程序中执行dos命令
一般格式为: Process p = Runtime.getRuntime().exec(String[] cmdarray), 或Process p = Runtime.getRuntime().exec(String cmd);cmd命令格式为 "cmd.exe /c "+实际命令。注意前面的"cmd.exe /c ",不加的话可能导致命令执行失败。其中/c表示执行字符串指
2014-08-10 11:50:58
1756
原创 android工程gen missing
以前也遇到过这种情况,一般只要clean一下就好,这回居然不行了。解决方法如下: 工程右键properties,选择适合的build target如果gen没有自动生成,而且build target没有勾选成功,则邮件run as android application。这时gen奇迹般的生成了初步判定是eclipse的bug
2014-08-10 11:50:50
775
原创 libcore.io.ErrnoException: kill failed: ESRCH (No such process)
这个问题遇到不止一次,记下解决方法备忘。 运行稳定性脚本时框架崩溃,打印的堆栈信息如下: libcore.io.ErrnoException: kill failed: ESRCH (No such process)at libcore.io.Posix.kill(Native Method)at libcore.io.ForwardingOs.kill(ForwardingOs.
2014-08-10 11:49:58
7833
原创 Android测量指定应用程序的上下行流量
参考:http://xlover.iteye.com/blog/1358301 Android2.3之后把数据流量监控封装到了Android.net.TrafficStats类中,原理是读取系统的流量记录文件。 主要方法:static long getMobileRxBytes()//获取通过Mobile连接收到的字节总数,但不包含WiFistatic long getMo
2014-08-10 11:48:24
3315
原创 获取context的方法总结
在activity或service中,用this用类中的activity或service对象用instrument对象的getContext方法在函数中增加context参数,去调用它的地方获取继续补充(欢迎回复补充,集思广益:)
2014-08-10 11:44:42
1014
原创 从SVN导入工程到eclipse的问题
导入的工程成了general类型的,怎么办? 这是因为导入的工程缺少.project和.classpath两个文件。可以先用repo-browser把要导入的工程down到本地,然后从本地导入工程到eclipse,这是在workspace的相应工程文件夹根目录下就会找到 .project和.classpath两个文件。在eclipse中把general工程关闭,把这两个文件拷到worksp
2014-08-10 11:41:18
956
原创 Unable to execute dex: Multiple dex files define
非常头疼的问题,折磨了我好久,为了以后不再受其害,现在把解决方法记录下来。 这是一个build path错误,所以不用费心找源码的错误了:) 打开build path 配置,检查: source下是否包含了bin目录,有的话删掉 libraries下把android private libraries(也就是libs文件夹)中的jar文件一个一个add进build path,然后把
2014-08-10 11:27:47
547
原创 android代码混淆常见问题及解决
代码混淆就是把代码中的类、方法、变量名等替换成无义字符,以防源码被反编译泄露。 android SDK自2.3.3以来就把代码混淆工具Proguard集成进来了,在项目中可以直接使用,非常方便。步骤:1、打开项目的project.properties文件,可以看到这样两行:# To enable ProGuard to shrink and obfuscate your cod
2014-08-10 11:26:37
2008
1
转载 关于MMS,SMS常用的Uri
转自http://www.cnblogs.com/kakafra/archive/2012/10/06/2713327.html Android提供了很多查询系统数据的Uri,这里是一些关于MMS,SMS常用的Uri以及对其的一些分析Uri:content://smssql语句:SELECT * FROM sms WHERE ({where}) O
2014-08-10 11:26:36
1868
转载 android短彩信相关
MMS模块总共包含17张表:addr、android_metadata、attachments、canonical_addresses、drm、part、pdu、pending_msgs、rate、raw、sms、sr_pending、threads、words、words_content、words_segdir、words_segments。其中,pending_msgs表用于存储待发送或
2014-08-09 17:47:39
720
原创 关于jenkins邮件配置的经验总结
SMTP服务器:mail.sogou-inc.com字符集选GBK,就不会出现邮件乱码的问题了。因为邮件正文中是默认转为GBK的,UTF-8中的某些字符可能会乱码在邮件插件中配置完毕后,要在add trigger中选择触发器,配置的邮件内容才会生效所有需要填邮件地址的地方,把地址写全使用jelly script,可以使邮件内容更加易读
2014-08-09 17:43:12
2798
原创 关于jenkins配置的tips
jenkins最新版好像还是不太稳定,选择了安全设置后登录不上去。试遍找来的各种方法无果,最后去c盘jenkins工作目录下把最近的几个文件全删了(包括配置文件),恢复原状jenkins中被测项目在SVN上,本地更改无法提交,如何与jenkins同步?可以把本地更改换个名字直接复制到jenkins workspace下,注意更改相关联的其它文件给测试项目添加ant时,会自动把测试项目与被测项目设置
2014-08-09 17:42:26
618
原创 adb服务启动失败
总结一下各种方法: 初级版: 1、重启eclipse 2、重启命令行窗口 3、重启电脑 中级版: 1、adb kill-server adb-start server 2、打开任务管理器,杀掉所有adb.exe 3、打开eclipse的DDMS,点击下拉菜单选择重启adb 4、打开任务管理器,杀掉tadb.exe 高级版:
2014-08-09 17:41:22
1144
原创 android动态注册广播接收器
简单一段代码足以说明: if(value!="close"){ IntentFilter filter = new IntentFilter(); filter.addAction("android.intent.action.NEW_OUTGOING_CALL");//注明要注册接收哪种广播 filter.setPriority(Integer.MAX_VALUE);//设置优先级
2014-08-09 17:39:51
802
原创 android拦截去电
需要在AndroidManifest.xml添加权限: 需要新建一个广播接收器,在onReceive中把外拨的号码置空即可: public class Receiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent
2014-08-09 17:36:19
1054
原创 调用android系统API结束通话
Android没有对外公开结束通话的API,如果需要结束通话,必须使用AIDL与电话管理服务进行通信,并调用服务中的API实现结束通话,方法如下: 1.从Android的源代码中拷贝以下文件到项目中(需在项目中建立同名包):com/android/internal/telephony/ITelephony.aidlandroid/telephony/NeighboringCell
2014-08-09 17:36:08
1195
原创 The type java.lang.String cannot be resolved. It is indirectly referenced from required .class files
有时候用eclipse导入一个外来的工程时会出现以上错误,这主要是因为你的电脑上安装了多个版本的jdk,解决的办法是:右击工程目录下的jdk 选择 build path---->config build path 或者在eclipse菜单栏点击project----->properties 在里面再选择Java Build Path -----> Libraries---->Add Lib
2014-08-09 17:33:58
993
原创 Android 导入工程出现 unable to get system library for the project
当我们从别处引入Android工程时,会出现 unable to get system library for the project 的提示。解决方法一:可能是由于sdk版本不兼容导致的。假设引入的工程sdk版本是7,而自己eclipse关联的sdk中没有版本7,便会出现找不到库的错误,此时需要更改更改android工程的sdk版本的方式有2种:①打开工程中的
2014-08-09 17:33:08
617
原创 Android手机短信与通讯录存储位置
短信是:data/data/com.android.providers.telephony目录下的mmssms.db数据库文件中的sms表通话记录:data/data/com.android.providers.contacts目录下的contacts2.db数据库文件中的call表联系人
2014-08-09 17:31:41
21196
原创 Android设置应用界面显示方向
自己写的应用,如果界面不太适合横屏,则为了避免横屏出现意外情况,可以直接把显示设置为竖屏 在AndroidManifest.xml文件中加上一句android:screenOrientation="portrait",位置如下: android:label="@string/app_name" and
2014-08-09 17:27:28
1266
原创 索爱X10i刷机(变砖补救)
前提: Ø 已rootØ 下载适合自己机型的ftf格式的固件包到电脑(http://sebbs.cnmo.com/thread-11963703-1-1.html)Ø 下载flashtool到电脑(http://115.com/?ct=rar&pickcode=dbko4xkg)步骤参考:Ø http://sebbs.cnmo.com/thread-11963
2014-08-09 17:24:43
1646
原创 电子邮件参考格式
收件人1. 填写目标收件人,个数不要过多Ø 按照一定的顺序排列,如事件相关度等抄送1. 给非目标收件人,但有一定相关度或需要知会的人Ø 与本次事件无关的人尽量不要抄送,节省大家的时间主题1. 不可留白2. 简短的同时准确反映邮件的内容Ø 回复邮件时要更改主题正文1. 开头的称呼不
2014-08-09 17:23:47
4382
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅