我们在Eclipse中经常使用Logcat窗口查看日志信息,不过其实也可以在手机上显示日志。下面的例子就是在textview中显示logcat日志。
java代码如下:
2 package LogcatTextView.com;
3
4 import java.io.BufferedReader;
5 import java.io.IOException;
6 import java.io.InputStreamReader;
7
8 import android.app.Activity;
9 import android.os.Bundle;
10 import android.widget.ScrollView;
11 import android.widget.TextView;
12
13 public class LogcatTextView extends Activity {
14 /** Called when the activity is first created. */
15 @Override
16 public void onCreate(Bundle savedInstanceState) {
17 super.onCreate(savedInstanceState);
18 setContentView(R.layout.main);
19
20 try {
21
22 Process process = Runtime.getRuntime().exec("logcat -d");
23
24 BufferedReader bufferedReader = new BufferedReader(
25
26 new InputStreamReader(process.getInputStream()));
27
28 StringBuilder log = new StringBuilder();
29
30 String line;
31
32 while ((line = bufferedReader.readLine()) != null) {
33
34 log.append(line);
35
36 }
37
38 TextView tv = (TextView) findViewById(R.id.tvLogcat);
39
40 tv.setText(log.toString());
41
42 final ScrollView scrollView = (ScrollView) findViewById(R.id.scrlLogcat);
43
44 scrollView.post(new Runnable() {
45 @Override
46 public void run() {
47 scrollView.fullScroll(ScrollView.FOCUS_DOWN);
48 }
49 });
50
51 } catch (IOException e) {
52
53 }
54 }
55 }
本方式测试环境为XCode 3.2.3 IOS4.0
本方法只能把APP放到真机中测试,不能联机调试。
APP写好了之后,关闭XCode,记的要完全关闭哦。
找到/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk/里的SDKSettings.plist.
先修改一下权限。右键Get Info,不多说了。
接着打开修改CODE_SIGNING_REQUIRED的值为NO
重新打开XCode,打开项目。
Project->Edit Project Settings->Build
Base SDK 选iPhone Device 4.0
Code Signing Identity = Don't Code Sign
Any iPhone OS Device = Don't Code Sign
然后Build->Build
应该就OK了。
接着在Groups & File 里找到Products生成的XXXX.app,直接拖到iTunes里。直接同步到iphone就OK了。
(注意:iphone要已经XXOO.还要装个AppSync的东东)。
Context有什么作用,做个简单的解释:
Context字面意思上下文,位于framework package的android.content.Context中,其实该类为LONG型,类似Win32中的Handle句柄,很多方法需要通过Context才能识别调用者的实例,比如说Toast的第一个参数就是Context,一般在Activity中我们直接用this代替,代表调用者的实例为Activity,而到了一个button的onClick(View view)等方法时,我们用this时就会报错,所以我们可能使用ActivityName.this来解决,主要原因是因为实现Context的类主要有Android特有的几个模型,Activity、Service以及BroadcastReceiver。
常规需要Context实例的方法主要有各种Service实现的类,比如说SensorManager在实例化时需要getSystemService(String)方法就必须由Context的实例执行,还有一些私有的文件系统I/O比如说openFileInput以及常用的Toast的makeText方法。
<!-- 日志内容 结束 --><!-- 日志来源 开始 --><!-- 日志来源 结束 --><!-- 日志信息 开始 -->