安卓开发实习模版

时间:2024.4.20

 成绩:     

通信工程专业实训报告

项目名称:Android记事本开发

学    号:                                  

姓    名:                                 

班    级:                                 

指导教师:                                 

时    间:20##年    日-20##年   


目  录

摘  要.......................................................................................................................................... I

第一章 引 言............................................................................................................................... 1

1.1 实训背景........................................................................................................................ 1

1.2 开发环境配置................................................................................................................. 2

第二章 软件功能规划................................................................................................................... 3

2.1软件功能......................................................................................................................... 3

2.2 界面设计........................................................................................................................ 3

第三章 功能开发流程................................................................................................................... 3

3.1程序执行流程.................................................................................................................. 3

3.2 功能实现........................................................................................................................ 3

第四章 实训总结.......................................................................................................................... 3

4.1实训总结......................................................................................................................... 3

 


摘 要

开心或是难过,有趣或是无聊,幸福或是痛苦,这些都是我们所经历的,是记忆,是生命中最为宝贵的,我们舍不得遗忘,记事本能够帮助我们守住回忆,记录下我们生命的足迹。                         

                             第一章  引 言

1 实训背景:

Android是基于Linux开放性内核的操作系统,是Google公司在20##年11月5日公布的手机操作系统。  早期由原名为"Android"的公司开发,谷歌在20##年收购"Android.Inc"后,继续进行对Android系统开发运营,它采用了软件堆层(software stack,又名软件叠层)的架构,主要分为三部分。底层Linux内核只提供基本功能,其他的应用软件则由各公司自行开发,部分程序以Java编写。20##年初数据显示,仅正式上市两年的操作系统Android已经超越称霸十年的塞班系统,使之跃居全球最受欢迎的智能手机平台。开放性:在优势方面,Android平台首先就是其开放性,开发的平台允许任何移动终端厂商加入到Android联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。开放性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。挣脱运营商的束缚:在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。自从iPhone上市,用户可以更加方便地连接网络,运营商的制约减少。随着EDGE、HSDPA这些2G至3G移动网络的逐步过渡和提升,手机随意接入网络已不是运营商口中的笑谈。丰富的硬件选择:这一点还是与Android平台的开放性相关,由于Android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容。好比你从诺基亚Symbian风格手机一下改用苹果iPhone,同时还可将Symbian中优秀的软件带到iPhone上使用、联系人等资料更是可以方便地转移。不受任何限制的开发商:Android平台提供给第三方开发商一个十分宽泛、自由的环境。因此不会受到各种条条框框的阻挠,可想而知,会有多少新颖别致的软件会诞生。但也有其两面性,血腥、暴力、情色方面的程序和游戏如何控制正是留给Android难题之一。无缝结合的Google应用:如今叱咤互联网的Google已经走过10年度历史。从搜索巨人到全面的互联网渗透,Google服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而Android平台手机将无缝结合这些优秀的Google服务。

2开发环境配置

(1) java JDK下载:进入 http://java.sun.com/javase/downloads/index.jsp  (或者直接点击下载 图: 选择 Download JDK 只下载JDK,无需下载jre. (2)eclipse下载进入该网页: http://www.eclipse.org/downloads/  (或者直接点击下载:BT下载     HTTP下载 )我们选择第一个(即eclipse IDE for java EE Developers)(3)下载Android SDK说明: Android SDK两种下载版本,一种是包含具体版本的SDK的,一种是只有升级工具,而不包含具体的SDK版本,后一种大概20多M,前一种70多M。完全版下载  (android sdk 2.1 r01)     二 软件安装 (1)安装jdk 6u19   安装完成即可,无需配置环境变  (2)解压eclipse       eclipse无需安装,解压后,直接打开就行3)解压android sdk     这个也无需安装,解压后供后面使  (4)最终有三个文件夹,Eclipse配置:1 安装android 开发插件 (1)打开Eclipse, 在菜单栏上选择 help->Install New SoftWare点击 Add按钮,出现如下界面 输入网址: https://dl-ssl.google.com/android/eclipse/     (如果出错,请将https改成http) 名称: Android (这里可以自定义)点击OK, 点击 Next按钮  点击Next按钮,出现如下界面:选择 I accept the terms of the license agreements   点击Next,进入安装插件界面安装完成后, 点击Yes按钮,重启Eclips2 配置android sdk(1)点击菜单window->preferences 选择你的android SDK解压后的目录,选错了就会报错,这个是升级工具,目前还没有一个版本的SDK(2)升级SDK版本,选择菜单 window->Android sdk and avd manager  选择update all按钮,出现如下界面选择左边的某一项,点击accept表示安装,点击reject表示不安装,我这里只选了SDK 2.1 和samples for api 7 , 自己可以任意自定义,确定后,选择install按钮,进入安装界面:安装完成下:(3)新建AVD(android vitural device)    和上面一样,进入android sdk and avd manager,选中Vitural Devices 在点击New按钮点击New按钮后, 名称可以随便取,target选择你需要的SDK版本,SD卡大小自定义,点击 Create AVD,显示创建AVD完毕3 新建Android项目(1)选择菜单file->new->other 进入如下界面:选择新建Android Project项目,点击Next按钮,进入如下界面名称自定义,应用程序名自定义,报名必须包含一个点以上,min SDK version里面必须输入整数(3)配置运行 右键项目->Run as -> Run Configuration该界面,点击Browse 按钮,选择你要运行的项目选择Target切换到以下界面该界面选择运行的AVD,将AVD前面的方框设置为选择状态。(4)测试项目运行右键项目名称->run as ->Android Application 即可启动运行该Android程序,

