Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2171126
  • 博文数量: 436
  • 博客积分: 9833
  • 博客等级: 中将
  • 技术积分: 5558
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-29 10:27
文章存档

2013年(47)

2012年(79)

2011年(192)

2010年(118)

分类: 系统运维

2010-10-28 23:28:37

          王辉组——Google android深入(四)

一、           本周进度

首先,为我们代码的成功下载庆贺,这是我们开展核心内容的奠基石;

第二,解决了之前困扰我们的一个大问题——语言的问题。我们三个学C++的有了李紫璇同学下载的C++版的部分程序,会给我们省去很多关于另一种语言学习的障碍。在此,特别感谢李紫璇同学。

第三,这周大家表现都很好,积极配和组内的活动,参与讨论,互帮互助,实现了小组存在的必要性与其价值。

 

进度描述:本周我们分析了以下程序段

PhoneNumberUtils.h

PhoneNumberUtilsTest.cpp

System.cpp

 

二、           本周总结

1081000036 王辉

这周给组员们找到了Java的代码,并给大家进行了任务分配。我的主要任务是和李紫璇和笑笑进行c++的源代码的阅读,#include 以及xrange(100)等等这些都是我们没有接触过的库函数和函数。对于RangeXRange的区别 :

 Range的方法中,它会生成一个list的对象,但是在XRange中,它生成的却是一个xrange的对象,当返回的东西不是很大的时候,或者在一个循环里,基本上都是从头查到底的情况下,这两个方法的效率差不多。但是,当返回的东西很大,或者循环中常常会被Break出来的话,还是建议使用XRange,这样既省空间,又会提高效率。

以上是我这周学到的新内容,也是对自己知识层面上的扩充。虽然自己编程能力不强,但是相信这学期的代码阅读会是我的阅读代码能力提高,对于编程语言的理解更深入。

 

 

1081000044于曼

   艰巨的读代码工作开始了,刚开始接到的程序是C++类的,对于我来说有些难度,因为我学的是JAVA,但是仔细读起来又不是完全不懂,毕竟有一些C的底子。

10段程序中就开始搜索有没有我可以真正读懂的,找到一个短的就开始着手,新的问题出现了,利用Netbeans将程序导入,利用软件的步骤不会,于是就一个一个的试,结果还是以放弃告终。这个真的太需要时间了,而我们需要珍惜时间,把时间放在有用的事情上。还是找一些JAVA的程序读比较拿手,软件用起来也比较熟练,做起来也比较有自信。

在读代码的过程中,也会遇到一些比较专业的术语,但这些比较好解决,上网一搜就可以得到答案。在这过程中,最主要的是学会了许多搭平台的小技巧,对于这些开源的东西,我们应该多学习多应用,之后才会在这基础上得到自己的东西。
 
在接下来的时间里,把问题解决,更努力把任务完成。

 

1081000022李筱

这一周,本人积极完成老师布置的作业。在完成作业的过程中,遇到了许许多多的麻烦,但是遇到麻烦后我并没有放弃,而是翻阅相关书籍、查阅相关资料,努力解决困难。有些问题在书籍、资料中并不能找到完全切合的答案,我便与小组成员积极探讨问题,从而更好的解决我的疑问。不仅如此,通过小组成员的讨论,我还发现并解决了许多我没有碰到但是同样存在疑问的问题。在小组讨论完毕后,我积极总结,详细记录问题的解决方法。

 

1081000024李紫璇

本周我的任务是解读sqlite中的PhoneNumberUtils部分,由于我的c++基础不是很好,所以还是很费劲的。。。只解读了前半部分,解读结果和下次的总结一同写进总结里,困难就是c++的基础。。。。

 

1081000040肖笑

在这一周中,我的任务是解读PhoneIndex部分,这个主要是目录索引 ,虽然里面没有我没见过的库函数或函数,把每一行代码分开看都能看懂,可是奇怪的是联系在一起,我却不太清楚它的作用是什么。这让我很苦恼,能够明白他只是用了一些条件句和循环,但是他真的想做什么刚开始还是有点懵。但后来联系了一下总体,还是略微的明白了些许。下回我们组一起在讨论一下,我想应该就彻底通了~

 

1081000037王培

本周的任务主要是进行代码的阅读,由于开始着手代码的阅读会遇到好多问题,一个小的程序是有很多函数组成,其中还有好多陌生的功能,通过Netbeans开发工具进行阅读代码工作。进行DoubanQuery.java的源代码阅读中出现了类 java.net.URL的使用,继承 Query类,。public class Query extends Object构造查询对象约束。提供的 static 方法返回可用来列出和枚举 MBean 的查询表达式。每种约束构造方法仅允许使用适当的类型作为参数。接口Java.util.List 的使用。Java.util.List 所实现的接口ImageObserver, ItemSelectable, MenuContainer, Serializable, Accessible 其中还有一些语句没有弄明白,需要以后继续去学习。

 

 

 

 

