2010年12月4日星期六

iphone正确恢复固件(进入DFU模式)的三种方法

iphone正确恢复固件(进入DFU模式)的三种方法

第一种方法 : 正常恢复
1.将你的iPhone关机
2.同时按住开关机键和home键
3.当你看见白色的苹果logo时,请松开开关机键,并继续保持按住home键
4.开启iTunes,等待其提示你进行恢复模式后,即可按住键盘上的shift键,点击'' 恢复'' , 选择相应的固件进行恢复

第二个方法 : 黑屏恢复
1.用USB线将iPhone连接上电脑,然后你将会听见电脑已连接成功的提示声音
2.现在请先将iPhone关机,然后你将会听见电脑未连接成功的提示声音
3.请同时按住开关机键和home键,持续到第10秒的时候,请立即松开开关键,并继续保持按住home键
4.这个时候iTunes会自动启动,并提示你进行恢复模式(iPhone会一直保持黑屏状态) , 那么你就可以按住键盘上的shift键,点击 '' 恢复'', 选择相应的固件进行恢复

第三个方法 : 下载第三方软件辅助进入DFU模式,不按任何键即可进入DFU模式(不实用,就不介绍了)

2010年8月5日星期四

使用JailbreakMe越狱iPhone【4.0.0/4.0.1】-iPhone中文网-91手机娱乐门户

使用JailbreakMe越狱iPhone【4.0.0/4.0.1】-iPhone中文网-91手机娱乐门户

2010年7月5日星期一

收藏:第一个 Android 程序 — Hello World

原文出自http://www.mxjava.com/android-helloworld.html

通过《Android 开发环境的安装》我们了解了 Android 的一些基本知识,也介绍了如何安装 Android 开发环境。就从这一篇开始进入 Android 开发的学习过程。

  任何一门语言或者框架的第一课都是精典的 Hello World,我们跟随主流,从 Hello World 开始吧。

  有了 Eclipse 插件(Android ADT)创建并运行一个工程是十分容易的,只要简单的2个步骤就可以顺利完成 HelloWorld 。

1、单击菜单 File > New > Project 弹出的窗口选择创建一个新的 Android 项目。
2、并在创建 Android 项目的对话框里填写项目的详细信息,确认无误后按下 finish 按钮一个工程就被顺利的创建成功了。

创建的工程结构如下:

  简单介绍一下几个比较重要的目录。
1、src 目录用于存放代码。
2、gen 目录用于存放对应该资源文件的代码。
3、res 目录用于存放资源文件。
4、res\layout 目录用于存放布局描述文件。
5、res\values 目录用于存放常量定义文件。

  简单介绍一下几个比较重要的文件。
1、HelloWorld.java 程序代码文件,其内容与一般 Java 程序格式完全相同。

  1. package com.mxjava.android.hello;
  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. public class HelloWorld extends Activity {
  5. /** Called when the activity is first created. */
  6. @Override
  7. public void onCreate(Bundle savedInstanceState) {
  8. super.onCreate(savedInstanceState);
  9. setContentView(R.layout.main);
  10. }
  11. }

  我们看到 HelloWorld 类继承了 Activity 类,并且覆写了 onCreate() 方法。方法中利用 setContentView() 方法来设置界面的布局。这里重点说明一下该方法的参数 R.layout.main 。R.java 文件存放在 gen 目录下,layout 是该类中的静态类,它对应 res\layout 目录。常量 main 对应 main.xml 文件。所以 R.layout.main 就对应着 res\layout\main.xml 文件。若在 res\layout\ 目录下新增一 Android 配置文件,ADT 会自动在 R 中增加相对应的代码。

  main.xml 是界面布局配置文件,用于设计显示界面样式。

  1. <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent">
  2. <textview android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello">
  3. textview>linearlayout>

  布局配置中设置了一个 TextView,表示界面上显示一个文本标签,属性 android:text 是显示的内容。这里是 @string/hello 。在这里 @ 是引用标志,string 是常量配置文件 string.xml ,hello 是 string.xml 中 name=”hello” 的配置项。让我们再看看 string.xml 的配置:

  1. <resources>
  2. <string name="hello">Hello World, HelloWorld!string>
  3. <string name="app_name">HelloWorldstring>
  4. resources>

  hello 的值为 Hello World, HelloWorld!。所以文本标签的显示内容就为Hello World, HelloWorld!。

  每一个项目都包含一个 AndroidManifest.xml 配置文件,该文件配置了程序的各种设定。比如前端应用程序 Activity (Foreground Activities),后台服务(Background Services)以及间隔执行的 Activity (Intermittent Activities)。HelloWorld 类继承自 Activity ,所以它是一个前端应用程序,其配置如下:

  1. <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.mxjava.android.hello" android:versioncode="1" android:versionname="1.0">
  2. <application android:icon="@drawable/icon" android:label="@string/app_name">
  3. <activity android:name=".HelloWorld" android:label="@string/app_name">
  4. <intent-filter>
  5. <action android:name="android.intent.action.MAIN">
  6. <category android:name="android.intent.category.LAUNCHER">
  7. category>action>intent-filter>
  8. activity>
  9. application>
  10. manifest>

  application 标签设置了程序的基本信息。如:android:icon 程序的图标,android:label 程序的名称等。文件中有一个名为 HelloWorld 的 Activity,并为其设置了 Intent-filter ,action 和 category 两个标签表明了该 Activity 为程序默认要运行的 Activity(因为可以建立多个继承自 Activity 的类,每个类都要在该文件进行配置,所以为其指定默认运行的 Activity 至关重要)。

  了解了以上内容后,就可以运行我们的程序了。右键点击工程 > Run As > Android Application ,程序将启动运行。

  注意:模拟器将模拟 Android 手机启动过程,可能有点慢,请耐心等待。

  有了 ADT 我们不用编写一行代码就可以运行 HelloWorld,非常方便。不过 Activity 类的应用程序有着自己的运行方式,为了能更好的编写代码,我们必须了解其运行方式,如下:

  onCreate -> onRestore ->onStart -> onResume -> onSave -> onPause -> onStop -> onDestroy

  onCreate -> onRestore ->onStart 为应用的启动,一般 Activity 用 onCreate。当程序失去焦点或者被关闭将会触发 onPause 状态,当程序再次被唤醒,将会回到 onResume 状态。