第二章 软件功能规划

1.软件功能

能够提示用户是否有已写记事本,能够进行记事本的标题填写和内容填写,确定后保存。

2.界面设计

进入程序提示“您还没有开始写日记呢!点击下边的Menu按钮开始写日记吧:)",点击menu菜单后进入标题和内容的填写界面。

                    

                  

                      第三章 功能开发流程及功能展示

第一步:MainActivity

package cn.dccssq;

import android.app.ListActivity;

import android.content.Intent;

import android.database.Cursor;

import android.os.Bundle;

import android.util.Log;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.widget.ListAdapter;

import android.widget.ListView;

import android.widget.SimpleCursorAdapter;

public class MainActivity extends ListActivity {

private static final int INSERT_ID = Menu.FIRST;

private static final int DELETE_ID = Menu.FIRST + 1;

private static final int ACTIVITY_CREATE = 0;

private static final int ACTIVITY_EDIT = 1;

private DiaryDbAdapter diaryDb;

private Cursor cursor;

 /** Called when the activity is first created. */

 @Override

    public void onCreate(Bundle savedInstanceState) {

     super.onCreate(savedInstanceState);

     setContentView(R.layout.main);

     diaryDb =new DiaryDbAdapter(this);

     diaryDb.open();

      }

    private void showListView(){

    cursor = diaryDb.getAllNotes();

    String[] from = new String[]{DiaryDbAdapter.KEY_TITLE,DiaryDbAdapter.KEY_BODY};

int[] to = new int[]{R.id.text1,R.id.created};

ListAdapter cursorAdapter = new SimpleCursorAdapter(this,R.layout.diary_row,cursor,from,to);

    setListAdapter(cursorAdapter);

    }

@Override

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

// TODO Auto-generated method stub

super.onListItemClick(l, v, position, id);

Cursor c = cursor;

c.move(position);

Intent intent = new Intent(this,ActivityDiary.class);

intent.putExtra(DiaryDbAdapter.KEY_ROWID, id);

intent.putExtra(DiaryDbAdapter.KEY_TITLE, c.getString(c

       .getColumnIndexOrThrow(DiaryDbAdapter.KEY_TITLE)));

       intent.putExtra(DiaryDbAdapter.KEY_BODY, c.getString(c

       .getColumnIndexOrThrow(DiaryDbAdapter.KEY_BODY)));

       startActivityForResult(intent, ACTIVITY_EDIT);

       }

@Override

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

// TODO Auto-generated method stub

super.onActivityResult(requestCode, resultCode, data);

showListView();

       }

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// TODO Auto-generated method stub

super.onCreateOptionsMenu(menu);

menu.add(0,INSERT_ID,0,R.string.menu_insert);

menu.add(0,DELETE_ID,0,R.string.menu_delete);

return true;

       }

