当前位置:文档之家› Android开发技巧汇总(1)

Android开发技巧汇总(1)

Android开发技巧汇总(1)
Android开发技巧汇总(1)

<>

目录

0. 入门实例剖析1 (2)

1.在测试时,如何实现一个提示 (8)

2.可以使用AlertDialog.Builder 才产生一个提示框. (9)

4.menu 的用法. (10)

1. 简单的代码 (10)

2. menu实现的两种方法 (10)

5.Activity 的切换 (14)

1. 代码 (14)

2. 详解: (15)

6.Android UI Layout (19)

1. AbsoluteLayout (19)

7. Tab以及HostTab操作 (20)

8. List (图片/按钮/标题/文本) (26)

LIST例一 (27)

LIST例二 (36)

LIST例三 (40)

9. 调用浏览器载入某网址 (43)

10.监控应用程序包的安装&删除 (43)

方法一: (43)

方法二: (46)

11. 使用Toast输出一个字符串 (52)

12. 把一个字符串写进文件 (52)

13. 把文件内容读出到一个字符串 (54)

14. 调用Android installer 安装和卸载程序 (55)

15. 结束某个进程 (55)

16. 设置默认来电铃声 (56)

17. 开机自启动 (57)

18. 线程与子线程 (58)

19. Service (60)

1. 什么是Service (60)

2. 如何使用Service (60)

3. Service的生命周期 (65)

附) 常用界面截图: (66)

提示1 (66)

提示2 (67)

菜单 (67)

0. 入门实例剖析1

开卷语

俗话说,“熟读唐诗三百首,不会作诗也会吟”。最近收集了很多Android的示例代码,从这些代码的阅读和实验中学习到很多知识,从而产生写这个系列的打算,目标就是一步步跟着实例进行动手实作,真正从“做”中体会和学习Android开发。

本文目标是Android自带的一个范例程序:记事本,

预备知识

搭建开发环境,尝试编写”Hello World”,了解Android的基本概念,熟悉Android的API(官方文档中都有,不赘述)。

程序截图

先来简单了解下程序运行的效果

1 2

3 4 程序入口点

类似于win32程序里的WinMain函数,Android自然也有它的程序入口点。它通过在AndroidManifest.xml文件中配置来指明,可以看到名为NotesList的activity节点下有这样一个intent-filter,其action为android.intent.action.MAIN,

Category指定为https://www.doczj.com/doc/f12864687.html,UNCHER,这就指明了这个activity是作为入口activity,系统查找到它后,就会创建这个activity实例来运行,若未发现就不启动(你可以把MAIN改名字试试)。

/>

/>

NotesList详解

就从入口点所在的activity(见图1)开始,可以看到这个activity最重要的功能就是显示日志列表。这个程序的日志都存放在Sqlite数据库中,因此需要读取出所有的日志记录并显示。

先来看两个重要的私有数据,第一个PROJECTION字段指明了“日志列表“所关注的数据库中的字段(即只需要ID和Title就可以了)。

private

static

final String[] PROJECTION =

new String[] {

Notes._ID, // 0

Notes.TITLE, // 1

};

第二个字段COLUMN_INDEX_TITLE指明title字段在数据表中的索引。

private

static

final

int COLUMN_INDEX_TITLE =

1;

然后就进入第一个调用的函数onCreate。

Intent intent = getIntent();

if (intent.getData() ==

null)

{

intent.setData(Notes.CONTENT_URI);

}

因为NotesList这个activity是系统调用的,此时的intent是不带数据和操作类型的,系统只是在其中指明了目标组件是Notelist,所以这里把”content:// com.google.provider.NotePad/notes”保存到intent里面,这个URI地址指明了数据库中的数据表名(参见以后的NotePadProvider类),也就是保存日志的数据表notes。

Cursor cursor = managedQuery(getIntent().getData(), PROJECTION, null, null, Notes.DEFAULT_SORT_ORDER);

然后调用managedQuery函数查询出所有的日志信息,这里第一个参数就是上面设置的”content:// com.google.provider.NotePad/notes”这个URI,即notes数据表。PROJECTION 字段指明了结果中所需要的字段,Notes.DEFAULT_SORT_ORDER 指明了结果的排序规则。实际上managedQuery并没有直接去查询数据库,而是通过Content Provider来完成实际的数据库操作,这样就实现了逻辑层和数据库层的分离。

SimpleCursorAdapter adapter =

new SimpleCursorAdapter(this, https://www.doczj.com/doc/f12864687.html,yout.noteslist_item, cursor,

new String[] { Notes.TITLE }, new

int[] { android.R.id.text1 });

setListAdapter(adapter);

查询出日志列表后,构造一个CursorAdapter,并将其作为List View的数据源,从而在界面上显示出日志列表。可以看到,第二个参数是https://www.doczj.com/doc/f12864687.html,yout.noteslist_item,打开对应的noteslist_item.xml文件,

android:id="@android:id/text1"

android:layout_width="fill_parent"

android:layout_height="?android:attr/listPreferredItemHeight"

android:textAppearance="?android:attr/textAppearanceLarge"

android:gravity="center_vertical"

android:paddingLeft="5dip"

android:singleLine="true"

/>

就是用来显示一条日志记录的TextView,最后两个字段指明了实际的字段映射关系,通过这个TextView来显示一条日志记录的title字段。

处理“选择日志”事件

既然有了“日志列表”,就自然要考虑如何处理某一条日志的单击事件,这通过重载onListItemClick方法来完成,

@Override

protected

void onListItemClick(ListView l, View v, int position, long id) {

Uri uri = ContentUris.withAppendedId(getIntent().getData(), id);

String action = getIntent().getAction();

if (Intent.ACTION_PICK.equals(action) || Intent.ACTION_GET_CONTENT.equals(action)) {

// The caller is waiting for us to return a note selected by

// the user. The have clicked on one, so return it now.

setResult(RESULT_OK, new Intent().setData(uri));

} else {

// Launch activity to view/edit the currently selected item

startActivity(new Intent(Intent.ACTION_EDIT, uri));

}

}

首先通过”content:// com.google.provider.NotePad/notes”和日志的id 号拼接得到选中日志的真正URI,然后创建一个新的Intent,其操作类型为Intent.ACTION_EDIT,数据域指出待编辑的日志URI(这里只分析else块)。

Intent深度剖析

那么,上面这句startActivity(new Intent(Intent.ACTION_EDIT, uri))执行后会发生什么事情呢?这时候Android系统就跳出来接管了,它会根据intent中的信息找到对应的activity,在这里找到的是NoteEditor这个activity,然后创建这个activity的实例并运行。

那么,Android又是如何找到NoteEditor这个对应的activity的呢?这就是intent发挥作用的时刻了。

new Intent(Intent.ACTION_EDIT, uri)

这里的Intent.ACTION_EDIT=”android.intent.action.EDIT”,另外通过设置断点,我们看下这里的uri值:

可以看到选中的日志条目的URI是:content://com.google.provider.NotePad/notes/1

然后我们再来看下Androidmanfest.xml,其中有这个provider

android:authorities="com.google.provider.NotePad"

/>

发现没有?它也有com.google.provider.NotePad,这个是content://com.google.provider.NotePad/notes/1的一部分,同时

android:theme="@android:style/Theme.Light"

android:label="@string/title_note"

android:screenOrientation="sensor"

android:configChanges="keyboardHidden|orientation"

>

/>

/>

/>

/>

/>

of a directory of notes. -->

/>

/>

/>

上面第一个intent-filter中有一个action 名为android.intent.action.EDIT,而前面我们创建的Intent也正好是

Intent.ACTION_EDIT=”android.intent.action.EDIT”,想必大家已经明白是怎么回事了吧。

下面就进入activity选择机制了:

系统从intent中获取道uri,得到了content://com.google.provider.NotePad/notes/1,去掉开始的content:标识,得到com.google.provider.NotePad/notes/1,然后获取前面的com.google.provider.NotePad,然后就到Androidmanfest.xml中找到authorities为com.google.provider.NotePad的provider,这个就是后面要讲的contentprovider,然后就加载这个content provider。

android:authorities="com.google.provider.NotePad"

/>

在这里是NotePadProvider,然后调用NotePadProvider的gettype函数,并把上述URI传给这个函数,函数返回URI所对应的类型(这里返回Notes.CONTENT_ITEM_TYPE,代表一条日志记录,而CONTENT_ITEM_TYPE = " vnd.android.cursor.item/vnd.google.note ")。

@Override

