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

不需要搭后臺(tái),通過Bmob輕松制作一個(gè)Android APP

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

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

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

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

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

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

是不是很心動(dòng)啊,廢話不多說,我們直接開端吧!



創(chuàng)立運(yùn)用

首要你需求注冊(cè)一個(gè)Bmob賬號(hào),注冊(cè)成功之后頁面是這樣的:


你的應(yīng)該是空白的,點(diǎn)擊創(chuàng)立運(yùn)用:




按操作進(jìn)行即可,這兒我們挑選開發(fā)版免費(fèi)的。當(dāng)你創(chuàng)立完運(yùn)用,點(diǎn)擊所創(chuàng)立的運(yùn)用:



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



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





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



主動(dòng)導(dǎo)入

在 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

在你的運(yùn)用程序發(fā)動(dòng)的 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); 
         //供給以下兩種辦法進(jìn)行初始化操作: 

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

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

當(dāng)你初始化完結(jié)而且上述過程都無誤的情況下你就能運(yùn)用bmob啦,我們來驗(yàn)證一下:



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



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


我覺得bmob的一個(gè)中心就是數(shù)據(jù)的運(yùn)用,就是上傳數(shù)據(jù),讀取數(shù)據(jù),也注重說一下這點(diǎn),首要我們創(chuàng)立一個(gè)自己需求的數(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ù)項(xiàng)目需求創(chuàng)立了一個(gè)FoundData數(shù)據(jù)表,我們創(chuàng)立數(shù)據(jù)表的時(shí)分記住要承繼自Bmobject這個(gè)類,然后界說相關(guān)特點(diǎn),增加set與get辦法,在我們的項(xiàng)目中成功創(chuàng)立數(shù)據(jù)表之后我們需求在bmob后端操控太增加數(shù)據(jù)表與之構(gòu)成對(duì)應(yīng):



挑選增加表:



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



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



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



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



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



點(diǎn)開開發(fā)文檔:



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



找到查詢指定列



這兒給我們供給一個(gè)查詢指定列的辦法,我們看在項(xiàng)目中的具體運(yùn)用:


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

        //獲取數(shù)據(jù)  
        BmobQuerybmobQuery = new BmobQuery();  
        //不指定查找具體的哪一項(xiàng)則為查找悉數(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ù)了,留意看我代碼的注釋。

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


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

    //獲取數(shù)據(jù) 
    BmobQuerybmobQuery = new BmobQuery(); 
    //不指定查找具體的哪一項(xiàng)則為查找悉數(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ù)有三項(xiàng) 
        *  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ù)是什么,這兒是一個(gè)list調(diào)集,調(diào)集中的數(shù)據(jù)是FoundData目標(biāo),而且含有三項(xiàng)數(shù)據(jù),看注釋,得到的數(shù)據(jù)是要給用戶看的,我們一般選在listview,處理數(shù)據(jù)的一個(gè)規(guī)范仍是要看我們挑選的適配器,這兒我挑選運(yùn)用simpleAdapter,如果挑選運(yùn)用了simpleAdapter我們就需求一個(gè)數(shù)據(jù)源,這個(gè)數(shù)據(jù)源是一個(gè)list調(diào)集,可是調(diào)集中的每一個(gè)數(shù)據(jù)又都是一個(gè)map調(diào)集,因而我們就需求將得到的list轉(zhuǎn)化成simpleAdapter需求的數(shù)據(jù)源,這兒我們處理的邏輯是先運(yùn)用hashmap接納得到的list,再將其轉(zhuǎn)化成數(shù)據(jù)元素是map調(diào)集的list,留意看代碼完結(jié)。運(yùn)轉(zhuǎn)過上述代碼的可能會(huì)發(fā)現(xiàn),上述代碼的完結(jié)好像有點(diǎn)問題,當(dāng)我們?cè)诙嘣黾右恍袛?shù)據(jù)的時(shí)分發(fā)現(xiàn)讀取到的數(shù)據(jù)卻只要一行,這是由于運(yùn)用for循環(huán)遍歷的時(shí)分處理不妥,修正如下:


@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ù)有三項(xiàng) 
     *  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); 
    }
}
當(dāng)我們處理好以上邏輯,完結(jié)相應(yīng)的界面設(shè)置我們?cè)赼pp上就能夠看到相應(yīng)的數(shù)據(jù)了:



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


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