@Override

       public boolean onMenuItemSelected(int featureId, MenuItem item) {

              // TODO Auto-generated method stub

              switch(item.getItemId()){

              case INSERT_ID:

                     Log.i("INSERT:", String.valueOf(INSERT_ID));

                     createDiary();

                     return true;

              case DELETE_ID:

                     Log.i("DELETE_ID:", String.valueOf(getListView().getSelectedItemId()));

                     diaryDb.deleteDiary(getListView().getSelectedItemId());

                     showListView();

                     return true;  

              }

              return super.onMenuItemSelected(featureId, item);

       }

       private void createDiary(){

              Intent intent = new Intent();

              intent.setClass(this, ActivityDiary.class);

              startActivityForResult(intent, ACTIVITY_CREATE);

       }

}

第二步:ActivityDiary

package cn.dccssq;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

public class ActivityDiary extends Activity {

    // title EditText

    EditText titleTxt;

    // body EditText

    EditText bodyTxt;

    // save Button

    Button btn;

    // Row Id

    Long rowId;

    private DiaryDbAdapter diaryDb;

   

    @Override

    protected void onCreate(Bundle savedInstanceState) {

       // TODO Auto-generated method stub

       super.onCreate(savedInstanceState);

       setContentView(R.layout.notepad);

      

       // Initialize the DiaryDbAdapter.

       diaryDb = new DiaryDbAdapter(this);

      

       // Get the screen control

       titleTxt = (EditText)findViewById(R.id.title);

       bodyTxt = (EditText)findViewById(R.id.body_text);

       btn = (Button)findViewById(R.id.button);

       rowId = null ;

      

       // Get data from the front page

       Bundle bundle = getIntent().getExtras();

      

       if(bundle!=null){

           Log.i("bund:",bundle.toString());

          

           // Set data to page

           String title = bundle.getString(DiaryDbAdapter.KEY_TITLE);

           String body = bundle.getString(DiaryDbAdapter.KEY_BODY);

           rowId = bundle.getLong(DiaryDbAdapter.KEY_ROWID);

           if(title!=null)

           {

              titleTxt.setText(title);

           }

           if(body!=null)

           {

              bodyTxt.setText(body);

           }

       }

      

       btn.setOnClickListener(new View.OnClickListener() {

          

           public void onClick(View arg0) {

              // TODO Auto-generated method stub

              String title = titleTxt.getText().toString();

              String body = bodyTxt.getText().toString();

              if(checkInput(title, body)){

                  diaryDb.open();

                  if(rowId!=null){

                     diaryDb.updateDiary(rowId, title, body);

                  }else{

                     diaryDb.createDiary(title, body);

                  }

                  diaryDb.close();

                 

                  Intent mIntent = new Intent();

                  setResult(RESULT_OK, mIntent);

                 

                  finish();

              }

           }

       });

    }

    /**

     * Validate the input.

     * @param title

     * @param body

     * @return

     */

    public boolean checkInput(String title ,String body){

      

       if(null==title || title.trim().length()==0){

           titleTxt.setError("Please input the title!");

           return false;

       }

      

       if(null==body || body.trim().length()==0){

           bodyTxt.setError("Please input the content!");

           return false;

       }

       return true;

    }

}

第三步:DiaryDbAdapter DB操作类,提供了两种增删查改的功能代码

package cn.dccssq;

import java.util.Calendar;

import android.content.ContentValues;

import android.content.Context;

import android.database.Cursor;

import android.database.SQLException;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteException;

public class DiaryDbAdapter {

    public static final String KEY_TITLE = "title";

    public static final String KEY_BODY = "body";

    public static final String KEY_ROWID = "_id";

    public static final String KEY_CREATED = "created";

   

    private DatabaseHelper databaseHelper;

   

    private Context context;

   

    private SQLiteDatabase sqliteDatabase;

    public DiaryDbAdapter(Context context) {

       this.context = context;

    }

   

    /**

     * Open the Database

     */

    public void open(){

       databaseHelper = new DatabaseHelper(context);

      

       try

       {

           sqliteDatabase = databaseHelper.getWritableDatabase();

       }catch(SQLiteException e){

           sqliteDatabase = databaseHelper.getReadableDatabase();

       }

    }

   

    /**

     * Close the Database

     */

    public void close()

    {

       sqliteDatabase.close();

    }

   

    /**

     * Insert the Data

     * @param title

     * @param body

     * @return

     */