收藏:Android 开发环境的安装

本文是为了日后学习方便做的收藏,原文作者保留一切权利。

原文出自http://www.mxjava.com/android-setup.html

Google 的产品天生就拥有着超高的关注度,很多程序员在 Android 手机还没有上市之前就开始学习。相对他们来说我的起步比较晚,今天刚刚开始,但相对于那些还没有开始学习的朋友来说,我的起步还不算太晚。

学习 Android 最主要原因当然是这几年 Android 手机的流行,让我感觉到它的未来不可限量。到目前为止,仅仅三年的时间,各大手制造厂家都陆续推出了自己的 Android 手机,也成为了各国移动通讯服务商争相合作的焦点。另外几个原因是首先它是开放性的,底层核心是 Linux 。再者 Android SDK 使用我常用的开发语言 — JAVA。

JAVA 开发第一件事永远是配置环境,采用 JAVA 作为开发言的 Android 也不例外。接下来就开始配置我们的 Android 开发环境。(本文仅针对 Android 环境进行说明,默认您的系统中已经安装了 JAVA SDK 和 Eclipse,若没有请安装。)

1、首先到官网下载安装 Android SDK。http://developer.android.com/sdk/ 可惜的是天朝河蟹了该网站(http://www.android.com是可以访问的)。为了方便,本站提供了下载。解压后运行 SDK Setup.exe ,将会运行 Android SDK and AVD Manager 下载程序。选择“Settings”,勾选“Force https:// …”如图:

切换到“Avaliable Packages”,勾选要安装的 SDK Packages 和 API(建议全部选择),按下“Installed Selected”按钮开始安装。 若列表中没有选项,请按“Refresh”按钮刷新。

2、IDE 使用 Eclipse ,所以需要安装 Eclipse ADT (Android Development Tools) Plugin,这是 Android 的开发工具。安装方法同安装普通 Eclipse 插件相同,启动 Eclipse ,选择菜单 Help – Install New Sofware ,单击 Add 按钮,在 Location 栏输入网址:http://dl-ssl.google.com/android/eclipse/ 后单击 OK 按钮。在 Install 窗口中选择刚刚输入的地址并选中 Developer Tools ,按下 Next 按钮开始安装。安装完成后,需要重新启动 Eclipse 才能使用 Android ADT 。

3、若要使用 Android SDK ,还要为其指定环境变量或在 ADT 中指定其路径。选择 Window – Preferences ,选择 Android ,单击 Browse 按钮,选择解压 Android SDK 的路径,单击 OK 按钮即可。

到此 Android 的开发环境就安装完成了。对于有 JAVA 环境配置基础的人来说,应该是很容易吧。

2010年5月26日星期三

无意发现的Google浏览器垃圾清除方法

