【1】第一个安卓程序

第一个程序从 Hello World 开始?? 


也许C语言学习是从这开始的,但是书上不是这么开始的,也许起点就决定了高度??


一、新建安卓项目


(1)选择安卓项目



(2)随便建个名字的项目,默认下一步



二、运行环境

(1)新建虚拟设备,在电脑上运行这个虚拟的安卓模拟器。


(2)在自己的手机上运行,手机用数据线连接电脑,调为开发者模式,然后运行的时候就会检测到手机,然后选择用手机运行。


我选择把自己的小米3作为了开发的测试手机,因为电脑的安卓模拟器调试应该会很卡。


三、运行出来其实就是个hello world..




四、开始学习播放器功能


能不能唱个来自网上的小曲??


可以,只需要修改MainActivity.java文件就可以了



(1)导入两个头文件,分别表示安卓媒体和网络的头文件

import android.media.*;
import android.net.*;

(2)定义一个媒体播放的变量

private MediaPlayer mp;

(3)写入播放的函数 playMusicFromWeb(),这个函数的调用是在onCreate函数里面。

<span style="white-space:pre">	</span>public void playMusicFromWeb(){
		try {
			Uri file = Uri.parse("http://img3.epanshi.com/2967/upload/1.mp3");
			mp = MediaPlayer.create(this, file);
			mp.start();
		} catch (Exception e) {
			Log.e(Debug_tag, "Player failed", e);
		}
	}

这个链接是《客官不可以》音乐,不要惊呆哦:http://img3.epanshi.com/2967/upload/1.mp3


确定你写的程序正确?还需要添加调试信息。

Log.i() 记录信息类的消息

Log.d() 记录debug的消息

Log.w() 记录warning的消息

Log.e() 记录error的消息

而这里的调试定义了一个叫Debug_tag的变量,调试的

private static final String Debug_tag="testLog";

名字叫做testLog,会在调试的时候显示这个变量的所有信息。



(4)为了安全,在onStop()函数里面定义停止以及释放播放器资源的方法

如果发现没有onStop()函数,一定是姿势不对,在.java代码里面的类名上右击鼠标,选择Source 再选择 "Override/Implement Methods” 菜单项,然后勾选onStop()方法。

	protected void onStop() {
		// TODO Auto-generated method stub
		if(mp!=null){
			mp.stop();
			mp.release();
		}
		super.onStop();
	}


播放不出来的错误:

缺少了赋予程序联网权限,打开AndroidMainfest.xml文件添加以下代码就行。

<uses-permission android:name="android.permission.INTERNET"></uses-permission>



五、获取位置代码

就不多提了,还是要注意赋予获取位置权限

import android.location.*;

获取位置

<span style="white-space:pre">	</span>public void getLocation(){
		try{
			LocationManager locMgr=(LocationManager)getSystemService(LOCATION_SERVICE);
			Location recentLoc=locMgr.getLastKnownLocation(LocationManager.GPS_PROVIDER);
			Log.i(Debug_tag, "loc:"+recentLoc.toString());
		}catch(Exception e){
			Log.e(Debug_tag,"get location failed!",e);
		}
	}







六、至此,简单的第一个APP就出来了,好像有点简陋。

附:完整.java代码


package com.example.test;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;

import android.media.*;
import android.net.*;

import android.location.*;

public class MainActivity extends ActionBarActivity {

	private MediaPlayer mp;
	private static final String Debug_tag="testLog";
	
	//播放网上的音乐
	public void playMusicFromWeb(){
		try {
			Uri file = Uri.parse("http://img3.epanshi.com/2967/upload/1.mp3");
			mp = MediaPlayer.create(this, file);
			mp.start();
		} catch (Exception e) {
			Log.e(Debug_tag, "Player failed", e);
		}
	}
	
	//获取位置
	public void getLocation(){
		try{
			LocationManager locMgr=(LocationManager)getSystemService(LOCATION_SERVICE);
			Location recentLoc=locMgr.getLastKnownLocation(LocationManager.GPS_PROVIDER);
			Log.i(Debug_tag, "loc:"+recentLoc.toString());
		}catch(Exception e){
			Log.e(Debug_tag,"get location failed!",e);
		}
	}
		
	
	@Override
	protected void onStop() {
		// TODO Auto-generated method stub
		if(mp!=null){
			mp.stop();
			mp.release();
		}
		super.onStop();
	}

	
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        //开始记录bug信息
        Log.i(Debug_tag, "MydeugLog");
        //播放音乐
        playMusicFromWeb();
        //获取位置
        getLocation();
        
        
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}



版权声明:欢迎关注我的博客,本文为博主toyking原创文章,未经博主允许不得转载。

posted @ 2014-10-18 23:02  炒饭君  阅读(151)  评论(0编辑  收藏  举报