您的位置:首頁 >  新聞中心 > 云通訊公告
  云通訊公告
 

不需要搭后臺,通過Bmob輕松制作一個Android APP

來源:原創(chuàng)    時間:2017-11-03    瀏覽:0 次

怎么輕松建立一個效勞器端,制造一款歸于自己的app呢?今日我們來一同學習一下!首要我們先來看看它------Bmob。

Bmob 是一個能夠開發(fā)云存儲的移動運用軟件,給運用軟件快速增加一個安全靈敏的后臺辦理體系,便利閱讀終端保存的各種信息。針對移動運用開發(fā)的特性,Bmob還供給了主動推送效勞,能夠讓移動開發(fā)者將信息從效勞器直接推送到運用程序中,然后完結軟件的主動更新、信息告訴等效勞。

關于許多Android/iOS個人移動開發(fā)者來說,開發(fā)一個具有網(wǎng)絡功用的運用不是一件簡略的事,不只需求購買/租借效勞器,還有必要把握一門比如Java/.net/php這類的效勞器開發(fā)言語,每開發(fā)一款移動運用程序,就有必要開發(fā)保護對應的效勞器程序。這一切關于移動開發(fā)者來說,都是一個冗長的噩夢。

怎么讓移動開發(fā)者從繁瑣的機械勞作中擺脫出來,將更多精力投入到移動運用程序的構思研制,然后不斷提高產(chǎn)品質量呢?Bmob移動運用云存儲途徑的誕生就很好地處理了以上難題。

在Bmob途徑上,只需注冊一個帳號,成功后懇求創(chuàng)立恣意多個數(shù)據(jù)庫,取得對應的Key,下載對應版別的SDK并將其嵌入到移動運用中,便能夠調(diào)用存取API,進行數(shù)據(jù)的恣意操作。有了Bmob,您在5分鐘內(nèi)就能夠學會怎么開發(fā)一個云存儲的移動運用軟件,給運用軟件快速增加一個安全靈敏的后臺辦理體系,便利您閱讀終端保存的各種信息。

是不是很心動啊,廢話不多說,我們直接開端吧!



創(chuàng)立運用

首要你需求注冊一個Bmob賬號,注冊成功之后頁面是這樣的:


你的應該是空白的,點擊創(chuàng)立運用:




按操作進行即可,這兒我們挑選開發(fā)版免費的。當你創(chuàng)立完運用,點擊所創(chuàng)立的運用:



你的應該只要一個數(shù)據(jù)表_User,我這兒現(xiàn)已創(chuàng)立了兩個數(shù)據(jù)表,我們先翻開設置看一個非常重要的東西:



這個ID必定要留意,很重要,我們持續(xù)。頁面右下角有一個文檔,我們點開找到Android開發(fā)文檔:





你能夠快速閱讀一下這兒的快速入門,接下來我們開端導入sdk,首要闡明一點我們運用Android Studio來完結開發(fā)作業(yè),在快速入門中你會看到導入sdk的辦法,我們優(yōu)先挑選主動導入。



主動導入

在 Project 的 build.gradle 文件中增加 Bomb 的 maven 庫房地址:


 buildscript { 
     repositories { 
         jcenter() 
     } 
     dependencies { 
         classpath     'com.android.tools.build:gradle:1.2.3' 
     } 
 } 

 allprojects { 
     repositories { 
         jcenter() 
         //Bmob的maven庫房地址--必填 
         maven { url "https://raw.github.com/bmob/bmob-android-sdk/master" } 
     } 
 }
依照文檔闡明來即可。接著裝備AndroidManifest.xml,最終一步比較重要的是就是初始化BmobSDK了。



初始化BombSDK

在你的運用程序發(fā)動的 Activity 的 onCreate辦法中初始化BombSDK:


package com.bmob.example; 
import cn.bmob.v3.Bmob; 
import android.app.Activity; 
import android.os.Bundle; 
public class MainActivity extends Activity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
         // TODO Auto-generated method stub 
        super.onCreate(savedInstanceState); 
         //供給以下兩種辦法進行初始化操作: 

        //榜首:默許初始化 
        Bmob.initialize(this, "Your Application ID"); 
        // 注:自v3.5.2開端,數(shù)據(jù)sdk內(nèi)部縫合了計算sdk,開發(fā)者無需額定集成,傳途徑參數(shù)即可,不傳默許沒敞開數(shù)據(jù)計算功用 
        //Bmob.initialize(this, "Your Application ID","bmob"); 

        //第二:自v3.4.7版別開端,設置BmobConfig,答應設置懇求超時時刻、文件分片上傳時每片的巨細、文件的過期時刻(單位為秒), 
        //BmobConfig config =new BmobConfig.Builder(this) 
        ////設置appkey 
        //.setApplicationId("Your Application ID") 
        ////懇求超時時刻(單位為秒):默許15s 
        //.setConnectTimeout(30) 
        ////文件分片上傳時每片的巨細(單位字節(jié)),默許512*1024 
        //.setUploadBlockSize(1024*1024) 
        ////文件的過期時刻(單位為秒):默許1800s 
        //.setFileExpiration(2500) 
        //.build(); 
        //Bmob.initialize(config); 
    } 
}

當你初始化完結而且上述過程都無誤的情況下你就能運用bmob啦,我們來驗證一下:



當你隨便在一個java類文件中寫上bmob的時分就會呈現(xiàn)許多bmob的相關辦法了,至此裝備bmob現(xiàn)已悉數(shù)完結,接下來開端運用bmob吧!



創(chuàng)立數(shù)據(jù)表


我覺得bmob的一個中心就是數(shù)據(jù)的運用,就是上傳數(shù)據(jù),讀取數(shù)據(jù),也注重說一下這點,首要我們創(chuàng)立一個自己需求的數(shù)據(jù)表:

public class FoundData extends BmobObject {
    private String title;    
    private String describe;    
    private String phone;    
    
    public void setPhone(String phone) {
        this.phone = phone;
    }    
        
    public void setDescribe(String describe) {
        this.describe = describe;
    }    
        
    public void setTitle(String title) {
        this.title = title;
    }    
    
    public String getPhone() {        
        return phone;
    }    
    
    public String getDescribe() {        
        return describe;
    }    
    
    public String getTitle() {        
        return title;
    }
}
這兒我依據(jù)項目需求創(chuàng)立了一個FoundData數(shù)據(jù)表,我們創(chuàng)立數(shù)據(jù)表的時分記住要承繼自Bmobject這個類,然后界說相關特點,增加set與get辦法,在我們的項目中成功創(chuàng)立數(shù)據(jù)表之后我們需求在bmob后端操控太增加數(shù)據(jù)表與之構成對應:



挑選增加表:



這兒挑選自界說,要留意這兒的稱號有必要與你在項目里創(chuàng)立的數(shù)據(jù)表稱號如出一轍,增加表完結之后翻開這個表:



由于你是剛創(chuàng)立的所以你的里邊只要objectid String這一樣,你需求手動增加,我們挑選增加列:



留意列的稱號也有必要與你項目中創(chuàng)立的變量稱號共同,包含數(shù)據(jù)類型:



完結上述操作我們就成功創(chuàng)立一個數(shù)據(jù)表了,接下來我們要點說一下對數(shù)據(jù)的讀取,首要我們需求在數(shù)據(jù)表中增加相關數(shù)據(jù),像這樣:



記住增加數(shù)據(jù)的時分是增加行。然后我們翻開開發(fā)文檔:



點開開發(fā)文檔:



這是關于bmob關于android開發(fā)的一系列操作,我們需求找到查詢數(shù)據(jù)的辦法:



找到查詢指定列



這兒給我們供給一個查詢指定列的辦法,我們看在項目中的具體運用:


    //獲取數(shù)據(jù)  
    public void getData(){  

        //獲取數(shù)據(jù)  
        BmobQuerybmobQuery = new BmobQuery();  
        //不指定查找具體的哪一項則為查找悉數(shù)數(shù)據(jù)  
        // bmobQuery.addQueryKeys("title");  
        bmobQuery.findObjects(new FindListener() {  
            @Override  
            public void done(Listlist, BmobException e) {  

            }  
        });  


    }

我們需求留意,bmob供給的是查詢指定列的辦法,就是它能夠得到一列的數(shù)據(jù),可是我們知道我們的數(shù)據(jù)并不是只要一列數(shù)據(jù),如果我們想查詢一切數(shù)據(jù)該怎么辦呢?很簡略我們將查詢指定列的那段代碼去掉就能夠查詢悉數(shù)數(shù)據(jù)了,留意看我代碼的注釋。