    public long createDiary(String title,String body){

      

       ContentValues content = new ContentValues();

       content.put(KEY_TITLE, title);

       content.put(KEY_BODY, body);

       Calendar calendar = Calendar.getInstance();

       String created = calendar.get(Calendar.YEAR) + "/"

              + calendar.get(Calendar.MONTH) + "/"

              + calendar.get(Calendar.DAY_OF_MONTH) + " "

              + calendar.get(Calendar.HOUR_OF_DAY) + ":"

              + calendar.get(Calendar.MINUTE);

       content.put(KEY_CREATED, created);

      

       return sqliteDatabase.insert(databaseHelper.DATABSE_TABLE, null, content);

    }

   

    /**

     * Delete the record

     * @param rowId

     * @return

     */

    public boolean deleteDiary(long rowId){

      

       String whereString = KEY_ROWID + "=" + rowId;

       return sqliteDatabase.delete(databaseHelper.DATABSE_TABLE, whereString, null)>0;

    }

   

    /**

     * Get all Records

     * @return

     */

    public Cursor getAllNotes()

    {

       String[] searchResult =  {KEY_ROWID, KEY_TITLE,KEY_BODY, KEY_CREATED};

       return sqliteDatabase.query(databaseHelper.DATABSE_TABLE, searchResult, null, null, null, null, null);

    }

   

    /**

     * Get the record by condition

     * @param rowId

     * @return

     * @throws SQLException

     */

    public Cursor getDiary(long rowId) throws SQLException{

      

       String[] searchResult =  {KEY_ROWID, KEY_TITLE,KEY_BODY, KEY_CREATED};

       String whereString = KEY_ROWID + "=" + rowId;

      

       Cursor mCursor = sqliteDatabase.query(true, databaseHelper.DATABSE_TABLE, searchResult, whereString, null, null, null, null, null);

       if(mCursor!=null){

           mCursor.moveToFirst();

       }  

       return mCursor;

    }

   

    public boolean updateDiary(long rowId ,String title,String body){

      

       ContentValues values = new ContentValues();

       values.put(KEY_ROWID, title);

       values.put(KEY_BODY,body);

      

       Calendar calendar = Calendar.getInstance();

       String created = calendar.get(Calendar.YEAR) + "/"

              + calendar.get(Calendar.MONTH) + "/"

              + calendar.get(Calendar.DAY_OF_MONTH) + " "

              + calendar.get(Calendar.HOUR_OF_DAY) + ":"

              + calendar.get(Calendar.MINUTE);

       values.put(KEY_CREATED, created);

       String whereString = KEY_ROWID + "=" + rowId;

      

       return sqliteDatabase.update(databaseHelper.DATABSE_TABLE, values, whereString, null)>0;

    }

   

    public void xinjianDiary(String title,String body){

      

       Calendar calendar = Calendar.getInstance();

       String created = calendar.get(Calendar.YEAR) + "/"

              + calendar.get(Calendar.MONTH) + "/"

              + calendar.get(Calendar.DAY_OF_MONTH) + " "

              + calendar.get(Calendar.HOUR_OF_DAY) + ":"

              + calendar.get(Calendar.MINUTE);

      

       String insertSQL = "INSERT INTO " + databaseHelper.DATABSE_TABLE

           +"(" + KEY_ROWID +"," + KEY_TITLE+"," + KEY_BODY +"," + KEY_CREATED + ")"

           + " values (?,?,?,?)" ;

       Object[] args = {null,title,body,created};

       sqliteDatabase.execSQL(insertSQL, args);

    }

   

    public void bianjiDiary(long rowId ,String title,String body){

       Calendar calendar = Calendar.getInstance();

       String created = calendar.get(Calendar.YEAR) + "/"

              + calendar.get(Calendar.MONTH) + "/"

              + calendar.get(Calendar.DAY_OF_MONTH) + " "

              + calendar.get(Calendar.HOUR_OF_DAY) + ":"

              + calendar.get(Calendar.MINUTE);

      

       String updateSQL = "update " + databaseHelper.DATABSE_TABLE

           +" set " + KEY_TITLE+"=? ," + KEY_BODY +"=? ," + KEY_CREATED + "=? "

           + " where " + KEY_ROWID + "= ?" ;

       Object[] args = {title,body,created,rowId};

       sqliteDatabase.execSQL(updateSQL, args);

    }

   