三、           本周分工及下周展望

本周分工:

Java语言部分代码阅读:于曼 王培 李筱

C++语言部分代码阅读:王辉 李紫璇 王培

 

下周展望:

下周的主要任务依旧是代码阅读,一个工程中有十几个代码文件,读完的小程序代码继续读下一个,没读完的大程序的继续读。希望大家继续努力,再接再厉。

 

四、部分代码分析举例

代码分析:

package com.eoemobile.infos_assistant;//包的信息

//导入类

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import com.eoemobile.infos_assistant.util.PreferencesUtil;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.widget.AdapterView;

import android.widget.ListView;

import android.widget.SimpleAdapter;

import android.widget.AdapterView.OnItemClickListener;

 

 

//System类继承了Activity类实现了OnItemClickListener的接口

public class System extends Activity implements OnItemClickListener{

       private static final String TAG = "System";//定义final行字符串

 

       ListView itemlist = null;//生成ListView类的对象切赋值为空

       List> list;//生成一个Map类型的链表对象

 

       @Override

       public void onCreate(Bundle savedInstanceState) {//onCreate方法,需要传入一个Bundle类型的对象

              super.onCreate(savedInstanceState);//继承父类中的构造方法

              setContentView(R.layout.infos);//设置目录表的方法

              setTitle("系统信息");//设置标题

              itemlist = (ListView) findViewById(R.id.itemlist);//通过findViewById的方法返回一个ListView类型的对象

              refreshListItems();//调用本类的refreshListItems方法

       }

 

       private void refreshListItems() {//刷性列表项的方法

              list = buildListForSimpleAdapter();//调用本类的buildListForSimpleAdapter方法,并将其值赋给list对象

              SimpleAdapter notes = new SimpleAdapter(this, list, R.layout.info_row,

                            new String[] { "name", "desc" }, new int[] { R.id.name,

                                          R.id.desc });//构造一个SimpleAdapter类的对象,对象名字为notes

              itemlist.setAdapter(notes);//notes对象以参数形式传入itemlist对象的setAdapter方法

              itemlist.setOnItemClickListener(this);//itemlist对象设置setOnItemClickListener方法的监听对象为本类

              itemlist.setSelection(0);//temlist对象设置setSelection方法的参数为0

       }

      

      

              // buildListForSimpleAdapter方法返回一个List> 类型的对象

       private List> buildListForSimpleAdapter() {

 

              List> list = new ArrayList>(3);//构造一个List>类的对象,对象名字为list

              // Build a map for the attributes

              Map map = new HashMap();//构造一个Map类的对象,对象名字为map

              map = new HashMap();

              //map对象的相关方法设置

              map.put("id", PreferencesUtil.VER_INFO);

              map.put("name", "操作系统版本");

              map.put("desc", "读取/proc/version信息");

              list.add(map);//list添加map对象到链表

 

              //重置map对象

              map = new HashMap();

              //map对象的相关方法设置

              map.put("id", PreferencesUtil.SystemProperty);

             map.put("name", "系统信息");

              map.put("desc", "手机设备的系统信息.");

              // map.put("icon", R.drawable.mem);

              list.add(map);//list添加map对象到链表

              //重置map对象

              map = new HashMap();

              //map对象的相关方法设置

              map.put("id", PreferencesUtil.TEL_STATUS);

             map.put("name", "运营商信息");

              map.put("desc", "手机网络的运营商信息.");

              list.add(map);//list添加map对象到链表

 

              return list;//返回list对象

       }

 

       @Override

       //onItemClick方法

       public void onItemClick(AdapterView parent, View v, int position, long id) {

              Intent intent = new Intent();//构造一个Intent类的对象,对象名字为intent

              Log.i(TAG, "item clicked! [" + position + "]");//Log.i方法添加参数

              Bundle info = new Bundle();//构造一个Bundle类的对象,对象名字为info

              Map map = list.get(position);//list.get(position)取得的值赋值给map对象

              //info对象的方法传参

              info.putInt("id",  (Integer) map.get("id"));

              info.putString("name", (String) map.get("name"));

              info.putString("desc", (String) map.get("desc"));

              info.putInt("position", position);

              //intent对象的方法传参

              intent.putExtra("android.intent.extra.info", info);

              intent.setClass(System.this, ShowInfo.class);

              //startActivityForResult方法传参

              startActivityForResult(intent, 0);

       }

}

 

阅读(1828) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-10-30 09:51:58

是否整个都下载了?应该有好几G,下周五拷给我。xuyuanchao

chinaunix网友2010-10-29 20:26:45

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com