大道至简,亦至繁

从什么时候,我感觉使用Linux就是个悲剧了呢?或许很早就感觉到了。

其实我很喜欢现在这样,命令行也可以让好多事情变得简单,比如,装个软件,用命令行只要打一行字母,软件就装好了,在Windows下面要去下载,然后一堆安装向导,还要时刻小心被坑。

调试手机的时候也方便了,不用安装驱动,Linux本身就是可以识别Android的,插上就有了。在Windows下面起码得下个豌豆荚什么的,点半天才能识别手机。

直到某一天,在Linux下面安装一个软件出了问题,妈呀这简直就是晴天霹雳,我准备吃午饭的啊!!翻阅大量资料,看别人的问答,花去半天时间,找到问题了,改了一下,安装好了,在Windows下还是点一阵向导,也安装好了。

再来就是某一天,这破Linux不认识我的手机了!不是可以免驱动吗?靠,去/etc/udev/rules.d/下面创建一个usb的配置文件,重启usb服务,再去.android下面修改一下SDK的识别配置,把自己手机的识别码加上去。在Windows下面还是安装了一个豌豆荚,按了一会儿搞定了。所谓大道至简,你别认真,你一认真这句简单的话解释起来比宇宙形成还复杂。

错误错误错误错误

尼玛,当今天晚上我升级了Android SDK,重新生成了Android的第三方Vendor标识文件,我手机又连不上了,当我重新添加了手机的ID之后,奇迹发生了,还是找不到。。。

2013-10-4更新:原来是adb_usb.ini里面添加手机ID的时候,忘了添加0x,即应该添加的是0x2717。之前真是没注意,就是凭记忆填了填。

Android Activity之间传递数据

Android在Activity间传递数据的方法有以下几种

###使用Intent绑定内容

###使用全局变量Application

这样无论在程序的什么地方用getApplication()方法拿到的Application对象都是MyApp的实例(准确的说是Application的实例,但明显就是一个MyApp,当然可以转成MyApp)。

如果在MyApp里面定义一些变量,再定义一些gettersetter,就可以在任何地方读取或设置这些全局变量。

####示例代码

#####AndroidManifest.xml

1
2
3
4
5
6
7
<application
android:name="org.rankun.learn_intentapplication.MyApp">
...
<activity>
...
</activity>
</application>

#####MyApp.java

1
2
3
4
public class MyApp extends Application {
public String attr;
//...
}

#####SomeActivity.java

1
2
MyApp myApp = (MyApp)getApplication();
myApp.xxx();

Read More