    public void shanchuDiary(long rowId ){

       String deleteSQL = "delete from "+ databaseHelper.DATABSE_TABLE +" where " + KEY_ROWID + "= ?" ;

       Object[] args = {rowId};

       sqliteDatabase.execSQL(deleteSQL, args);

    }

   

    public Cursor qudeAllNotes()

    {

       String searchSQL = "select _id , title , body ,created from "+ databaseHelper.DATABSE_TABLE;

       return sqliteDatabase.rawQuery(searchSQL, null);

    }

}

第四步:DatabaseHelper

package cn.dccssq;

import android.content.Context;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteOpenHelper;

public class DatabaseHelper extends SQLiteOpenHelper {

       private final static String DATABSE_NAME = "notepad";

       private final static int DATABASE_VERSION = 1;

       public final static String DATABSE_TABLE = "diary";

      

       private final static String DATABASE_CREATE = "create table " + DATABSE_TABLE + " (_id integer primary key autoincrement,"

                     + "title text not null, body text not null, created text not null);";

       public DatabaseHelper(Context context) {

              super(context, DATABSE_NAME, null, DATABASE_VERSION);

       }

       @Override

       public void onCreate(SQLiteDatabase db) {

              db.execSQL(DATABASE_CREATE);

       }

       @Override

       public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {

              db.execSQL("DROP TABLE IF EXISTS " + DATABSE_TABLE);

              onCreate(db);

       }

}

第五步:main.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    >

    <ListView

           android:id="@+id/android:list"

           android:layout_width="wrap_content"

           android:layout_height="wrap_content" />

    <TextView

           android:id="@+id/android:empty"

          android:layout_width="wrap_content"

          android:layout_height="wrap_content"

          android:text="您还没有开始写日记呢!点击下边的Menu按钮开始写日记吧:)" />

</LinearLayout>

第六步:diary_row.xml

<?xml version="1.0" encoding="utf-8" ?>

<RelativeLayout

       android:id="@+id/row"

       xmlns:android="http://schemas.android.com/apk/res/android"

       android:layout_width="fill_parent"

       android:layout_height="fill_parent">

<TextView

       android:id="@+id/text1"

       android:layout_width="wrap_content"

       android:layout_height="30px"

       android:maxWidth="200dip"

       android:textSize="22sp"

       android:layout_marginTop="10dip"

       android:text="第一组第一项" />

<TextView

       android:id="@+id/created"

       android:layout_width="wrap_content"

       android:layout_height="35px"

       android:layout_alignParentRight="true"

       android:layout_marginLeft="10dip"

       android:layout_marginTop="10dip"

       android:text="1999年12月3号" />

</RelativeLayout>

第七步:notepadxml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    >

<TextView

       android:text="@string/notepad_title"

       android:layout_width="fill_parent"

       android:layout_height="wrap_content"></TextView>

<EditText

       android:id="@+id/title"

       android:layout_width="fill_parent"

       android:layout_height="wrap_content"></EditText>

<TextView

       android:text="@string/notepad_body" 

       android:layout_width="fill_parent"

       android:layout_height="wrap_content"></TextView>

<EditText

       android:id="@+id/body_text"

       android:layout_width="fill_parent"

       android:layout_height="wrap_content"></EditText>

<Button

       android:id="@+id/button"

       android:text="@string/notepad_button"

       android:layout_width="fill_parent"

       android:layout_height="wrap_content"></Button>

</LinearLayout>

第八步:strings.xml

<?xml version="1.0" encoding="utf-8"?>

<resources>

    <string name="hello">Hello World, MainActivity!</string>

    <string name="app_name">db2</string>

   

    <string name="diary_edit">编辑</string>

    <string name="notepad_title">标题:</string>

    <string name="notepad_body">内容:</string>

    <string name="notepad_button">确定:</string>

    <string name="menu_insert">Add</string>

    <string name="menu_delete">Delete</string>

    <string name="edit_diary">Edit</string>

</resources>

第九步:AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

      package="cn.dccssq"

      android:versionCode="1"

      android:versionName="1.0">

    <application android:icon="@drawable/icon" android:label="@string/app_name">

        <activity android:name=".MainActivity"

                  android:label="@string/app_name">

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

        <activity android:name=".ActivityDiary">

                  </activity>

    </application>

    <uses-sdk android:minSdkVersion="8" />

</manifest>

                                

                            第四章 实训总结

