多包名打包以及集成“極光推送”的坑點(diǎn)(區(qū)別于“多渠道打包”)

最近經(jīng)常看到公司同事分享一些文章扬虚,偶然看到一篇講運(yùn)營的文章努隙,大概說運(yùn)營和技術(shù)是分不開的 balabala。

放幾張圖片辜昵,看下效果荸镊,直觀方便。

這三個(gè)app,安裝到同一臺機(jī)器上的是同一套代碼躬存,你敢信张惹?一般的分渠道打包,是同一套代碼岭洲,但是app也是同一個(gè)宛逗,只是里面渠道不一樣而已。我這個(gè)是app外觀和內(nèi)部全都不一樣钦椭。不信你看:

ASO技術(shù)拧额,一個(gè)能讓產(chǎn)品迅速火起來的東西,典型公司彪腔,某馬拉雅聽書(此處不評價(jià)侥锦,不撕逼,只說技術(shù))德挣。不多說恭垦,下面進(jìn)入技術(shù)分享階段。

先講一下“多渠道打包”和“多包名”打包的不同格嗅。

1.多渠道打包番挺,一般用在app在各大應(yīng)用市場分發(fā)統(tǒng)計(jì)。比如屯掖,360應(yīng)用平臺玄柏、應(yīng)用寶、豌豆莢等贴铜。
2.多包名打包粪摘,這個(gè)詞是我自己想出來的,實(shí)際上算是ASO的一部分绍坝,確定的說應(yīng)該是多id打包徘意,就是一套app的代碼打包成很多app這里就不糾結(jié)了。這個(gè)多用于ASO技術(shù)轩褐,因?yàn)榫W(wǎng)上沒什么教程椎咧,所以自己寫一份,以供大家參考把介。

因?yàn)?技術(shù)網(wǎng)上資料很多勤讽,所以不再贅述。

講一下2拗踢,先說原理:主要是根據(jù)applicationId的不同來實(shí)現(xiàn)的脚牍,因?yàn)楦鞔髴?yīng)用平臺都是根據(jù)applicationId來區(qū)分app的異同。

下面我們用productFlavors來實(shí)現(xiàn)“多包名打包”秒拔。

代碼如下:

