/image/avatar.png

Android中的UI线程阻塞

当一个应用程序启动之后,android系统会为这个应用程序创建一个主线程,这个线程非常重要,它负责渲染视图,分发事件到响应监听器并执行,对界面进行轮询的监听,一般叫做“UI主线程”

Android系统不会给应用程序的多个元素组件建立多个线程来执行,一个视图(activity)中的多个view组件运行在同一个UI线程当中,因此,多个view组件的监听器的执行可能会相互影响。

如有以下两个button,其中一个在会在主view中进行移动动画,另外一个button在点击以后将线程sleep 5秒

Android开发初步

绑定单击事件有两种方法,一种是通过绑定android:onClick属性,一种是绑定一个setOnClickListener回调函数

通过绑定onClick属性

在activity_main.xml对应的组件上设置android:onClick=“test” 属性,然后再Java文件里定义一个test方法来实现,这个test方法是MainActivity类的一个方法

1
2
3
4
5

public void test(View view){
        Toast.makeText(MainActivity.this, "你还真敢点啊!", Toast.LENGTH_LONG).show();
    }
    

这里的view就是要使用的控件,如果是绑定的是个button,那么view就是这个button

没事别蹭wifi-告诉你公共的wifi有多不安全

经常看到一些朋友每到一个地方就先找wifi,没有密码就直接上了!汗……

今天通过两个小工具来显示一下公共wifi的安全隐患(爱蹭网的代价)

工具:wireshark与cain

下载:wireshark

https://www.wireshark.org/download.html Cain & Abel http://www.oxid.it/cain.html (被墙) 百度网盘链接:http://pan.baidu.com/s/18kshg 密码:9owu

md5:EA2EF30C99ECECB1EDA9AA128631FF31 sha1:82407EAF6437D6956F63E85B28C0EC6CA58D298A

如果没有校验工具,我写了一个python脚本来校验 链接:http://pan.baidu.com/s/1i3j93sp 密码:h6gz

appium简明教程(转)

乙醇的自动化教程写的挺好的,以下是转自他的cnblogs上面的博客

appium简明教程(1)——appium和它的哲学世界

什么是appium?

下面这段介绍来自于appium的官网。

Appium is an open-source tool you can use to automate mobile native, mobile web, and mobile hybrid applications on iOS and Android platforms. “Mobile native apps” are those written using the iOS or Android SDKs. “Mobile web apps” are web apps accessed using a mobile browser (Appium supports Safari on iOS and Chrome on Android). “Mobile hybrid apps” have a native wrapper around a “webview” – a native control that enables interaction with web content. Projects like Phonegap, for example, make it easy to build apps using web technologies that are then bundled into a native wrapper – these are hybrid apps.

Importantly, Appium is “cross-platform”: it allows you to write tests against multiple platforms (iOS, Android), using the same API. This enables a large or total amount of code reuse between iOS and Android testsuites. 我们可以从上面的介绍里获得这样的一些信息:

  • 1,appium是开源的移动端自动化测试框架;
  • 2,appium可以测试原生的、混合的、以及移动端的web项目;
  • 3,appium可以测试ios,android应用(当然了,还有firefox os);
  • 4,appium是跨平台的,可以用在osx,windows以及linux桌面系统上; appium的哲学

Android官方的uiautomator例子的实现

Android的自动化测试有很多框架,其中uiautomator是google官方提供的黑盒UI相关的自动化测试工具,case使用java写,今天实践了一下官方文档中样例程序,其中还是有一些小问题需要总结一下的。 前几天试着使用uiautoamtor在真实的项目中写了一个简单的测试 使用Uiautomator做基于UI界面的测试

使用ADT创建一个java的项目

在创建项目的时候要加上JUnit与你使用的Android platforms中对应的android.jar与uiautomator.jar

/image/2014/12/image16.png
image

被潜意识蒙蔽的理性

最近在观察一些事情,发现很多时候我们的理性往往都被潜意识所蒙蔽。

公司内网中有段时间经常有人发表一些自已的东西被“偷”的帖子,于是在人们脑海中就有一个公司里有很多小偷的意识,自已的东西一旦找不到了,首先想到的就是被别人偷走了,甚至一些人还总发表一些放在冰箱里的食物饮料等被莫名的拿走的帖子,这些人无疑首先说的就是“偷”,遇到这样的事情首先想到的也是被别人拿走了,被别人吃掉了。

七牛cdn缓存导致ajax评论失效

在使用了七牛的CDN后,发现在评论的时候会出现405错误

{“error”:“get from image source failed: E405”}

在网上查了查,这个问题出现的还挺多的,解决办法是改comments-ajax.js这个文件

1.在comments-ajax.js文件中下面这段程序的后面(参考cdn缓存导致ajax评论失效):

1
2
3
4
5
var i = 0, got = -1, len = document.getElementsByTagName('script').length;
while ( i <= len && got == -1){
    var js_url = document.getElementsByTagName('script')[i].src,
            got = js_url.indexOf('comments-ajax.js'); i++ ;
}

修改Gwibber脚本成功添加新浪微博账户(解决一直正在认证的问题)

Gwibber是linux下使用python基于 WebKit 和 GTK的客户端,其实本身功能大大陆基本上都用不了,只有一个新浪微博能用,但是里面的api认证还是用的几年前的oauth1,新浪早就将其停用了,现在 都采用的是oauth2认证,但是这个客户端还没有更新,在使用的时候会显示一直在认证页面。

其实本来也不想用它来发看微博,只是想完成认证,后面经过修改以后主界面报异常,不管了,这个客户端总之太挫了……

使用官方推荐的由@廖雪峰 写的python SDK,https://github.com/michaelliao/sinaweibopy/wiki/OAuth2-HOWTO

将python SDK中的weibo.py放到__init__.py同级目录下

java中面向对象的一点学习总结

最近开始看java的一些东西,感觉比python麻烦些,今天学习了面向对象的一些东西,觉得挺多挺复杂,这里做个知识总结

以一个简单的例子来说明java面向对象的三大特性,封装,继承,多态,有一个动物(Animal)基类,定义了run与eat方法,然后有一个猫(Cat)与狗(Dog)的子类继承了动物这个父类,子类重写(override)了父类的run与eat方法,同步又重载(overload)了run与eat方法,同时又定义了一个交配(Icopulation)的接口,让狗来implements交配接口,同时又创建一个Human类来专门implements交配接口

/image/2014/08/795ab47fjw1ejo4u6epeoj20ab083jrh_thumb.jpg
795ab47fjw1ejo4u6epeoj20ab083jrh

下面是具体的实现代码,没有什么实际的应用,只是作为学习用