安卓开发App源码是指按照Java编写规则和安卓应用程序开发的规范开发的安卓移动应用程序的代码文件。安卓平台的应用程序开发通常使用Java语言、安卓 SDK和Eclipse等开发工具。下面就以一个跑步记录App为例,介绍安卓开发App源码。
1. 创建新项目
打开安卓 Studio,点击Create New Project按钮,输入项目名称和包名,选择最低支持安卓版本和手机屏幕尺寸,选择Empty Activity模板,点击Next按钮。
2. 设置变量和布局文件
在MainActivity.java中,定义Activity布局文件所包含的TextView和ListView对象
```java
TextView distanceTextView;
TextView timeTextView;
TextView speedTextView;
ListView timeList;
ArrayAdapter
ArrayList
```
3. 实现计时器功能
使用安卓.os.CountDownTimer类实现计时器的功能,定义以下成员变量
```java
private CountDownTimer countDownTimer;
private String time =
private long timeSpent;
```
在onCreate()方法中初始化计时器、设置计时时间和计时完成后执行的操作
```java
countDownTimer = new CountDownTimer(MAX,TIME,MILLIS, 1000) {
@Override
public void onTick(long millisUntilFinished) {
timeSpent += 1000;
time = DateUtils.formatElapsedTime(timeSpent / 1000);
timeTextView.setText(String.format(%s %s, getString(R.string.time,num), time));
}
@Override
public void onFinish() {
timeTextView.setVisibility(View.GONE);
}
};
```
4. 添加定位功能
使用安卓的LocationManager,在安卓Manifest.xml添加定位的权限
```xml
```
在MainActivity.java中定义以下成员变量
```java
private static final int MY,PERMISSIONS,REQUEST,LOCATION = 99;
private LocationManager locationManager;
private LocationListener locationListener;
private Location currentLocation;
```
在onCreate()方法中获取定位权限并注册Listener
```java
locationManager = (LocationManager) getSystemService(Context.LOCATION,SERVICE);
locationListener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
currentLocation = location;
distanceTextView.setText(String.format(%s %s, getString(R.string.distance,num), String.valueOf(distance)));
speedTextView.setText(String.format(%s %s, getString(R.string.speed,num), String.valueOf(speed)));
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
};
if (Build.VERSION.SDK,INT >= Build.VERSION,CODES.M) {
if (checkSelfPermission(Manifest.permission.ACCESS,FINE,LOCATION) != PackageManager.PERMISSION,GRANTED) {
requestPermissions(new String[]{Manifest.permission.ACCESS,FINE,LOCATION}, MY,PERMISSIONS,REQUEST,LOCATION);
} else {
locationManager.requestLocationUpdates(LocationManager.GPS,PROVIDER, 0, 0, locationListener);
}
} else {
locationManager.requestLocationUpdates(LocationManager.GPS,PROVIDER, 0, 0, locationListener);
}
```
5. 实现ListView
在onCreate()方法中实现ListView
```java
arrayList = new ArrayList
adapter = new ArrayAdapter
timeList.setAdapter(adapter);
```
在LocationListener回调方法中,添加记录行走距离和更新速度的功能
```java
if (currentLocation != null) {
float[] results = new float[1];
Location.distanceBetween(previousLocation.getLatitude(), previousLocation.getLongitude(),
currentLocation.getLatitude(), currentLocation.getLongitude(), results);
float distanceInMeters = results[0];
distance += distanceInMeters;
speed = currentLocation.getSpeed();
previousLocation = currentLocation;
arrayList.add(time + \n + String.format(%s %.2f km, getString(R.string.distance,num), distance / 1000) + \n + String.format(%s %.2f km/h, getString(R.string.speed,num), (speed * 3600) / 1000));
adapter.notifyDataSetChanged();
}
```
以上就是跑步记录App的源码分析和实现流程,其他类型的App也都有各自的特征和功能,开发者能够依据自己的需求进行开发并发布。