public String getType(Uri uri) {

switch (sUriMatcher.match(uri)) {

case NOTES:

return Notes.CONTENT_TYPE;

case NOTE_ID:

return Notes.CONTENT_ITEM_TYPE;

default:

throw

new IllegalArgumentException("Unknown URI "

+ uri);

}

}

上面的sUriMatcher.match是用来检测uri是否能够被处理,而sUriMatcher.match(uri)返回值其实是由

sUriMatcher =

new UriMatcher(UriMatcher.NO_MATCH);

sUriMatcher.addURI(NotePad.AUTHORITY, "notes", NOTES);

sUriMatcher.addURI(NotePad.AUTHORITY, "notes/#", NOTE_ID);

决定的。

然后系统使用获得的" vnd.android.cursor.item/vnd.google.note "和”android.intent.action.EDIT”到androidmanfest.xml中去找匹配的activity.

/>

/>

/>

/>

/>

正好NoteEditor这个activity的intent-filter满足上述条件,这样就找到了NoteEditor。于是系统加载这个类并实例化,运行,然后就到了NoteEditor的OnCreate函数中(见后续文章)。

小技巧

1,在命令行中使用”adb shell”命令进入系统中,然后”cd app”进入应用程序所在目录,”rm XXX”就可以删除你指定的apk,从而去掉其在系统顶层界面占据的图标,若两次”cd data”则可以进入应用程序使用的数据目录,你的数据可以保存在这里,例如Notepad就是把其数据库放在它的databases目录下,名为note_pad.db.

2,第一次启动模拟器会比较慢,但以后就别关闭模拟器了,修改代码,调试都不需要再次启动的,直接修改后run或debug就是。

1.在测试时,如何实现一个提示

可以使用

1.Toast.makeText(this, "这是一个提示", Toast.LENGTH_SHORT).show();

2.//从资源文件string.xml 里面取提示信息

3.Toast.makeText(this, getString(R.string.welcome),

Toast.LENGTH_SHORT).show();

这个提示会几秒钟后消失

2.可以使用AlertDialog.Builder 才产生一个提示框.

例如像messagebox那样的

1. new AlertDialog.Builder(this)

2. .setTitle("Android 提示")

3. .setMessage("这是一个提示,请确定")

4. .show();

带一个确定的对话框

1.new AlertDialog.Builder(this)

2. .setMessage("这是第二个提示")

3. .setPositiveButton("确定",

4. new DialogInterface.OnClickListener(){

5. public void onClick(DialogInterface dialoginterfa

ce, int i){

6. //按钮事件

7. }

8. })

9. .show();

AlertDialog.Builder 还有很多复杂的用法,有确定和取消的对话框

1.new AlertDialog.Builder(this)

2. .setTitle("提示")

3. .setMessage("确定退出?")

4. .setIcon(R.drawable.quit)

5. .setPositiveButton("确定", new DialogInterface.OnClickListener() {

6. public void onClick(DialogInterface dialog, int whichButton) {

7. setResult(RESULT_OK);//确定按钮事件

8. finish();

9. }

10. })

11. .setNegativeButton("取消

", new DialogInterface.OnClickListener() {

12. public void onClick(DialogInterface dialog, int whichButton) {

13. //取消按钮事件

14. }

15. })

16. .show();

4.m enu 的用法.

1. 简单的代码

1.public static final int ITEM_1_ID = Menu.FIRST;

2.public static final int ITEM_2_ID = Menu.FIRST + 1;

3.public static final int ITEM_3_ID = Menu.FIRST + 2;

4.

5.public boolean onCreateOptionsMenu(Menu menu) {

6. super.onCreateOptionsMenu(menu);

7.//不带图标的menu

8. menu.add(0, ITEM_1_ID, 0, "item-1");

9.//带图标的menu

10. menu.add(0, ITEM_2_ID, 1, "item-2").setIcon(R.drawable.editbills2

);

11. menu.add(0, ITEM_3_ID, 2, "item-3").setIcon(R.drawable.billsum1

);

12. return true;

13.}

14.

15.p ublic boolean onOptionsItemSelected(MenuItem item){

16. switch (item.getItemId()) {

17. case 1:

18. Toast.makeText(this, "menu1",Toast.LENGTH_SHORT).show();

19. return true;

20. case 2:

21.

22. return true;

23. case 3:

24.

25. return true;

26. }

27. return false;

28. }

2. menu实现的两种方法

大部分的应用程序都包括两种人机互动方式,一种是直接通过GUI的 Views,其可以满足大部分的交互操作。另外一种是应用Menu,当按下Menu按钮后,会弹出与当前活动状态下的应用程序相匹配的菜单。

这两种方式相比较都有各自的优势,而且可以很好的相辅相成,即便用户可以由主界面完成大部分操作,但是适当的拓展Menu功能可以更加完善应用程序,至少用户可以通过排列整齐的按钮清晰的了解当前模式下可以使用的功能。

有两种方法可以为Android APPs添加菜单功能,下边将对设置过程给出详细的介绍:

第一种方法,通过Layout来添加静态菜单元素。

一般情况下,开发者在res/Layout路径下来定义应用程序的GUI。应用Eclipse 创建一个新项目后,可以看到res/layout中存在一个预置的main.xml文件,其作为程序默认启动界面。同样,可以通过这种方式创建一个静态的Menu,创建方法参阅下边的源代码:

?View Code XML

android:id="@+id/previous"

android:title="@string/previous"

android:enabled="false"

android:icon="@android:drawable/ic_media_previous"/>

android:id="@+id/play_pause"

android:title="@string/play"

android:icon="@android:drawable/ic_media_play"/>

android:id="@+id/next"

android:title="@string/next"

android:icon="@android:drawable/ic_menu_next"/>

在Activity类中调用刚刚创建的Menu,首先将当前的Activity与指定的Menu XML相关联:

1.@Override

