Hello everyone,
We're developing Esri Android SDK and Esri iOS SDK based apps. Using some functionality and using some code blocks. But at the Esri Android SDK based side, app is working slowly. We use same internet connection, same ArcGIS server and same approach to develop mobile app. But android app works like disappointment.
In order to show you this issue we created new project. It contains 1 basemap (ArcGISTiledMapServiceLayer) and 2 button and 1 layer, when we click the button one app is adding layer when we click button 2 app removelayer, when considering even this simple app iOS side work faster 2 or 3 times than android.
I'll give simple code blocks.
Android side ;
public class MapMainFragment extends Fragment {
private static MapView mMapView = null;
public ArcGISDynamicMapServiceLayer mDynamicLayer;
Button mButtonAdd, mButtonRemove;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View rootView = inflater.inflate(R.layout.fragment_main_map, container, false);
mMapView = (MapView) rootView.findViewById(R.id.map);
mButtonAdd = (Button) rootview.findViewById(R.id.buttonadd);
mButtonDelete = (Button) rootview.findViewById(R.id.buttonremove;
mMapView.addLayer(new ArcGISTiledMapServiceLayer(getString(R.string.citymap_url)), 0);
mDynamicLayer = new ArcGISDynamicMapServiceLayer(getString(R.string.layer_url));
mButtonAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mMapView.addLayer(mDynamicLayer);
});
mButtonAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mMapView.removeLayer(mDynamicLayer);
});
}
iOS Side;
MainViewController.h
@property (strong, nonatomic) IBOutlet AGSMapView *mapView;
- (IBAction)btnZoomAdd:(id)sender;
- (IBAction)btnZoomRemove:(id)sender;
MainViewController.m
@interface MainViewController (){
AGSTiledMapServiceLayer *baseTiledLayer;
AGSDynamicMapServiceLayer *dynamicLayer}
baseTiledLayer = [AGSTiledMapServiceLayer tiledMapServiceLayerWithURL:baseurl];
[self.mapView insertMapLayer:baseTiledLayer withName:@"City Map" atIndex:0]; activeBaseLayer =@"City Map";
dynamicLayer = [AGSDynamicMapServiceLayer dynamicMapServiceLayerWithURL: urldynamic];
- (IBAction)btnZoomIn:(id)sender {
[self.mapView addMapLayer:dynamicLayer withName:Name];
}
- (IBAction)btnZoomOut:(id)sender {
[self.mapView removeMapLayerWithName:Name];
}
As you see in code blocks nothing diffrent from each other but Android side works like a turtle, how Can I handle this situation ? How can I run my android app like a cheetah. I need advices. Thanks for all
Dan O'Neill,
Tero Rönkkö
Will Crick