我一向覺得關于查詢得到的數(shù)據(jù)的處理是一個難點,當你做好了app的界面,再加入網(wǎng)絡功用能夠讀取后臺數(shù)據(jù),根本上一個簡略的app就成了,接下來我們就說說怎么處理得到的數(shù)據(jù):


//獲取數(shù)據(jù) 
public void getData(){ 

    //獲取數(shù)據(jù) 
    BmobQuerybmobQuery = new BmobQuery(); 
    //不指定查找具體的哪一項則為查找悉數(shù)數(shù)據(jù) 
    // bmobQuery.addQueryKeys("title"); 
    bmobQuery.findObjects(new FindListener() { 
        @Override 
        public void done(Listlist, BmobException e) { 
        Toast.makeText(getContext(),"改寫成功"+list.size(),Toast.LENGTH_SHORT).show(); 

        /** 
        * 1.list為得到的數(shù)據(jù)源 
        * 2.得到的數(shù)據(jù)有三項 
        *  2.1 title 
        *  2.2 phone 
        *  2.3 describe 
        */ 
        //處理list中的數(shù)據(jù),for循環(huán)遍歷 
        for(FoundData data : list){ 
            mHashMap = new HashMap<>(); 
            mHashMap.put("title",data.getTitle()); 
            mHashMap.put("phone",data.getPhone()); 
            mHashMap.put("describe",data.getDescribe()); 
           } 
         List
> mapList = new ArrayList<>(); 
         mapList.add(mHashMap); 
         simpleAdapter = new SimpleAdapter(getContext(),mapList,R.layout.list_item,new String[]{"title","phone","describe"},new int[]{R.id.lf_title,R.id.lf_phone,R.id.lf_describe}); 
         //數(shù)據(jù)布局填充adapter,便是綁定數(shù)據(jù) 
         listView.setAdapter(simpleAdapter); 
         simpleAdapter.notifyDataSetChanged(); 
      } 
  }); 
}

我們要清楚的知道得到的數(shù)據(jù)是什么,這兒是一個list調(diào)集,調(diào)集中的數(shù)據(jù)是FoundData目標,而且含有三項數(shù)據(jù),看注釋,得到的數(shù)據(jù)是要給用戶看的,我們一般選在listview,處理數(shù)據(jù)的一個規(guī)范仍是要看我們挑選的適配器,這兒我挑選運用simpleAdapter,如果挑選運用了simpleAdapter我們就需求一個數(shù)據(jù)源,這個數(shù)據(jù)源是一個list調(diào)集,可是調(diào)集中的每一個數(shù)據(jù)又都是一個map調(diào)集,因而我們就需求將得到的list轉化成simpleAdapter需求的數(shù)據(jù)源,這兒我們處理的邏輯是先運用hashmap接納得到的list,再將其轉化成數(shù)據(jù)元素是map調(diào)集的list,留意看代碼完結。運轉過上述代碼的可能會發(fā)現(xiàn),上述代碼的完結好像有點問題,當我們在多增加一行數(shù)據(jù)的時分發(fā)現(xiàn)讀取到的數(shù)據(jù)卻只要一行,這是由于運用for循環(huán)遍歷的時分處理不妥,修正如下:


@Override 
public void done(Listlist, BmobException e) { 
    Toast.makeText(getContext(),"改寫成功"+list.size(),Toast.LENGTH_SHORT).show(); 
    List
> mapList = new ArrayList<>(); 
    /** 
     * 1.list為得到的數(shù)據(jù)源 
     * 2.得到的數(shù)據(jù)有三項 
     *  2.1 title 
     *  2.2 phone 
     *  2.3 describe 
     */     //處理list中的數(shù)據(jù),for循環(huán)遍歷     
    for(FoundData data : list){ 
        mHashMap = new HashMap<>(); 
        mHashMap.put("title",data.getTitle()); 
        mHashMap.put("phone",data.getPhone()); 
        mHashMap.put("describe",data.getDescribe()); 
        mapList.add(mHashMap); 
    }
}
當我們處理好以上邏輯,完結相應的界面設置我們在app上就能夠看到相應的數(shù)據(jù)了:



至此大公樂成,更多更具體的能夠仔細閱讀開發(fā)文檔,bmob讓你的開發(fā)愈加簡略方便!


免费视频观无码一区,国内精品一区二区无码,99精品无码视频在线播放,ā片国产在线播放