这次的实训,是教我们运行现在很流行的android,android是由谷歌推出的运用在手机上的操作系统,现在,这种安装了android的手机相当风靡。而且欢迎度也很大

这次的实训是第一次接触android,老师先给我们讲经典的程序,helloworld。从中学会了如何去创建一个android的项目,了解了android项目里的每个文件夹和文件的作用。而且环境的配置中出现的问题的解决方案,

 对android有点入门的时候,实训时间却已经要结束了,这次的实训学到了很多,但是对难一点的却还有些不知道,这让我有点小小的失望。通过这次的实训,不仅学到了新知识,更对已经就学过的JAVA又加深了一点印象。现在自己也能利用已有的知识,编一些简单的程序,通过这次的实训,让我对以后选择软件开发的行业更加坚定了。打算自己在实训好后还要在学。

更多相关推荐:
专业实习安卓开发

武汉工程大学计算机科学与工程学院专业实习报告专业班级学号学生姓名指导教师计算机科学与技术01班1105080101刘黎志副教授实习时间20xx20xx学年第一学期20xx1012至20xx1026实习成绩武汉工...

安卓实习报告

同城快餐网上订餐系统太原科技大学TAIYUANUniversityofScienceandTechnology毕业实习报告学生姓名郭锦涛学号20xx20xx0106指导教师刘静所属系部计算机科学与技术专业班级计...

android开发实习报告总结

Android开发实习总结有一名话叫做不经过风雨怎么见彩虹我想改一下不真正进入社会怎能了解社会呢在这次实习中给我收获最大的是我觉得很多工作需要我去摸索和探讨要不怕吃苦勇于激流勇进有的工作虽然单挑又重复但这是磨练...

中兴java软件安卓开发实习报告

南昌中兴实习报告短短的一个月很快就过去了,在南昌中兴软件实训中心的实习就过去了。虽然只有短短的一个月,但我学到了许多知识,熟悉了软件项目开发的流程,也很好的增强了自己的动手能力。在这个月中,我们学习了JAVA的…

android安卓音乐播放器毕业实习报告+实习日记

武汉工程大学计算机科学与工程学院毕业实习报告专业班级学号学生姓名指导教师实习时间实习成绩软件工程0120xx20xx学年第2学期20xx304至20xx322武汉工程大学计算机科学与工程学院制说明1实习指导教师...

安卓开发实训报告

长沙学院课程设计说明书题系部目通信系统综合课程设计电子信息与电气工程通信3班专业班级姓学指导教名李元春号20xx043312师冯璐刘光灿陈威兵王路露张刚林李广柱起止日期20xx102620xx1113长沙学院课...

Java和安卓实习报告

实习报告项目设计题目健康助手最佳情侣身高测试实习报告目录第一章项目背景及意义2第二章基本知识321基本知识3211JAVA基础3212android基础4第三章项目详细设计531需求概述532项目的功能633运...

实习报告:apk应用开发

山西物联谷科技有限公司实习任务二apkAndroidPackageAndroid安装包开发小组成员日期20xx年1月19日25日太原工业学院自动化系毕业实习步骤一apk开发平台的搭建1apk开发平台要应用的软件...

Andriod毕业实习报告

毕业实习报告专业班级学号学生姓名指导教师实习时间实习成绩说明1实习指导教师由学院校内教师担任负责组织实习学生管理参加实习答辩实习成绩评定给出实习评语等工作2实习报告由武汉工程大学计算机科学与工程学院提供基本格式...

基于Android的毕业实习报告

成绩西安建筑科技大学毕业实习报告院系信息与控制工程学院专业班级计算机1201实习单位计算机技术应用研究所实习时间20xx22520xx315学生姓名学号110620xx1指导教师20xx年3月20日1信息与控制...

android实习报告

实习项目名称3GAndriod实习学时同组学生姓名实习地点实习日期成绩批改教师批改时间实习报告一实习目的1掌握android系统开发的一些常用知识2拥有独立解决开发中遇到问题的能力3熟悉android软件开发流...

认知实习报告Android方向

认知实习报告姓名学号专业学校Android方向目录一实习目的及意义二实习内容1中兴南昌软件园简介2Android工程师介绍与要求3公司规章制度4实习目标5环境适应三实习心得体一实习目的及意义通过认识实习达到以下...

安卓开发实习报告(9篇)