2.public boolean onCreateOptionsMenu(Menu menu) {

3. super.onCreateOptionsMenu(menu);

4. getMenuInflater().inflate(https://www.doczj.com/doc/f12864687.html,yout.player_menu, menu);

5. return true;

6.}

实现onOptionsItemSelected方法: (其目的是捕捉到菜单触发事件后,对具体触发的选项作出响应,实际调用的函数包含在各自的case中)

01.@Override

02.public boolean onOptionsItemSelected(MenuItem item) {

03. switch (item.getItemId()) {

04. case R.id.previous:

05. previous(); //go to previous song in the playlist

06. return true;

07. case R.id.play_pause:

08. isPlaying() ? pause() : play(); //toggle play/pause

09. return true;

10. case R.id.next:

11. next(); //go to next song in the playlist

12. return true;

13. }

14. return false; //should never happen

15.}

最后可以通过onPrepareOptionMenu方法初始化Menu Items的属性:

01.@Override

02.public boolean onPrepareOptionsMenu(Menu menu) {

03. //set play_pause menu item look

04. if(isPlaying()) {

05. menu

06. .findItem(R.id.play_pause)

07. .setTitle(R.string.pause)

08. .setIcon(android.R.drawable.ic_media_pause);

09. } else {

10. menu

11. .findItem(R.id.play_pause)

12. .setTitle(R.string.play)

13. .setIcon(android.R.drawable.ic_media_play);

14. }

15. return true;

16.}

大部分程序都通过这种方式添加Menu菜单功能,而且通过以上的步骤来看,其实现方法非常简单。

第二种方法,在Activity类中动态创建Menu。

首先需要定义Menu Item识别序号:

1.public static final MENU_PREVIOUS = 0; //no more R.ids

2.public static final MENU_PLAY_PAUSE = 1;

3.public static final MENU_NEXT = 2;

实现onCreateOptionMenu()方法:(第一种方法中已经通过xml定义了现成的Menu结构,所以不需要应用这个方法)

01.@Override

02.public boolean onCreateOptionsMenu(Menu menu) {

03. menu

04. .add(0, MENU_PREVIOUS, 0, R.string.previous)

05. .setIcon(android.R.drawable.ic_media_previous);

06. menu

07. .add(0, MENU_PLAY_PAUSE, 0, R.string.play)

08. .setIcon (android.R.drawable.ic_media_play);

09. menu

10. .add(0, MENU_NEXT, 0, R.string.next)

11. .setIcon(android.R.drawable.ic_media_next);

12. return true;

13.}

引用与第一种方法相同的方式来捕捉菜单的行为:

01.@Override

02.public boolean onOptionsItemSelected(MenuItem item) {

03. switch (item.getItemId()) {

04. case MENU_PREVIOUS:

05. previous(); //go to previous song in the playlist

06. return true;

07. case MENU_PLAY_PAUSE:

08. isPlaying() ? pause() : play(); //toggle play/pause

09. return true;

10. case MENU_NEXT:

11. next(); //go to next song in the playlist

12. return true;

13. }

14. return false; //should never happen

15.}

————

对以上两种方法的补充:

根据需要设置不同Menu Item的属性:

1.menu.findItem(R.id.next).setEnabled(false);

设置Menu Item从属关系(添加子父级别):

直接写在方法中:

1.menu

2. .addSubMenu(R.id.repeat)

3. .add(R.id.one)

4. .add(R.id.all)

5. .add(R.id.none);

直接定义在XML Layout中:

?View Code XML

————

这两种不同的方法实现的目的是一样的,而且不存在本质上的却别,具体根据实际情况(根据项目的结构需要或者团队开发标准)选择合适的方法来创建Menu。

5.Activity 的切换

1. 代码

2个Activity 的切换,没有数据传递

1.//从A到B

2.Intent intent = new Intent();

3. intent.setClass(A.this, B.class);

4. startActivity(intent);

2个Activity 之间传递数据

相关的几个函数

startActivityForResult

public final void setResult(int resultCode, String data)

回调函数

protected void onActivityResult(int requestCode, int resultCode, Intent data)

例如A到B,从B得到数据

1.//A到B

2.static final int RG_REQUEST = 0;

3.Intent intent = new Intent();

4.intent.setClass(A.this, B.class);

5.startActivityForResult(intent,RG_REQUEST);

6.

7.//在B中处理

8.Bundle bundle = new Bundle();

bundle.putString("DataKey", edittext.getText().toString());//给bundle 写入数据

Intent mIntent = new Intent();

mIntent.putExtras(bundle);

setResult(RESULT_OK, mIntent);

finish();

9.

10.//最后在A的回调函数里面接收数据

11.if (requestCode == RG_REQUEST) {

if (resultCode == RESULT_CANCELED)

setTitle("Canceled...");

else if(resultCode == RESULT_OK) {

setTitle((String)data.getCharSequenceExtra("DataKey"));

}

}

2. 详解:

一个Android应用程序很少会只有一个Activity对象,如何在多个Activity之间进行跳转,而且能够互相传值是一个很基本的要求。

在前面创建的MyApp中,我们通过点击按钮可以更新当前界面上的文本内容。现在我们想换种方式,在点击按钮后,显示一个新的屏幕,在这个屏幕上输入一段话,然后再返回到原先的界面显示刚才输入的那句话。

首先我们新建这个新屏幕的布局文件input.xml,并添加一个文本输入框和一个按钮(注意,xml元素的命名不要和其他布局文件中的定义重名,因为所有的资源都在R中进行索引,比如id,如果重名了在使用R.id.*的时候就会有问题了)。这个布局文件对应的是一个Activity,因此我们再新建一个Input类(继承自Activity)用于显示这个布局并响应事件。

然后,还有一个重要的工作,那就是在清单文件AndroidManifest.xml中告诉程序,我定义了一个新的Activity,你可以去调用它。

我们希望在以前的那个主界面上点击按钮以后可以跳转到文本输入界面,所以我们需要对按钮的onClick事件进行定义:

在这段代码里出现了一些新东西。首先是Intent,它是Android一个很重要的

类.Intent直译是“意图”,什么是意图呢?比如你想从这个Activity跳转到另外一个Activity,这就是一个意图。它不但可以连接多个Activity,还可以在它们之间传递数据。在这里,我们就是用Intent从MyApp对象跳转到了Input对象。

再看紧跟着的startActivityForResult()方法,顾名思义,它可以从一个定义好的Intent对象启动一个新的Activity,并且,这个Activity会返回执行的结果,这些内容下面马上就会提到。

好,这里我们已经可以调出新Activity了,我们看一下执行的结果:

你马上可以想到,现在需要对新的Activity(Input)进行处理了。我们在点击“确定”按钮的时候,需要获得上面EditText对象中的文本,然后返回到前一个Activity(MyApp)中去。看我们的按钮事件处理:

这里的关键是SharedPreferences对象,这是在多个Activity(同一包中)共享数据的方式,本质上它就是一个可以在包的范围内进行数据共享的文件。

我们通过一个标签“Text”获得了和文本相关的那个SharedPreferences对象(“Text”仅仅是自己定义的一个标签),然后给它赋予一个“text”对象值为当前文本框中输入的文本。设置完成以后,设置当前Activity的执行结果为RESULT_OK,再关闭当前的Activity,剩下的事情就可以回到MyApp这个主界面中去执行了。

其实剩下的事情也很简单,在MyApp这个Activity中,我们需要重写一个函数,onActivityResult()。因为我们启动Input这个Activity的时候使用的是startActivityForResult()方法,这个方法会使Input执行完以后返回给MyApp一个结果,MyApp接收到返回结果的时候会触发onActivityResult事件,对于结果的处理就在onActivityResult()中进行。同样,我们通过“Text”这个标签获得SharedPreferences 对象,再把字符串从“text”对象中取出来并显示到当前屏幕上。

另外说明一下,requestCode是用来标识请求对象,我们刚才在启动Activity的时候使用的是“startActivityForResult(intent, 0)”,这里的0就是requestCode,当然,你可以设置成任何你喜欢的值。

我们看一下执行结果:

6.Android UI Layout

1. AbsoluteLayout

在Android UI 中,最基本的构建单位(building block)是android.view.View。一个View 占据屏幕上的一个矩形区域,并负责该区域的绘画和事件处理。View 有一些子类,比如ImageView、TextView 等可分别用来显示图像、文字……View 还有一个特殊的子类ViewGroup,ViewGroup 在UI layout 中充当“容器”的角色,用以“包含”其他View 以及ViewGroup:

viewgroup.png

由于ViewGroup 是一个abstract class 无法直接实例化,所以在layout 中真正充当“容器”角色的应该是ViewGroup 的子类:AbsoluteLayout、FrameLayout、LinearLayout、RelativeLayout 等。在实际的UI 编程中,使用不同的Layout 类作为容器,对该容器中的各个子View 的排列方式有很大影响。比如,LinearLayout 中的各个子View 按照横向或者纵向线性排列;而AbsoluteLayout 中各个子View 可以指定以像素为单位的“绝对”位置。AbsoluteLayout 的这种“绝对”定位的布局方式和我们非常熟悉的Windows 编程中的SetWindowPos() 或Form1.Left = 10 的布局方式是一样的,比较简单:

现在我们新建一个Android 工程中,在其主Activity 类中添加如下三个成员:private AbsoluteLayout al;

private TextView tv;

private View v;

改写这个类的onCreate 方法如下:

public void onCreate(Bundle icicle) {

super.onCreate(icicle);

构造一个AbsoluteLayout,设置其背景色

al = new AbsoluteLayout(this);

al.setBackgroundColor(Color.YELLOW);

构造一个TextView 并设置其text 和背景色

tv = new TextView(this);

tv.setText("Android is a software stack for mobile devices that includes an operating system, middleware and key applications. ");

tv.setBackgroundColor(Color.BLUE);

用该View 在父View 中的width,height,x,y 作为参数构造一个https://www.doczj.com/doc/f12864687.html,youtParams

https://www.doczj.com/doc/f12864687.html,youtParams tvLP = new https://www.doczj.com/doc/f12864687.html,youtParams(70, 50, 10, 20);

把这个TextView 加入到AbsoluteLayout 中,并应用上一步创建的LayoutParams。

这样TextView 就会显示在我们指定的位置上了。

al.addView(tv, tvLP);

v = new View(this);

v.setBackgroundColor(Color.RED);

https://www.doczj.com/doc/f12864687.html,youtParams vLP = new https://www.doczj.com/doc/f12864687.html,youtParams(70, 50, 90, 70);

也可以先为子View 设置LayoutParams,然后再调用一个参数的ViewGroup.addView(View) 来添加。效果是一样的。

v.setLayoutParams(vLP);

al.addView(v);

设置al 为本Activity 的content

这样,在该Activity 被调用时,就会显示该AbsoluteLayout 和其子View this.setContentView(al);

}

7. Tab以及HostTab操作

Tab与TabHost

这就是Tab,而盛放Tab的容器就是TabHost

如何实现??

安卓开发环境搭建教程及个人经验

安卓入门教程及环境搭建(附笔记) ------By 仙人张 需要的软件包有三个,截止到2012年7月这些软件都是最新版本的:分别是JDK、SDK、Eclipse(版本4.2 Juno)他们的名字和大小如下 一、软件包的下载 1、JDK的下载(jdk-7u5-windows-i586) https://www.doczj.com/doc/f12864687.html,/technetwork/java/javase/downloads/index.html

2、SDK的下载(installer_r20-windows)https://www.doczj.com/doc/f12864687.html,/sdk/index.html 3、Eclipse的下载(eclipse-jee-juno-win32)https://www.doczj.com/doc/f12864687.html,/downloads/

二、软件安装 说说我的文件夹是怎么安排的,软件安装前先在自己安装软件的那个盘新建一个文件夹名字可以取为Android,然后这三个软件分别安装到里面的三个文件夹里就可以了,然后在Android文件夹里新建一个文件夹专门放自己的工程文件。 1、JDK的安装 上面下载的jdk-7u5-windows-i586是一个安装包,直接双击就可以安装了,记得路径选择Android文件夹里的Java 文件夹。 2、Eclipse的安装 上面下载的eclipse-jee-juno-win32是一个压缩包,解压后就可以直接用了,将解压后的文件夹eclipse-jee-juno-win32也放在Android文件夹下。 3、SDK的安装 上面下载的installer_r20-windows是一个安装包,将它安装到Android文件夹里的android-sdk文件夹。 装好以后像我的文件夹就是这样了

ANDROID软件开发工程师转正个人总结

个人总结 我于2012年8月13日进入公司,根据公司的需要,目前担任Android软件工程师一职,负责综合代维,考务通手机客户端的开发工作。将近3个月的时候在这个新的工作环境我收获颇深。 开始让我独立完成整个项目,这还是我的第一次,之前在公司是多人完成,过程中也遇到了许多困难,但是都一一解决了,我想这是我最宝贵的经历,通过三个月的不断学习,在项目开发中的不断锻炼以及同事、领导的帮助,我已逐渐融入这个大家庭,个人的工作技能也有了明显的提高,虽然仍有一些不足,但三个月以来我付出了不少,也收获了不少,我感觉自己成长了,也逐渐成熟了。 初到公司,加入了咨询与信息化部,加入了综合代维项目组,我也曾担心自己不知道该怎么与项目组的同事沟通,担心不知道怎么做好工作,但是项目组的前辈们都很亲切,也很耐心的教导我,解答我的疑问,以及他们团结向上的精神,让我很快的熟悉了工作,融入了项目组。 在这三个月的学习和工作中,我一直严格要求自己,遵循公司的规章制度,认真完成领导布置的每一项任务,遇到的问题虚心的向项目组的前辈们学习、请教,不断的提高、充实自己。开发过程中出现的一些差错,也有前辈们耐心的指出和指导我修改,这些经历让我不断成熟,处理问题时考虑得更全面,杜绝类似情况的发生。在此我要特地感谢部门的领导和同事们对我的指引和帮助,感谢他们对我工

作上失误的提醒和指正。 经过这三个月,我已经能独立进行开发任务,按时按质的完成分配的工作任务,当然还有许多不足,开发的经验仍有待提高,编写代码的简洁性和完整性也需要进一步增强,需要不断的继续学习以提高自己的工作能力。 总之,这三个月来我学到了很多,感悟了很多;看到公司的迅速发展,看到部门的同事越来越多,我深深地感到骄傲和自豪,也更加迫切的希望以一名正式员工的身份在这里工作,实现自己的奋斗目标,体现自己的人生价值,和公司一起成长。 我会用谦虚的态度和饱满的热情做好我的本职工作,为公司创造价值,同公司一起展望美好的未来! XX 2012年11月13 日

NE555应用电路全集Microsoft+Word+文档

NE555应用电路全集 各种应用电路555触摸定时开关

集成电路IC1是一片555定时电路,在这里接成单稳态电路。平时由于触摸片P端无感应电压,电容C1通过555第7脚放电完毕,第3脚输出为低电平,继电器KS释放,电 灯不亮。 当需要开灯时,用手触碰一下金属片P,人体感应的杂波信号电压由C2加至555的触发端,使555的输出由低变成高电平,继电器KS吸合,电灯点亮。同时,555第7脚内部截止,电源便通过R1给C1充电,这就是定时的开始。 当电容C1上电压上升至电源电压的2/3时,555第7脚道通使C1放电,使第3脚输出由高电平变回到低电平,继电器释放,电灯熄灭,定时结束。 定时长短由R1、C1决定:T1=1.1R1*C1。按图中所标数值,定时时间约为4分钟。D1 可选用1N4148或1N4001。 相片曝光定时器 附图电路是用555单稳电路制成的相片曝光定时器。用人工启动式单稳电路。 工作原理:电源接通后,定时器进入稳态。此时定时电容CT的电压为:VCT=VCC= 6V。对555这个等效触发器来讲,两个输入都是高电平,即VS=0。继电器KA不吸合,常 开点是打开的,曝光照明灯HL不亮。 按一下按钮开关SB之后,定时电容CT立即放到电压为零。于是此时555电路等效触发的输入成为:R=0、S=0,它的输出就成高电平:V0=1。继电器KA吸动,常开接点闭合,曝光照明灯点亮。按钮开关按一下后立即放开,于是电源电压就通过RT向电容CT充电,暂稳态开始。当电容CT上的电压升到2/3VCC既4伏时,定时时间已到,555等效电路触发器的输入为:R=1、S=1,于是输出又翻转成低电平:V0=0。继电器KA释放,曝光灯H L熄灭。暂稳态结束,有恢复到稳态。

基于android的游戏开发开题报告总结.doc

开题报告 (1)研究的目的和意义 Android 操作系统最初是由 Andy Rubin 制作,最初主要支持手机,在2005 年被搜索巨头 Google 收购注资,并组建开放手机联盟开发改良随后,逐渐扩展到平板电脑及 其他领域上,2008年全球第一步安卓智能手机问世,标志着安卓的重生。而在2011 年 11 月份的调查, android 智能机一跃超过苹果,以全球市场占有率76%,中国 90% 遥遥领先。在安卓手机中以三星的GALAXY III系列为领头羊,领跑安卓手机最新科技。 当人类步入 21 世纪,随着科技的日趋发展,智能手机 ,平板电脑等高端电子产品进 入了我们的日常生活,随着 3G 时代已经慢慢的融入了我们的日常生活,随着社会的进 步和科技的发展手机已经从单纯的通讯工具转变为集娱乐,学习,通讯为一体的高端电子 产品,随着诺基亚塞班系统的没落,安卓系统迎来了春天。据市场调查,智能手 机市场已经形成了二足鼎力的态势,安卓和苹果的 IOS作为领军者遥遥领先于 windows phone 系统。同时各种 android 应用程序已经有了比较明朗的发展前景,尤其以手机游 戏这个亮点受到广泛的关注和喜爱,正是由于android 拥有广大的用户群, android 手 机游戏拥有巨大的潜力,它也主宰者手机游戏的未来,此次毕业设计顺应时代发展潮 流,依托现在硬件上的优势,以 android 为平台,旨在玩家打造一款优秀的安卓小游戏, 使玩家身临其境,爱不释手。在安卓游戏的市场上,使得 android 手机游戏种类更加丰 富多彩,为安卓手机游戏的发展做出贡献。 (2)国外同类研究的概况 手机游戏种类和资源日益丰富,游戏界面越来越华丽,游戏规则日益复杂,已经 具备了很强的娱乐性和交互性的复杂形态。 2003 年 10 月,Andy Rubin 等人创建了 Android 公司,google 公司于 2005 年 8 月 17 日低调收购 android 以及其团队,Andy Rubin 成为 Google 公司 android 项目工程部

android开发试用期工作总结

android开发试用期工作总结 篇一:android软件开发工程师转正个人总结 个人总结 我于20XX年8月13日进入公司,根据公司的需要,目前担任Android软件工程师一职,负责综合代维,考务通手机客户端的开发工作。将近3个月的时候在这个新的工作环境我收获颇深。开始让我独立完成整个项目,这还是我的第一次,之前在公司是多人完成,过程中也遇到了许多困难,但是都一一解决了,我想这是我最宝贵的经历,通过三个月的不断学习,在项目开发中的不断锻炼以及同事、领导的帮助,我已逐渐融入这个大家庭,个人的工作技能也有了明显的提高,虽然仍有一些不足,但三个月以来我付出了不少,也收获了不少,我感觉自己成长了,也逐渐成熟了。 初到公司,加入了咨询与信息化部,加入了综合代维项目组,我也曾担心自己不知道该怎么与项目组的同事沟通,担心不知道怎么做好工作,但是项目组的前辈们都很亲切,也很耐心的教导我,解答我的疑问,以及他们团结向上的精神,让我很快的熟悉了工作,融入了项目组。 在这三个月的学习和工作中,我一直严格要求自己,遵循公司的规章制度,认真完成领导布置的每一项任务,遇到的问题虚心的向项目组的前辈们学习、请教,不断的提高、

充实自己。开发过程中出现的一些差错,也有前辈们耐心的指出和指导我修改,这些经历让我不断成熟,处理问题时考虑得更全面,杜绝类似情况的发生。在此我要特地感谢部门的领导和同事们对我的指引和帮助,感谢他们对我工作上失误的提醒和指正。 经过这三个月,我已经能独立进行开发任务,按时按质的完成分配的工作任务,当然还有许多不足,开发的经验仍有待提高,编写代码的简洁性和完整性也需要进一步增强,需要不断的继续学习以提高自己的工作能力。 总之,这三个月来我学到了很多,感悟了很多;看到公司的迅速发展,看到部门的同事越来越多,我深深地感到骄傲和自豪,也更加迫切的希望以一名正式员工的身份在这里工作,实现自己的奋斗目标,体现自己的人生价值,和公司一起成长。 我会用谦虚的态度和饱满的热情做好我的本职工作,为公司创造价值,同公司一起展望美好的未来! XX 20XX年11月13日 篇二:研发试用期工作总结 篇一:研发助理试用期总结 时间如白驹过隙,两个月试用期即将结束,在同事们的悉心关怀和指导下,加上自己不懈努力,各方面取得了一定

Android经典项目源码学习包括工具、安全、影音等多个领域的项目

Android经典项目源码学习包括工具、安全、影音等多个领域的项目│├─地图相关││ bikeroute自行车导航源码、zip ││ Gps Test 源码、zip ││ GpsTracker源码、zip ││北京公交线路查询(离线)、zip ││百度地图API-定位周边搜索POI源码、zip ││百度地图API源码、zip ││获取Gps信息的程序源码、zip │││├─学习相关││365MobileSecretary v 1、0、zip ││365MobileSecretary、zip ││9妹工具(9Patch)、zip ││ AidlDemo(简单aidl的例子)、zip ││ aidl跨进程调用、zip ││alertDialog对话框、zip ││ Angle v 1、zip ││ Angle、zip ││ animation图片移动效果、zip ││BOOK看遍所有UI控件、zip ││ BrewClock闹钟、zip ││ broadcast电池电量显示源码、zip ││ BTWebViewSelection(webview选择文字)、zip ││ DocumentViewer(PDF阅读器)、zip ││ douBanList(滚动到底部加载新的,软缓存,懒加载)、zip ││draw自动绘画功能、zip ││expandableList扩展列表、zip ││ Facebook客户端、zip ││ Gamex木马分析报告、zip ││ GetSDTree(简单SD卡文件浏览器)、zip ││ Http 简单应用源码、zip ││ iconFile带图标的文件资源管理器、zip ││Intent切换、zip ││ jamendo-开源在线音乐、zip ││ listView学习源码、zip ││ menu单选菜单、zip ││ MyAppWeixin(仿微信界面)、zip ││ MyBrowser(简单网页浏览器)、zip ││ oschina--app(开源中国)、zip ││ PdfViewerPDF查看器、zip ││ Player(仿酷狗播放器)、zip ││progress前台运算、zip ││ ReadXmlByPull 使用Pull解析Xml文件、zip ││ ReadXmlByPull、zip ││ sharedPref学习源码、zip ││ sql练习合集、zip ││ style简单学习应用示例、zip ││ SurfaceView添加组件view 不被组件覆盖、zip ││ talk_xx_11_17 【Sundy系列】 全看懂了-加两年经验-语音朗读-语音识别-语音、zip ││ textView应

学习android的心得体会

学习android的心得体会 【篇一:android实训心得体会】 项目总结 时间过的好快,为期三个月的实训生活即将结束了,每一次的实训我们都受益匪浅,我 们学到的不仅仅是课内还有课外,实训让我们的课内知识得到了巩固,专业知识、编程水平 都有很大的提高,我们非常感谢这次实训。刚开始二周的高强度的课程安排让我们受益匪浅;接下来的项目实训又让我们可以巩固 了课程。这让我觉得实习生活充实而有意义。乐淘购物项目和android优化大师,我更好的学习了ui的设计,如何使界面漂亮,美观, 巩固了listview,gridview,的使用,学会了动画进入界面的,和会移动的画廊等等。在这 两个项目中,除了让我明白工作中需要能力,素质,知识之外,更重要的是学会了如何去完 成一个任务,懂得了享受工作。当遇到问题,冷静,想办法一点一点的排除障碍,到最后获 取成功,一种自信心由然而生,这就是工作的乐趣。有时候也需要虚心请教,从别人的身上 真得能学习到不自己没有的东西,每一次的挫折只能使我更接近成功。音乐播放器项目,我们是七个人组成小组完成的,由组长带领我们,分配任务,每个人, 都发挥自己的长处,更好地去完成任务。对于团队开发来说,团结一致使我深有体会。团队 的合作注重沟通和信任,不能不屑于做小事,永远都要保持亲和诚信,把专业理论运用到具 体实践中,不仅加深我对理论的掌握和运用,还让我拥有了一次又一次难忘的开发经历,这是也是实训最大的收获。这次实训对于我以后学习、找工作也真是受益菲浅,在这3个月中让我初步从理性回到 感性的重新认识,也让我初步的认识这个社会,对于以后做人所应把握的方向也有所启发!

《Android项目开发实训》项目总结报告

Android项目开发 实训报告 姓名: 赵炳 琪 学号: 140840131 专业: 软件技 术 项目名称: Android手机记账本 指导教 师:陈雪莲

实训日期:2016年10月30日至2016 年12月30日 2016年12月 25日

Android项目开发实训记录单

目录 第一章概述 (1) 第二章需求分析 (2) 2.1 项目背景 (2) 2.2 项目需求 (2) 第三章相关技术 (4) 3.1 Adnroid平台介绍 (4) 3.2 关键技术研究 (6) 第四章概要设计 (9) 4.1 系统体系结构 (9) 4.2 用户界面设计 (14) 4.2.1计算器界面 (14) 4.2.2小数点运算界面 (14) 4.2.3负数运算界面 (15) 4.2.4开方运算界面 (15) 第五章详细设计 (16) 5.1数据输入模块 (16) 5.2数据显示模块 (16) 5.3 数据计算功能模块 (16) 第六章结论 (26)

第一章概述 随着社会的发展,经济水平的提高,手机越来越普及。同时伴随着已送慧联网技术的发展,手机的功能也变得越来越丰富。从原来只具有简单通信功能的非智能手机到现在具有手机操作系统,除通话功能以外,还集上网、聊天、炒股、收发邮件等功能于一身的智能手机系统。 由Google公式牵头众多实力雄厚的软硬件厂商加盟商成立了OMS联盟,病退出的Android平台手机系统,作为时代的新生儿,Android手机操作平台有着得天独厚的优势广阔的发展前景。 而计算器作为现在人们日常生活中常用的一种工具也已经可以说是人们日常生活中必不可少的工具了。计算器的发展同样经历了漫长的过程,凝聚无数仙人的智慧,甚至连计算机的发展都可以说是源于计算器的发展。本程序正式基于Android平台开发的计算器。 本课题要求:设计一个基于Android的计算器的软件。实现的功能有: 具有基本的加、减、乘、除功能,能够判断用户输入运算数是否正确,支持小数运算,具有退格功能,能够删除最后一个输入,具有清除功能,即“C”。因为打开(ON)、关闭(OFF)屏幕按键的功能 需重点研究的关键问题:计算器的运算和显示问题。

API 579中文版

第一章前言 1.1前言 ASME和API编制的有关承压设备的规程和标准规范了新压力容器、管道系统和储罐的设计、制造、监督和检测。这些规程并不是阐述设备使用中的老化问题,也不是阐述由于设备老化或检测时发现的源自最初制造过程带来的缺陷。FFS合乎适用性评价是一种定量的工程评价方法,可用于论证包含缺陷或损害的在役部件的结构完整性。本推荐规程为FFS评价方法提供指导特别是准备用于精练或石油化工企业的设备。本推荐规程的指导方针可用于对已经检测出含有缺陷的承压设备做出继续运行、修理、更换的决定以保证设备安全运行。 1.2范围 1.2.1本推荐规程的方法和步骤目的是补充和扩充API510、API570和API653的要求。 1.2.2本推荐规程的评价程序可用于合乎适用性评定或重新评估按以下标准设计和制造的设备: ·ASME B&PV Code, Section VIII, Division 1 ·ASME B&PV Code, Section VIII, Division 2 ·ASME B&PV Code, Section 1 ·ASME B31.3 Piping Code ·ASME B31.1 Piping Code ·API 650 ·API 620 1.2.3本规程的评价程序也可用于按照其它组织的规范或标准建设的压力容器设备包括国际或公司内部标准。本推荐规程有着广泛的应用因为这些评价方法是建立在公认的应力法、非破裂缺陷的塑性破坏荷载和FAD策略基础上(见第二章 2.4.2)。 1.2.3.1当本推荐规程的程序用于没有按照1.2.2节所列规范制造的压力容器时,建议用户首先要看一下附录H的讨论。附录H所提供的信息连同设计规范差异的知识应该使用户能够确定满足其他设计规范的设备的FFS评定的系数比例或限值,当评估其它标准或规范时应当考虑以下ASME和API

Android游戏开发(快速入门必备)

Android游戏开发之旅一长按Button原理 今天Android123开始新的Android游戏开发之旅系列,主要从控制方法(按键、轨迹球、触屏、重力感应、摄像头、话筒气流、光线亮度)、图形View(高效绘图技术如双缓冲)、音效(游戏音乐)以及最后的OpenGL ES(Java层)和NDK的OpenGL和J2ME游戏移植到Android方法,当然还有一些游戏实现惯用方法,比如地图编辑器,在Android OpenGL如何使用MD2文件,个部分讲述下Android游戏开发的过程最终实现一个比较完整的游戏引擎。相信大家都清楚Android Market下载量比较好的都是游戏,未来手机网游的发展相信Android使用的Java在这方面有比iPhone有更低的入门门槛。 对于很多游戏使用屏幕控制一般需要考虑长按事件,比如在动作类的游戏中需要长按发射武器,结合Android Button模型,我们实现一个带图片的Button的长按,为了更清晰的显示原理,Android开发网这里使用ImageButton作为基类 public class RepeatingImageButton extends ImageButton { private long mStartTime; //记录长按开始 private int mRepeatCount; //重复次数计数 private RepeatListener mListener; private long mInterval = 500; //Timer触发间隔,即每0.5秒算一次按下 public RepeatingImageButton(Context context) { this(context, null); } public RepeatingImageButton(Context context, AttributeSet attrs) { this(context, attrs, android.R.attr.imageButtonStyle); } public RepeatingImageButton(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); setFocusable(true); //允许获得焦点 setLongClickable(true); //启用长按事件 } public void setRepeatListener(RepeatListener l, long interval) { //实现重复按下事件listener mListener = l; mInterval = interval; } @Override public boolean performLongClick() { mStartTime = SystemClock.elapsedRealtime(); mRepeatCount = 0;

安卓系统操作合集

安卓系统操作合集

使用技巧锦集之安卓系统(收集整理) 一,快速查看手机充电情况 方法1:通过待机屏幕查看,众所周知Android系统设计了自动锁屏功能,当手机处于一段时间不使用的情况下就会自动熄灭背景灯,如果需要激活的话就需要按下手机的Menu键两次,但是当按下第一次之后会显示出待机界面,里面就会显示目前的手机电池充电情况。 方法2:在Android系统中的About Phone选项中的“Status”选项,里面能够看到Battery Level的选项,这就是当前手机的充电情况显示。 方法3:通过第三方软件查看,由于Android系统中并没有专门的这类软件,所以如果想要详细的查看目前手机充电情况的话就是用一款第三方的电池查看软件吧 二,教你设置输入密码不可见 用过某些需要登录的应用程序的朋友相信都知道在输入账户密码默认情况下是显示出来已经输入的密码,为了安全起见都不想旁边的人看到自己的密码,那么怎样才能设置Android手机不可见已经输入的密码呢?教你设置输入密码不显示。 关于密码的设置当然是在Securitylocetion中了,所以我们先在主屏界面上按下Menu菜单键,在弹出的进阶菜单中选择最后一项“Settings”; 进入设置菜单后将滚动条向下滑动,找到“Securitylocetion”的分类,点击进入; 在安全性和位置分类菜单中找到Passwords分类,其中将“Visible passwords”选项后面的勾去掉即可。 三,Market下载失败解决办法 其实这样的问题在国外根本不存在,仅仅是在国内的朋友才会遇到这样的问题,这是因为貌似是国内将Google服务器屏蔽掉了,因此我们如果需要诸如YOUTUBE这样的服务时,只能“翻*墙”了。 设置静态IP的方法就能为各位网友解忧,该方法是Android123独创,配合了Google最新的服务,经过数十台Android手机均可以正常下载程序。 首先我们依次点选“Settings——wireless contrals——WIFI Settings——Menu——Adbanced”勾选USE Static IP这一项,并将DNS1设置为8.8.8.8,DNS2设置为8.8.4.4即可。 没错,上面讲到的方法正是利用了Google最新的DNS服务,填入之后其他不需要设置即可。 四,Droid铃声设置另类方法 我们在其他Android手机设置铃声的时候,一般采用的方法都是使用第三方软件(如Tong Picker)设置,这样的设置方法有些繁琐,必须在相应的设置箱内启动该程序才能设置,Android123这次为你带来了使用自带铃声库的选择的方法。 这个方法简单的来讲就是在内置的TF卡中设置相对应的文件夹,该文件夹必须按照规定的名称设置,否则系统不会认出来。我们可以通过这样的设置来电铃声、短信铃声、闹铃和系统提示音的声音。 首先我们要在TF卡根目录中设立一个名为media的文件夹,在该文件夹中设置audio的文件夹,再在

Android开发入门书籍推荐

Android开发入门书籍推荐 Android编程入门教程andbook andbook是我看到的最简单但最好的Android程序开发入门书籍,内容仅有60多页,图文并茂,如果你从来没有接触过Android开发,也完全可以通过阅读此书了解程序开发过程,甚至对APK程序的基本原理和Android UI界面开发有个清晰的认识,相信你花上几个小时读过后,一定会跃跃欲试加入Android开发行列,心动吧,那就行动吧。。。 Android应用开发详解 Android应用开发详解是一本Android应用开发书籍,既适合Android初学者,也适合具备了一定Android开发经验但需要开发案例的高级读者。该书分为三个部分,共18章,由浅入深地详细介绍了Android的每个开发细节。该书基础翔实,实例丰富,案例真实。从基础到案例覆盖了Android应用开发的三大领域:基础应用、网络应用和游戏应用。读者所需要学习的,正是该书描述的。

深入浅出Android–Google手持设备应用程序设计 入门书籍,作者写的很不错,可以在阅读SDK的同时阅读这本书,中间的一些使用介绍的非常清楚,最重要的是中文版的 Google Android应用框架原理与程式设计36技 最早介绍Android的中文书籍,台湾人写的繁体版的,看得有些影响,不过还是值得耐心阅读的 Android A Programmer’s Guide

多个专家写的介绍Android的书籍,内容写的很不错,Ask the Expert部分针对一些问题作了详细的说明 Android Essentials 对Android介绍的比较全面,从安装到开发,应该有新版本了。 Google Android SDK开发范例大全(第2版)

Android程序员转正工作总结

Android程序员转正工作总结 Android程序员转正工作总结 我于xxxx年9月11日成为本公司技术部的一名.net程序员,三个月的试用期转眼就过去了。这段我人生中弥足珍贵的经历,给我留下了精彩而美好的回忆。在这段时间里您们给予了我足够的关怀、支持和帮助,让我充分感受到了领导们海纳百川的胸襟,在对您们肃然起敬的同时,也为我有机会成为影响力在线的一员而惊喜万分。 这段时间,在领导和同事们的关怀和指导下,我通过不懈努力,各方面均取得一定的进步,现将我的工作情况做如下汇报: 一、通过理论学习和日常工作积累经验我的各方面有了很大的进步。 刚到公司不久,我便开始负责.NET方面的网站开发和广告平台开发和维护,刚开始的时候对我来说确实压力很大,因为各方面都还不熟悉,而且与之前的公司相比,节奏也有点快,不过我慢慢的习惯了环境,和同事相处的比较融洽,领导对我也比较关心,在公司里工作就像是在一个幸福的大家庭里一样,我很快喜欢上了这里。 我到公司不久,第一个项目是xxx公司网站,做这个项目的时候我遇到了几个问题,我在以前公司做的时候没有在这么短的时候完成一个项目的,在效率上提高了我的能力。做这个项目的时候我也遇到了许多以前没有遇到过的问题,

我请教同事和朋友,还有借助网络一一解决了难题。 之后,我将B2B广告招商平台进行了改版,开发了xxx 智能建站广告平台以及以后网站的维护工作。 接下来,我又做了一个比较棘手的项目xxx在线咨询系统。为什么说棘手呢,因为我以前没有做过这方面的项目,而且我问遍了所有认识的朋友,搜遍了网络也没有找到如何解决的方法,之后我翻书籍,接着搜索网络。功夫不负有心人,终于我找到一个聊天室的小例子,但是功能差的太远,于是我把这个示例一点点的研究,从一点也不懂到后来慢慢看懂,从对AJAX技术一无所知到基本熟练运用。接下来我就开始自己开发,到最后终于把它开发了出来,虽然不是很完美,功能不是很强大,但是它是我辛苦的劳动结晶,我相信以后会把它开发的更强大,更完美。 二、明确岗位职能,认识个人技术能力不足。 经过三个多月的工作,虽然完成了一些项目的开发,我的技能也提高了很多,但是感觉我的技术还有待提高,所以我会在以后的工作中更加努力,努力提高自己的技术和各种不足,努力使自己成为一名称职的职员。 三、提出自己努力计划 1、学无止镜,时代的发展瞬息万变,各种学科知识日新月异。我将坚持不懈地努力学习各种技术知识,并用于指导实践。 2、业精于勤而荒于嬉,在以后的工作中不断学习知识,通过多看、多学、多练来不断的提高自己的各项技能。

android开发试用期工作总结

android开发试用期工作总结篇一:android软件开发工程师转正个人总结 个人总结 我于XX年8月13日进入公司,根据公司的需要,目前担任Android软件工程师一职,负责综合代维,考务通手机客户端的开发工作。将近3个月的时候在这个新的工作环境我收获颇深。开始让我独立完成整个项目,这还是我的第一次,之前在公司是多人完成,过程中也遇到了许多困难,但是都一一解决了,我想这是我最宝贵的经历,通过三个月的不断学习,在项目开发中的不断锻炼以及同事、领导的帮助,我已逐渐融入这个大家庭,个人的工作技能也有了明显的提高,虽然仍有一些不足,但三个月以来我付出了不少,也收获了不少,我感觉自己成长了,也逐渐成熟了。 初到公司,加入了咨询与信息化部,加入了综合代维项目组,我也曾担心自己不知道该怎么与项目组的同事沟通,担心不知道怎么做好工作,但是项目组的前辈们都很亲切,也很耐心的教导我,解答我的疑问,以及他们团结向上的精神,让我很快的熟悉了工作,融入了项目组。 在这三个月的学习和工作中,我一直严格要求自己,遵循公司的规章制度,认真完成领导布置的每一项任务,遇到

的问题虚心的向项目组的前辈们学习、请教,不断的提高、充实自己。开发过程中出现的一些差错,也有前辈们耐心的指出和指导我修改,这些经历让我不断成熟,处理问题时考虑得更全面,杜绝类似情况的发生。在此我要特地感谢部门的领导和同事们对我的指引和帮助,感谢他们对我工作上失误的提醒和指正。 经过这三个月,我已经能独立进行开发任务,按时按质的完成分配的工作任务,当然还有许多不足,开发的经验仍有待提高,编写代码的简洁性和完整性也需要进一步增强,需要不断的继续学习以提高自己的工作能力。 总之,这三个月来我学到了很多,感悟了很多;看到公司的迅速发展,看到部门的同事越来越多,我深深地感到骄傲和自豪,也更加迫切的希望以一名正式员工的身份在这里工作,实现自己的奋斗目标,体现自己的人生价值,和公司一起成长。 我会用谦虚的态度和饱满的热情做好我的本职工作,为公司创造价值,同公司一起展望美好的未来! XX XX年11月13日 篇二:软件开发,试用期工作总结

API-5LD中文版

抗腐蚀合金复合钢管或衬管规范 API 5LD规范 第二版1998年7月 生效日期:1998年12月31日

特别说明 API出版物仅对普遍性问题做出了规定。对一些特殊情况,应查阅联邦、州和地方的有关法规。 API不为供应商、制造商和雇主承担其雇员在健康、安全风险及预防措施进行教育、培训和装备等方面的义务。亦不承担他们因违反联邦、州和地方法律而应负的责任。 有关健康、安全风险及预防措施方面的详细资料或情况可向雇主、供应商或制造商索取,或从材料的安全数据表处得到。 API出版物不能以任何方式解释为授予任何人权利不制造、销售或使用属于专利证书所涉及的方法、设备或产品。同样不能解释为保证任何人因侵犯专利权而不承担责任。 一般情况下,API标准每5年至少进行一次复审、修改、重新确认或予以撤销。有时审定周期会延长,延长期不超过两年。所以,除已授权再版延期外,作为现行的API标准自出版之日起,5年后不再有效。可向API勘探开发部[电话:(202)6828000]了解本出版物情况。API每年颁布一次出版物和资料目录,每季度订正一次变动情况,API地址位于:American Petroleum Institute,1220,L Street,N.W.Washington,D.C.20005。 本文件是在保证获得适当通知和参与开发工作的基础上,根据API标准化程序制定的,称之为API标准。涉及到本标准内容的解释和本标准制定程序的问题,请直接致函美国石油学会勘探开发部部长。地址:American Petroleum Institute,1220,L Street,N.W.Washington,D.C.20005。要求复制或翻译本资料全文或任一部分也可致函商务部长。 API标准的出版便于已被证实的安全可靠的技术工艺及具体做法的推广应用。考虑到这些标准的使用时间和地点,这些标准无意排除对采用可靠技术方法的需求。API标准的制定和出版无意以任何方式禁止任何人采用其它标准。 按照API标准中的标志要求,为其设备、原料做标志的任何制造厂,应对其所采用标准的所有要求负责。美国石油学会不声明、担保或确认该产品均确实符合相应的API标准。

安卓(Android)游戏以及手机游戏开发的详细步骤

安卓(Android)游戏以及手机游戏开发的详细流程【精华版】 >>首先说游戏设计部门 通常这是如下职位:游戏设计主负责(也有称主策划) 执行游戏设计师(称执行策划):分剧情策划,数据策划,也有不分的,大家一起提高。辅助员(称辅助策划):做一些比较简单的表据维护,资料收集。 工作职责: 游戏设计主负责人:主要负责游戏设计的整体把握、给大家安排工作,审核工作,提高部门人员士气。, 剧情策划一般负责背景,任务等等故事性比较强的,要求文笔要好 数据策划再细分,为规则和数据平衡,包括规则的描述,公式确定,数据表设定等等。 辅助员,主要是收集资料,维护表格等等,比较不涉及核心的工作。 *注:有一些公司或者团队,在策划岗位,还有新的岗位,如: 表现策划:主要负责特效、动作、音效收集并提需求,部分如音效部分亦有策划来完成。资源策划:主要负责UI设计,模型相关配置,资源管理等等。

>>下面是程序部门 主程序与主设计师,是对游戏引擎最了解的人,以主程序为最强。主程的主要工作,安排程序部门工作,定游戏的数据结构,定一些主要方案的完成方法。 一般程序员,分服务器端与客户端、服务器端程序,对于数据库结构,数据传输、通讯方式等等。客户端程序,对图像及优化有研究的会易受重用。 >>美术部门 主美负责整体美术风格的把握 原画绘制原画交于3D 2D负责贴图,游戏界面等的制作 3D负责3D建模,动作等方面工作

>>脚本与编辑器 在具体游戏实现时,越来越多的公司不会说把游戏中的数据写在C++里,而是用“脚本与数据库”的方式。 C++的作用是用来解释脚本和调用数据库的 在脚本中,写上, if { player hp >=30%hpmax add hp=hpmax } 这里的东西是写在脚本里的,C++就会解释,player、hp、hpmax是什么,hp、hpmax 对应数据库是什么列主要的游戏内核是写在C里的,脚本用来实现游戏具体的一些东西。如每个场景、每个NPC、每个道具都有可能有个脚本文件制定命令及数据一般由主程与主设计师一起来做,具体写脚本,一般为游戏设计部门按规范做这个工作。 编辑器:是高于脚本的一个给游戏设计部门或是美术部门用的工作工具优点是使用简单,界面化的东西,可以自动生成脚本。 缺点是,把一些比较活的东西,写死到工具中了,将来要加功能改结构很麻烦 这些都是程序部门的工作 另外,在程序部门中主要交流就是服务器端与客户端的。这实际就是说,一个游戏主体置放与传输的问题。

android项目实训心得体会

android项目实训心得体会 时间总是在不经意间悄然离去,在这短短的10天实训里,让我学会了很多课堂中学不到的东西。虽然只有10天,但让我感觉到无比的充实,让我懂得了学习的意义,时间的宝贵,认真负责的生活态度。明白了做一件事不肯能是一帆风顺,没有困难就没有进步,勇敢和坚持将会带领我们走向成功的驿站。也许这只是一次很小的成功,也会让我感到欣慰,因为我成功了。简单的去做好一件小事,铸就未来巨大的成功。 在这次实训中和队友一起完成一个项目,从开始的无从下手,到初见雏形,再到基本完善。这一幕幕的画面,让人无不对自己所做的标示认可与自豪。在那一行行代码间,流露出来的不只是大家对它付出的汗水,还有那份执着的心。 那天,我们吃着泡面坐着火车和地铁以及公交,不远千万厘米来到这环境清幽,绿化十足的圣地。实训基地虽有些简单,但宽敞明亮的场所让我们不由喜欢。在实训中,回味了曾经的对安卓的“味道”,又对新配方得产生了兴趣。安卓这道菜,想想都醉了。这次实训项目我们做的是个关于点餐类的APP。起初,强大的功能让我们这群菜鸟无从下嘴。但在我们这群崛起的码农面前,这次都不是问题。经过我们七嘴八舌的商讨下,最终确立了需求。需求就像我们人生的航标一样,有了它,我们的开发才有方向,不然都是无用的。每天我们制定开发计划,一小步一小步的走,一行一行慢慢的写。看着一个个小小功能的实现与完善,我们都对他竖起大拇指。

相信队友,这是我在此次实训中悟出来的一点体会。也许他平 日里不怎么优秀;也许他对开发不怎么会;也许他有一些懒惰。但我们都要相信他可以的。作为团队开发类项目,我们不能一个人什么都做完,这样其他人体会不到团队价值,这不利于项目的团队开发。我们要让每个人都有事做,并且要做好。 在这次实训中,我主要学到很多关于安卓界面布局的一些基础 知识。还有关于选项卡以及适配器和SQLite的一些简单操作。在此 次实训中,最主要的是让我的懂得了学习的意义和态度。当自己全身心投入代码的世界中时,时间似乎是静止的。当老师笑着说:“吃饭了…..”。才发现一上午就没了。这种忘我的学习态度,让人倍感兴奋。 此次实训,让我受益匪浅。在今后的工作和学习中用积极主动 的态度去对待,那将是一件美妙的事情。做一个迎难而上的自己,不断完善自己,突破自己。最后感谢在这次实训中无私的照顾我们的老师们,谢谢你们。 时间飞快,转眼毕设实训已经结束,我们也完成了所选的项目 任务。从实训开始到现在,经历了三个多月的时间,在这段时间里,我们着手安卓应用程序开发,刚开始接触Android感觉到它很有意思,在界面开发上和web也可以形成了相通的架构,更加方便,视觉上也是非常的酷,在前期我通过的大量的Android SDK开发范例大全中的例子以及Android提供的APIDEMOS进行学习,尽管例子之间的连接 比较零散,不过通过这些例子的学习我可以学习到了很多和以前java

API标准的中文对照表

API标准的中文对照表: 中文版标准目录 API RP 1110-1997 液体石油管道压力试验 API RP 1117-1996(R2002)运行中管道的移动(下沉) API RP 11AR-2000 地下泵的维护和使用推荐作法 API RP 11V7-1999 气举阀的修理、试验和鉴定推荐作法 API RP 1631-2001 地下储油罐内衬里与定期检验 API RP 2009-2002 石油和石油化工安全焊接、切削和热加工作法 API RP 2015-2001 安全入口与清洁石油储罐的要求 API RP 2027-2002 常压储罐喷砂在使用烃类时着火的危险 API RP 2028-2002 运输管道系统的火焰消除器 API RP 2210-2000 石油储罐通风处的火焰消除器 API RP 2510-2001 液化石油气设施的设计与施工 API RP 51-2001 陆上石油天然气生产保护环境的作法 API RP 572-2001 压力容器检验 API RP 591-1998 炼油阀门的用户验收 API RP 5A3-2003(ISO13678:2000)套管、油管和管线管的螺纹脂推荐方法API RP 5B1-1999 套管、油管和管线管螺纹测量和检验 API RP 5C1-1999 推荐采用的套管、油管的维护和使用方法 API RP 8B-2002 提升设备的检查、保养、修理及大修的推荐作法 API RP 9B-2002 油田钢丝绳的应用、保养和使用的推荐方法 API Spec 10D-2002 弓簧套管扶正器规范 API Spec 11AX-2001地下杆式抽油泵及其配件的技术规范(含2002勘误) API Spec 11B-1998 抽油杆规范 API Spec 11E-1994 (R2000)抽油机技术规范 API Spec 11V1-1995(R2000)气举阀、孔板、回流阀和隔板阀规范 API Spec 12B-1995(R2000)螺栓连接储油罐规范 API Spec 12D-1994(R2000)油田现场焊接储油罐规范 API Spec 12F-1994(R2000)车间焊接的生产液体储罐技术规范 API Spec 12GDU-1990(R1999)二醇型天然气脱水装置规范 API Spec 14A-2000(ISO 10432)井下安全阀设备规范 API Spec 2B-2001 结构钢管制造技术规范 API Spec 2C-2004 海上平台起重机规范 API Spec 2F-1997系泊锚链规范 API Spec 2H-1999海洋平台管接头用碳锰钢板规范 API Spec 2MT1-2001 用于近海结构件改善韧性的碳锰钢板规范 API Spec 2Y-1999 海上结构用调质钢板规范 API Spec 4F-1995 (R2001) 钻井和修井井架、底座规范 API Spec 4G-2004 钻井和修井、底座的检查、维护、修理与使用 API Spec 576-2000 泄压装置的检验 API Spec 5B-1996 套管、油管和管线管螺纹的加工、测量和检验(美制单位)(含98勘误) API Spec 5CT-2001(ISO 11960-2001) 套管和油管规范

Android系统通用技巧合集包括通过电脑USB上网

HTC-Desire G7通过USB共享PC网络 测试了这篇文章的方法,比较离奇的是添加网关的那一幕,大家可以用busybox route试下是不是也是192.168.42.0段的目的IP。所以,可以手动将虚拟的网卡设置为文中的IP。至于DNS,如果没有经过路由,要填写真实的路由,最后唠叨一句,通过USB共享网络后,手机无法进入调试模式,也无法连接91手机助手了。 其实该方法是通用的,很多Android的手机都能支持的,具体老版本的Android 是否支持我就不清楚了,我没有机器测试,但至少2.1、2.2的固件是没问题的。下面看图文教程: 1、用数据线连接好USB和PC,先择“仅充电”

2、进入 设置->无线和网络->移动网络设置->接入点名称,新建一个接入点, 名称为USB网络(其实可以为任意),接入点名称为usb(只要不是可以正常上网的接入点名称都是可以的)然后保存返回,并启用刚刚建立的接入点 注:其实这一步不是必须的,你可以先用正确的APN连接移动网络或用wifi连接网络也是可以的 3、进入设置->无线和网络,点击“移动网络”进行连接,这个时候可以看到最底下的USB 绑定已经从灰色变成亮的可点的了。 注:一、如果刚刚跳过了第2步,这一步也可以跳过

二、其实在第1步的时候就可以选择USB绑定了(如果你已经连接的移动网络或者wifi),这样就可以跳过2和3了 三、正常情况下,连接移动网络后,过一会系统会提示“接入点名称设置不正确,连接失败”,不用理会 4、点击USB绑定,系统会多出来一张虚拟网卡,并提示安装驱动程序。(刷过机的应该都有这个驱动) 驱动安装过程中会有提示,点击仍然继续即可。 注:安装驱动以前要打开系统的DHCP服务,否则会分配不到地址的。(高级用户可以用手动分配地址的方式,这个就自行研究吧)

相关主题
文本预览
相关文档 最新文档