Размер приложения увеличивается
Недавно я использовал Fused Location API
для цели размещения. Перед применением библиотеки сервиса Google Play com.google.android.gms:play-services:8.3.0
размер приложения был 4.3MB
(4,499,239 байт), но после использования этого API-интерфейса он увеличился до 5.8 MB
(6 085 932 байта). Только один класс был добавлен в проект. т.е. LocationService.java
где я звоню из класса обслуживания, и вот код.
LocationService.java
public class LocationServiceRACE implements
GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, LocationListener {
private GoogleApiClient mGoogleApiClient;
private LocationRequest mLocationRequest;
public LocationServiceRACE(Context serviceContext) {
mGoogleApiClient = new GoogleApiClient.Builder(serviceContext)
.addApi(LocationServices.API)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
}
public GoogleApiClient getmGoogleApiClient() {
return this.mGoogleApiClient;
}
@Override
public void onConnected(Bundle bundle) {
if (mGoogleApiClient.isConnected())
startLocationUpdates();
}
@Override
public void onConnectionSuspended(int i) {
}
@Override
public void onLocationChanged(Location location) {
}
@Override
public void onConnectionFailed(ConnectionResult connectionResult) {
}
protected void startLocationUpdates() {
mLocationRequest = LocationRequest.create();
mLocationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY);
mLocationRequest.setInterval(60000); // Update location every 60 second
mLocationRequest.setSmallestDisplacement(100);
LocationServices.FusedLocationApi.requestLocationUpdates(
mGoogleApiClient, mLocationRequest, this);
}
}
Я не использую никакие другие API, кроме Fused Location, и ничего не добавляется / не изменяется в ProGuard после добавления сервисов Google Play. Как я могу уменьшить размер приложения там, где мне просто нужно fused location
апи?.
2 ответа
Посмотрите здесь, как настроить Сервисы Google Play:
https://developers.google.com/android/guides/setup
Он разбит на модули, поэтому вы можете импортировать только те API, которые вам нужны. В вашем случае вам понадобится только
com.google.android.gms:play-services-location:8.3.0
вместо
com.google.android.gms:play-services:8.3.0
которая представляет собой весь пакет.
Кроме того, если вы используете Proguard в конце вашей упаковки (minifyEnabled true
внутри вашего build.gradle
), он удалит классы, которые не используются вашей кодовой базой, еще больше уменьшив размер вашего окончательного APK.
Как насчет использования только зависимости от местоположения?
com.google.android.gms: игры-сервисы местоположение:8.3.0