productFlavors {
        yunweikang {
            // 每個(gè)環(huán)境包名不同
            applicationId "com.bill.first.yunweikang"
            // 動態(tài)添加 string.xml 字段莫矗;
            // 注意飒硅,這里是添加,在 string.xml 不能有這個(gè)字段作谚,會重名H洹!妹懒!
            resValue "string", "app_name", "云衛(wèi)康"
//            // 動態(tài)修改 常量 字段
            buildConfigField "String", "ENVIRONMENT", '"我的名字叫云衛(wèi)康"'
            // 修改 AndroidManifest.xml 里渠道變量
            manifestPlaceholders = [CHANNEL_VALUE: "yunweikang",
                                    JPUSH_CHANNEL: "yunweikang",
                                    app_icon     : "@mipmap/ic_yunweikang",
                                    appkey       : "4e3a7bbd9f3da0f9064e6580"]
        }
        liulvguangyin {
            applicationId "com.bill.second.liulvguangyin"
            // 注意雀监,這里是添加,在 string.xml 不能有這個(gè)字段眨唬,會重名;崆啊X腋汀瓦宜!
            resValue "string", "app_name", "六律光音"

            buildConfigField "String", "ENVIRONMENT", '"我的名字叫六律光音"'
            manifestPlaceholders = [CHANNEL_VALUE: "liulvguangyin",
                                    JPUSH_CHANNEL: "liulvguangyin",
                                    app_icon     : "@mipmap/ic_liulvguangyin",
                                    appkey       : "91022ae3a6df48ea523c70f8"]
        }
        jin {
            applicationId "com.bill.third.jin"
            // 注意,這里是添加岭妖,在 string.xml 不能有這個(gè)字段临庇,會重名!j腔拧假夺!
            resValue "string", "app_name", "金"

            buildConfigField "String", "ENVIRONMENT", '"我的名字叫金"'

            manifestPlaceholders = [CHANNEL_VALUE: "jinmaike",
                                    JPUSH_CHANNEL: "jinmaike"
                                    , app_icon   : "@mipmap/ic_jin",
                                    appkey       : "1c0c49844d4d2900cb7fd30b"]
        }

簡單對上面的代碼做一個(gè)解釋:
"yunweikang"這個(gè)算是定義了一個(gè)產(chǎn)品(在本文重點(diǎn)講的“多包名打包”中)。

"applicationId"這個(gè)是文章開頭講的原理中的重點(diǎn)斋攀,一個(gè)applicationId對應(yīng)了應(yīng)用市場中的一個(gè)產(chǎn)品已卷,即便是同一套代碼,只要applicationId不同淳蔼,那就有幾個(gè)applicationId就是幾個(gè)產(chǎn)品侧蘸。

resValue "string", "app_name", "云衛(wèi)康"這個(gè)是動態(tài)生成strings.xml中的文件

buildConfigField "String", "ENVIRONMENT", '"我的名字叫云衛(wèi)康"'這個(gè)是動態(tài)生成BuildConfig中的一個(gè)變量,一般情況下使用BuildConfig都是判斷是否是Debug模式肖方,例如BuildConfig.DEBUG闺魏。

**manifestPlaceholders **中定義的內(nèi)容未状,是方便在AndroidManifest.xml中引用俯画,如下代碼:

 <application
        android:name=".app.PackApplication"
        android:allowBackup="true"
        android:icon="${app_icon}"
        android:label="@string/app_name"
        android:roundIcon="${app_icon}"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

其中引用方式為${}

注意:別忘記在根節(jié)點(diǎn)引用下面一句話

xmlns:tools="http://schemas.android.com/tools"

下面再講一下*多包名打包引入極光推送的時(shí)候,文檔上的一些坑

1.起包名的時(shí)候司草,明明是“applicationId”嘛艰垂,tell me why
![
]
](http://upload-images.jianshu.io/upload_images/3866750-4c56e70cb4d8e82b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

2.注冊的時(shí)候,有些是真正的包名埋虹,有些是applicationId猜憎,極光推送團(tuán)隊(duì)把他們統(tǒng)稱為“包名”

![Uploading QQ截圖20171028105410_986493.png . . .]

總結(jié)一下:

雖然極光團(tuán)隊(duì)做的文檔有瑕疵搔课,不過也是情有可原胰柑,有谷歌的部分原因,畢竟剛開始的時(shí)候Eclipse上對于applicationId和packageName是沒區(qū)別的,兩者相同柬讨,到了AS上面才有了區(qū)分崩瓤。不過還是希望極光團(tuán)隊(duì)能把文檔修改一下,做到盡善盡美踩官。此處應(yīng)該艾特“極光推送團(tuán)隊(duì)”

本文講的主要講了:
1.Android中區(qū)別應(yīng)用的東西是:applicationId却桶。
2.gradle的應(yīng)用。
3.極光在多包名打包的時(shí)候蔗牡,文檔上的一些紕漏

其實(shí)講完發(fā)現(xiàn)并不是啥黑科技颖系,只不過作為一個(gè)開發(fā)來說,總要懂一些運(yùn)營的東西辣辩越,萬一以后轉(zhuǎn)管理層呢嘁扼,做人要有夢想,萬一實(shí)現(xiàn)了呢黔攒!

最后附上我寫的demo地址偷拔,喜歡的可以關(guān)注一波。
https://github.com/billllll1llllll/PackagePro

本文源地址:http://www.reibang.com/p/db8b0eb8827a

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末亏钩,一起剝皮案震驚了整個(gè)濱河市莲绰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌姑丑,老刑警劉巖蛤签,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異栅哀,居然都是意外死亡震肮,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進(jìn)店門留拾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來戳晌,“玉大人,你說我怎么就攤上這事痴柔÷儋耍” “怎么了?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵咳蔚,是天一觀的道長豪嚎。 經(jīng)常有香客問我,道長谈火,這世上最難降的妖魔是什么侈询? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮糯耍,結(jié)果婚禮上扔字,老公的妹妹穿的比我還像新娘囊嘉。我一直安慰自己,他們只是感情好革为,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布哗伯。 她就那樣靜靜地躺著,像睡著了一般篷角。 火紅的嫁衣襯著肌膚如雪焊刹。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天恳蹲,我揣著相機(jī)與錄音虐块,去河邊找鬼。 笑死嘉蕾,一個(gè)胖子當(dāng)著我的面吹牛贺奠,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播错忱,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼儡率,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了以清?” 一聲冷哼從身側(cè)響起儿普,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎掷倔,沒想到半個(gè)月后眉孩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡勒葱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年浪汪,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片凛虽。...
    茶點(diǎn)故事閱讀 38,599評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡死遭,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出凯旋,到底是詐尸還是另有隱情呀潭,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布瓦阐,位于F島的核電站蜗侈,受9級特大地震影響篷牌,放射性物質(zhì)發(fā)生泄漏睡蟋。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一枷颊、第九天 我趴在偏房一處隱蔽的房頂上張望戳杀。 院中可真熱鬧该面,春花似錦、人聲如沸信卡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽傍菇。三九已至猾瘸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間丢习,已是汗流浹背牵触。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留咐低,地道東北人揽思。 一個(gè)月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像见擦,于是被迫代替她去往敵國和親钉汗。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內(nèi)容