1第一个Android应用程序
2015-06-06 15:53
411 查看
第一个程序从 Hello World 開始??
或许C语言学习是从这開始的,可是书上不是这么開始的,或许起点就决定了高度??
一、新建安卓项目
(1)选择安卓项目
(2)随便建个名字的项目,默认下一步
二、执行环境
(1)新建虚拟设备,在电脑上执行这个虚拟的安卓模拟器。
(2)在自己的手机上执行,手机用数据线连接电脑,调为开发人员模式,然后执行的时候就会检測到手机,然后选择用手机执行。
我选择把自己的小米3作为了开发的測试手机,由于电脑的安卓模拟器调试应该会非常卡。
三、执行出来事实上就是个hello world..
四、開始学习播放器功能
能不能唱个来自网上的小曲??
能够,仅仅须要改动MainActivity.java文件就能够了
(1)导入两个头文件,分别表示安卓媒体和网络的头文件
(2)定义一个媒体播放的变量
(3)写入播放的函数 playMusicFromWeb(),这个函数的调用是在onCreate函数里面。
这个链接是《客官不能够》音乐,不要惊呆哦:http://img3.epanshi.com/2967/upload/1.mp3
确定你写的程序正确?还须要加入调试信息。
Log.i() 记录信息类的消息
Log.d() 记录debug的消息
Log.w() 记录warning的消息
Log.e() 记录error的消息
而这里的调试定义了一个叫Debug_tag的变量,调试的
名字叫做testLog,会在调试的时候显示这个变量的全部信息。
(4)为了安全,在onStop()函数里面定义停止以及释放播放器资源的方法
假设发现没有onStop()函数,一定是姿势不正确,在.java代码里面的类名上右击鼠标,选择Source 再选择 "Override/Implement Methods” 菜单项,然后勾选onStop()方法。
播放不出来的错误:
缺少了赋予程序联网权限,打开AndroidMainfest.xml文件加入下面代码即可。
五、获取位置代码
就不多提了,还是要注意赋予获取位置权限
获取位置
六、至此,简单的第一个APP就出来了,好像有点简陋。
附:完整.java代码
或许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);
}
}
相关文章推荐
- android百度地图定位,点击给定经纬度的某点进行弹窗
- androidstudio中出现Rendering Problems,字体太小,显示不了组件问题
- 安卓showTime and showDate 两个按钮,并在xml中写入相应的onClick方法
- Android之NDK开发
- Android 部分属性学习
- Android 学习笔记 Service服务与远程通信...(AIDL)
- 技术总结--android篇(二)--布局的优化
- Android平台中获取状态栏的高度代码实现
- (二)Android导航栏和菜单资源的结合使用
- 技术总结--android篇(一)--MVC模式
- Android之Windows下生成动态库so并打包到APK中(转)
- Android串口操作,简化android-serialport-api的demo(转)
- Android实战简易教程-第十一枪(树形组件:ExpandableListView显示和动态添加删除)
- <Android>inflate的方法参数说明
- 安卓表格布局android:collapseColumns,android:shrinkColumns和stretchColumn
- Android--taskAffinity属性
- Android屏幕适配全攻略(最权威的官方适配指导)
- Android Stdio常见问题解决
- Android应用程序绑定服务(bindService)的过程源代码分析
- Java与Android开发环境配置以及遇到的问题