因为最近电脑提示C盘空间不足,用了一些清理软件清理之后没有太多减少,就自己在C盘下面找有哪些东东占用空间多?
无意发现了Google浏览的安装路径竟然在“C:\Documents and Settings\Administrator\Local Settings\Application Data\Google\Chrome\”下面,而且在C:\Documents and Settings\Administrator\Local Settings\Application Data\Google\Chrome\User Data\Default\Cache下面还有一些应该是上网是留下的一些缓存文件,竟然有几百M,这些是那些清理软件扫描不到的地方,只能手动删除了。

另外在“C:\Documents and Settings\Administrator\Local Settings\Application Data\Google”文件夹下面还有Google地球,和照片管理Pasca的大量数据文件,目前正在找办法处理。

2010年4月22日星期四

Macで\(バックスラッシュ)を入力する

くま同盟コンピュータLab 2.0: Macで\(バックスラッシュ)を入力する

文字列を改行するために「¥n」と入力しても「¥n」と表示がされるだけで改行されません。
「¥」は本来は「エン」ではなく「バックスラッシュ」なのは理解しているのですがどうやって入力したらいいのやら・・・。
で、「Option」+「¥」で入力できました。
Windowsでは「エン」と「バックスラッシュ」は同じ文字の扱いですが、Jeditの環境設定に「円マーク」を「バックスラッシュ」に置き換えるとあるので、Macでは別の文字の扱いのようです。。
jedit.png

2010年3月2日星期二

转 pickle——python对象的串行化

转贴来自&刘鑫的专栏 pickle——python对象的串行化

最近感觉自己虽然玩了3年多的python,但仅仅停留在使用的阶段上,对python的很多内容还不算很了解,打算沉下心来,扎扎实实的学些东西了。
对象的串行化感觉上是很有用的(但自己很少用到),不过还是好好学习下吧。

1)相关的python模块
在python 3.0里,和python相关的模块主要有2个:_pickle,marshal.
其中_pickle是对pickle的优化,是使用C语言对底层进行了一部分的优化。
marshal是python里原生的串行化类,但是在使用上pickle更加优秀,marshal的存在主要是为了支持python的*.pyc文件。
pickle模块和marshal模块有几方面的差别:
1>pickle模块对已串行化的对象进行跟踪,因此对同一个对象的引用不需要再次串行化。marshal不这么做。
对于循环对象而言,他们包括对自己的引用,因此marshal不支持循环对象。
共享对象由于是指有多个实例指向同一个引用,pickle保存一个引用,并使得其他实例都指向该对象,来保证所有实例的一致性。
2>marshal不能用来串行化用户自定义对象和它们的实例。pickle可以串行化这些对象,但前提是类的定义是可以引入的,并且和对象串行化的类在一个模块里。
3>marshal不能跨版本,因为它主要是用来支持*.pyc文件的,解释器不需要保持对以前版本的兼容性。而pickle可以做到这一点。

2)用法
pickle.dump(obj, file[, protocol])
pickle.dumps(obj[, protocol])
pickle.load(file[, *, encoding="ASCII", errors="strict"])
pickle.loads(bytes_object[, *, encoding="ASCII", errors="strict"])

3)异常
exception pickle.PickleError 基本的Error,从Exception继承而来
exception pickle.PicklingError 当一个不支持Pickle的对象被pickle被激发
exception pickle.UnpicklingError Unpickle出错时被激发,例如数据损坏或安全问题

4)可以被pickle的对象
None,True,False
数字,复数
字符串,字符集
元组,列表,集合,字典
模块的顶层函数、内置函数、类

2010年1月12日星期二

转:wxpython 换肤

原文:http://wiki.woodpecker.org.cn/moin/flyaflya

如果只用通用控件(不用Panel),可以实现完美换肤....

对newedit进行换肤,好玩....

原理是用win32com调用ActiveSkin实现的,因为wxpython的控件是native的,加上ActiveSkin支持COM,我也是突发奇想试了一下,想不到成功了,不过ActiveSkin是商业组件,而且现在已经停了,想买都没法买了,只有用盗版,而且只能在windows下用,有一些控件也不能很好支持,问题太多,所以我一直没公开这个技术,后来我试了很多支持COM的换肤控件包,都不关用。现在有人问起这个问题,就说一下。只需要增加三行代码。 需要安装:ActiveSkin43.rar 

切换行号显示
   1 import wx, win32com.client    2 ....    3 class MyApp(wx.App):    4     def OnInit(self):    5         self.skinLib = win32com.client.Dispatch("ActiveSkin4.Skin2") #载入ActiveSkin    6         self.skinLib.LoadSkin("Paper.skn") #载入皮肤    7         frame = MyFrame(None, "Simple wxPython App")    8         self.SetTopWindow (frame)    9         self.skinLib.ApplySkin(frame.GetHandle()) #使用皮肤 

-- flyaflya [2005-08-04 09:45:16]