錕斤拷演算法
㈠ 為什麼 iOS 有那麼多優秀的開源組件,而 Android 反而很少呢
參考下面
要分清ios和android哪個開源組件多,看看github搜一下就一目瞭然
搜ios得到40938個項目
搜android得到112895個項目搜android得到112895個項目
作為最大的代碼託管網站,github的數據絕對能體現這兩個陣營的代碼開源熱度作為最大的代碼託管網站,github的數據絕對能體現這兩個陣營的代碼開源熱度
所以樓主的問題不成立
【錕斤拷的回答(33票)】:
----------謝邀,晚上來答了----------
做Android做了大約3年,做的雖然都是描繪Application層的小玩意,但是對整套生態圈應該感覺還是有點小了解;趕腳題主這個問題就有點黑安卓的意思,在看來,這樣的問題和「為什麼C語言要比java快」一樣沒有非常大的實際意義。所以感覺題主從主觀上在做安卓的時候受到了挫折,哈哈。
首先想說的是,Android上的開源組件並不少。
具體項目就不多說了,各位同仁也在分享,而且git和group上多的一筆,像UIL(Universal Image Loader)這種神器,還有SherlockActionBar(已經被歸入support v7,並且在最新版本的ADT中已經被強制填入),很強大的Zxing這個一維碼、二維碼通吃的好玩意;還有什麼pull-to-refresh的lib等等,同樣也希望在這個主題裡面能看到更多同僚的分享。
相比來說,就以一二維碼為例,zxing對iOS的支持就不怎麼樣,同事在搞iOS上的條碼掃描和生成的時候,費了很大的功夫,且效果不理想,條碼二維碼這個近幾年很火吧?可是iOS上沒有一套完整的東西,zbar什麼的,看了幾個,都不理想,或多或少有欠缺。
所以的觀點的話,就這件事上,是不同意樓主的觀點的,首先jdk&android都是開源的,所以不考慮難度和質量來說,更容易開發出來一套工具lib或者框架;其次Android有Google這個爹,本著Google精神,有很多人願意去分享自己的東西;再者們從實際開發來講,又或許是做的項目都很小、很白痴,沒有覺得Android的第三方開源小玩意少,很多玩意都能找到相關的解決辦法(現成代碼)。
於是想了解下題主在什麼契機下覺得Android的開源項目少呢?Android本身就是個開源項目呀。
再試圖研究研究其它同仁的看法:
回報的問題
細講講工資,姑且當大夥兒都跟一樣是給人打工的。現在的工資不比同組做iOS的人低,是做app開發的,感覺現在不知道誰傳出來的都有這樣一種誤解,(不算適配的情況下)android開發簡單,iOS開發困難。難道就因為oc入門比java削微復雜點么?或者說以為會點java就隨隨便便地說Android一樣,都能搞?別逗了。Android裡面玩法很多,跑到實際運營上就能給產品提供各種各樣的玩法,像運營商定製,流氓功能(當然不提倡),都是能給公司和團隊帶來其它方面的獲益的;就拿互聯網app來講,關鍵網路層代碼用NDK寫好,UI實現Android和iOS同樣都是隨便交給一個成手就能搞定,又哪裡來的優越感?在靈活運用23甚至更多種設計模式,通讀並精通演算法導論和架構之美後,開發語言難道還有不同之處?這個是覺得很不滿的;
會java並不代表會安卓,同樣,會用java更不代表懂java,別用從不知道哪裡看到的資料說java爛,dalvik卡,講純技術,為何oc不做跨平台?
如果是做Android BSP這種相關的工程師,也可以叫Android工程師,這種價錢就不用多說了吧,不是和做app一個級別的,至少在北方是。
其次是廣告收入,不要再看個排名就說iOS收入多多牛逼,應用內支付收益多少多少了好么?前兩天一個小伙計拿倆圖片當殺毒軟體掙好幾萬的事情當真是裝傻屏蔽了么?放垃圾廣告山寨app這種事App store會讓上么?要是邢山虎拿著MT來噴一點都不帶還嘴,有多少人一個自己運營的APP都沒搞過就開始大談廣告收入和排名演算法了?認為大部分人花幾天做一個app扔在Google play上,一次性也不用運營,咱們先不要把自己考慮成拯救世界的人,一個月掙個幾百刀廣告費不夠諸位加個油吃個飯的嘛?萬一點子投機了當真辭了工作去36kr覓個投資也好。
說的都是以這種屌絲來說的大實話,沒接觸過在BAT中做的經理。
碎片化的問題
這個的確是一個大問題且無法迴避,硬要牽扯的話,和所謂「開源」項目也有點關系:
不夠精:某些開源組件在某些特定機型上會報錯,因為其可能改了原生的sdk;
不夠多:現在對於Android程序員來講「兼容到2.1(更有甚者到1.6)」已經和「兼容到IE6」一個級別地讓人痛苦不堪;這也導致了最起碼就有時候不願意寫一個庫給小組用,要做的東西特別多,很惡心;
不夠全:iOS其實一直貫徹的都是某些種特定的風格,至少和Android相比基本就可以看成只有一兩種;可以針對一兩種來做一套工具框架,但是肯定無法為未知種類做點什麼(這里主要還是指UI,因為畢竟app開發的主要工作量還是在UI上)
生態圈的問題
一個是市場佔有率,有說Android市場佔有率佔有高,開源項目就應該多的,這種純屬敷衍答案,此處不表;其次是所說的應用商店,換句話說是應用個數,再換個詞兒叫有效應用個數,這個就不用多說了吧,上文也有提到,像這樣就圖個廣告費還個貸款的人大有人在,做做rom放點系統apk流氓捆綁的也大有人在,覺得不爽的同僚也沒必要噴,誰不為了活著;從審核機制來看,忘了在哪個資料上看到了,iOS幫開發者做好了XXX事情,是為了讓他們開發出更好、更優良的點子;而做Android的,甚至是Android本身,仍然在摸索。
突然想到一個,也是經常碰見的,不知道cocoachina什麼的iOS論壇怎麼樣,反正Android這邊網上資料都爛了,各種瞎胡轉載,不要求轉載、爬蟲的時候署名了,好歹把代碼格式給帖過來;格式沒有也沒關系,能不能把代碼給帖全了
反正在國內論壇上的時候,至少網路的時候,經常會心煩氣躁,不知道題主是不是在搜某個實現的時候也碰見了這個問題?還是去stackoverflow上看看吧。
個人做Android APP開發,卻用OSX,包括最近開始看iOS相關的開發內容,有時候拿著手裡的iPhone玩一玩,靜音、音量、home、power鍵都是剛需,玩游戲的時候不用像nexus一樣怕碰到虛擬鍵,承認蘋果做的非常非常棒,但是決不承認安卓比蘋果差,實在沒有可比性。
個人理解題主說的開源組件是所謂的開源工程。其實如果說到開源,真的就和錢啥的扯不上關系了。生態,再過幾年等4.0以下的都滅絕了,就不會說生態爛了其實Android有很多非常不錯的開源工程,這里說的開源工程是指那種作為依賴工程導入的的工程,下面介紹一下比較知名的android開源項目,都是造好的輪子,免去了很多麻煩
android-pulltorefresh 一個強大的拉動刷新開源項目,支持各種控制項下拉刷新
ListView、ViewPager、WevView、ExpandableListView、GridView、(Horizontal
)ScrollView、Fragment上下左右拉動刷新,比下面johannilsson那個只支持ListView的強大的多。並且他實現的下拉刷新ListView在item不足一屏情況下也不會顯示刷新提示,體驗更好。
ActionBarSherlock 為Android所有版本提供統一的ActionBar,解決4.0以下ActionBar的適配問題
MenuDrawer 滑出式菜單,通過拖動屏幕邊緣滑出菜單,支持屏幕上下左右劃出,支持當前View處於上下層,支持Windows邊緣、ListView邊緣、ViewPager變化劃出菜單等。
Android-ViewPagerIndicator 配合ViewPager使用的Indicator,支持各種位置和樣式
SwipeBackLayout 左右或向上滑動返回的Activity
這個在知乎的手機app裡面有,說的是安卓版,蘋果的沒用過,向右滑動屏幕退出當前頁面就是這個玩意兒做的
還有一個非同步圖片載入的universal image loader,也是很猛的...
題主要找的話可以找到很多,只是列舉一些用的比較多的
㈡ 為什麼 iOS 有那麼多優秀的開源組件,而 Android 反而很少
要分清ios和android哪個開源組件多,看看github搜一下就一目瞭然
搜ios得到40938個項目
搜android得到112895個項目搜android得到112895個項目
作為最大的代碼託管網站,github的數據絕對能體現這兩個陣營的代碼開源熱度作為最大的代碼託管網站,github的數據絕對能體現這兩個陣營的代碼開源熱度
所以樓主的問題不成立
【錕斤拷的回答(33票)】:
----------謝邀,晚上來答了----------
我做Android做了大約3年,做的雖然都是描繪Application層的小玩意,但是對整套生態圈應該感覺還是有點小了解;趕腳題主這個問題就有點黑安卓的意思,在我看來,這樣的問題和「為什麼C語言要比JAVA快」一樣沒有非常大的實際意義。所以感覺題主從主觀上在做安卓的時候受到了挫折,哈哈。
首先我想說的是,Android上的開源組件並不少。
具體項目我就不多說了,各位同仁也在分享,而且git和group上多的一筆,像UIL(Universal Image Loader)這種神器,還有SherlockActionBar(已經被歸入support v7,並且在最新版本的ADT中已經被強制填入),很強大的Zxing這個一維碼、二維碼通吃的好玩意;還有什麼pull-to-refresh的lib等等,同樣我也希望在這個主題裡面能看到更多同僚的分享。
相比來說,就以一二維碼為例,zxing對iOS的支持就不怎麼樣,同事在搞iOS上的條碼掃描和生成的時候,費了很大的功夫,且效果不理想,條碼二維碼這個近幾年很火吧?可是iOS上沒有一套完整的東西,zbar什麼的,看了幾個,都不理想,或多或少有欠缺。
所以我的觀點的話,就這件事上,我是不同意樓主的觀點的,首先jdk&android都是開源的,所以不考慮難度和質量來說,更容易開發出來一套工具lib或者框架;其次Android有Google這個爹,本著Google精神,有很多人願意去分享自己的東西;再者我們從實際開發來講,又或許是我做的項目都很小、很白痴,我沒有覺得Android的第三方開源小玩意少,很多玩意都能找到相關的解決辦法(現成代碼)。
於是我想了解下題主在什麼契機下覺得Android的開源項目少呢?Android本身就是個開源項目呀。
我再試圖研究研究其它同仁的看法:
回報的問題
細講講工資,我姑且當大夥兒都跟我一樣是給人打工的。我現在的工資不比同組做iOS的人低,我是做app開發的,感覺現在不知道誰傳出來的都有這樣一種誤解,(不算適配的情況下)android開發簡單,iOS開發困難。難道就因為oc入門比java削微復雜點么?或者說你以為會點java就隨隨便便地說Android一樣,都能搞?別逗了。Android裡面玩法很多,跑到實際運營上就能給產品提供各種各樣的玩法,像運營商定製,流氓功能(當然我們不提倡),都是能給公司和團隊帶來其它方面的獲益的;就拿互聯網app來講,關鍵網路層代碼用NDK寫好,UI實現Android和iOS同樣都是隨便交給一個成手就能搞定,又哪裡來的優越感?在你靈活運用23甚至更多種設計模式,通讀並精通演算法導論和架構之美後,開發語言難道還有不同之處?這個是我覺得很不滿的;
會java並不代表你會安卓,同樣,你會用java更不代表你懂java,別用你從不知道哪裡看到的資料說java爛,dalvik卡,我們講純技術,為何oc不做跨平台?
如果是做Android BSP這種相關的工程師,也可以叫Android工程師,這種價錢我就不用多說了吧,不是和做app一個級別的,至少在北方是。
其次是廣告收入,你們不要再看個排名就說iOS收入多多牛逼,應用內支付收益多少多少了好么?前兩天一個小伙計拿倆圖片當殺毒軟體掙好幾萬的事情你們當真是裝傻屏蔽了么?放垃圾廣告山寨app這種事App store會讓你上么?你要是邢山虎拿著我叫MT來噴我我一點都不帶還嘴,有多少人一個自己運營的APP都沒搞過就開始大談廣告收入和排名演算法了?我認為大部分人花幾天做一個app扔在Google play上,一次性也不用運營,咱們先不要把自己考慮成拯救世界的人,一個月掙個幾百刀廣告費不夠諸位加個油吃個飯的嘛?萬一點子投機了當真辭了工作去36kr覓個投資也好。
我說的都是以我這種屌絲來說的大實話,沒接觸過在BAT中做的經理。
碎片化的問題
這個的確是一個大問題且無法迴避,硬要牽扯的話,和所謂「開源」項目也有點關系:
不夠精:某些開源組件在某些特定機型上會報錯,因為其可能改了原生的sdk;
不夠多:現在對於Android程序員來講「兼容到2.1(更有甚者到1.6)」已經和「兼容到IE6」一個級別地讓人痛苦不堪;這也導致了最起碼我就有時候不願意寫一個庫給小組用,你要做的東西特別多,很惡心;
不夠全:iOS其實一直貫徹的都是某些種特定的風格,至少和Android相比基本就可以看成只有一兩種;我可以針對你的一兩種來做一套工具框架,但是我肯定無法為你的未知種類做點什麼(這里主要還是指UI,因為畢竟app開發的主要工作量還是在UI上)
生態圈的問題
一個是市場佔有率,有說Android市場佔有率佔有高,開源項目就應該多的,這種純屬敷衍答案,此處不表;其次是我們所說的應用商店,換句話說是應用個數,再換個詞兒叫有效應用個數,這個就不用我多說了吧,上文也有提到,像我這樣就圖個廣告費還個貸款的人大有人在,做做rom放點系統apk流氓捆綁的也大有人在,覺得不爽的同僚也沒必要噴我,誰不為了活著;從審核機制來看,我忘了在哪個資料上看到了,iOS幫開發者做好了XXX事情,是為了讓他們開發出更好、更優良的點子;而我們做Android的,甚至是Android本身,仍然在摸索。
我突然想到一個,也是我經常碰見的,不知道cocoachina什麼的iOS論壇怎麼樣,反正Android這邊網上資料都爛了,各種瞎胡轉載,我們不要求你們轉載、爬蟲的時候署名了,你好歹把代碼格式給帖過來;你格式沒有也沒關系,你能不能把代碼給帖全了?
反正我在國內論壇上的時候,至少網路的時候,經常會心煩氣躁,不知道題主是不是在搜某個實現的時候也碰見了這個問題?還是去stackoverflow上看看吧。
我個人做Android APP開發,卻用OSX,包括最近開始看iOS相關的開發內容,有時候拿著手裡的iPhone玩一玩,靜音、音量、home、power鍵都是我的剛需,玩游戲的時候不用像nexus一樣怕碰到虛擬鍵,我承認蘋果做的非常非常棒,但是我決不承認安卓比蘋果差,實在沒有可比性。
【萬宵的回答(13票)】:
瀉葯
個人理解題主說的開源組件是所謂的開源工程。其實如果說到開源,真的就和錢啥的扯不上關系了。生態,再過幾年等4.0以下的都滅絕了,你們就不會說生態爛了其實Android有很多非常不錯的開源工程,我這里說的開源工程是指那種作為依賴工程導入的的工程,下面介紹一下比較知名的android開源項目,都是造好的輪子,免去了我們很多麻煩
android-pulltorefresh 一個強大的拉動刷新開源項目,支持各種控制項下拉刷新
ListView、ViewPager、WevView、ExpandableListView、GridView、(Horizontal
)ScrollView、Fragment上下左右拉動刷新,比下面johannilsson那個只支持ListView的強大的多。並且他實現的下拉刷新ListView在item不足一屏情況下也不會顯示刷新提示,體驗更好。
項目地址:https://github.com/chrisbanes/Android-PullToRefresh
ActionBarSherlock 為Android所有版本提供統一的ActionBar,解決4.0以下ActionBar的適配問題
項目地址:https://github.com/JakeWharton/ActionBarSherlock
MenuDrawer 滑出式菜單,通過拖動屏幕邊緣滑出菜單,支持屏幕上下左右劃出,支持當前View處於上下層,支持Windows邊緣、ListView邊緣、ViewPager變化劃出菜單等。
項目地址:https://github.com/SimonVT/android-menudrawer
Android-ViewPagerIndicator 配合ViewPager使用的Indicator,支持各種位置和樣式
項目地址:https://github.com/JakeWharton/Android-ViewPagerIndicator
SwipeBackLayout 左右或向上滑動返回的Activity
項目地址:https://github.com/Issacw0ng/SwipeBackLayout
這個在知乎的手機app裡面有,我說的是安卓版,蘋果的沒用過,向右滑動屏幕退出當前頁面就是這個玩意兒做的
還有一個非同步圖片載入的universal image loader,也是很猛的...
題主要找的話可以找到很多,我只是列舉一些用的比較多的
㈢ 為什麼 iOS 有那麼多優秀的開源組件,而 Android 反而很少
要分清ios和android哪個開源組件多,看看github搜一下就一目瞭然
搜ios得到40938個項目
搜android得到112895個項目搜android得到112895個項目
作為最大的代碼託管網站,github的數據絕對能體現這兩個陣營的代碼開源熱度作為最大的代碼託管網站,github的數據絕對能體現這兩個陣營的代碼開源熱度
所以樓主的問題不成立
【錕斤拷的回答(33票)】:
----------謝邀,晚上來答了----------
我做Android做了大約3年,做的雖然都是描繪Application層的小玩意,但是對整套生態圈應該感覺還是有點小了解;趕腳題主這個問題就有點黑安卓的意思,在我看來,這樣的問題和「為什麼C語言要比JAVA快」一樣沒有非常大的實際意義。所以感覺題主從主觀上在做安卓的時候受到了挫折,哈哈。
首先我想說的是,Android上的開源組件並不少。
具體項目我就不多說了,各位同仁也在分享,而且git和group上多的一筆,像UIL(Universal Image Loader)這種神器,還有SherlockActionBar(已經被歸入support v7,並且在最新版本的ADT中已經被強制填入),很強大的Zxing這個一維碼、二維碼通吃的好玩意;還有什麼pull-to-refresh的lib等等,同樣我也希望在這個主題裡面能看到更多同僚的分享。
相比來說,就以一二維碼為例,zxing對iOS的支持就不怎麼樣,同事在搞iOS上的條碼掃描和生成的時候,費了很大的功夫,且效果不理想,條碼二維碼這個近幾年很火吧?可是iOS上沒有一套完整的東西,zbar什麼的,看了幾個,都不理想,或多或少有欠缺。
所以我的觀點的話,就這件事上,我是不同意樓主的觀點的,首先jdk&android都是開源的,所以不考慮難度和質量來說,更容易開發出來一套工具lib或者框架;其次Android有Google這個爹,本著Google精神,有很多人願意去分享自己的東西;再者我們從實際開發來講,又或許是我做的項目都很小、很白痴,我沒有覺得Android的第三方開源小玩意少,很多玩意都能找到相關的解決辦法(現成代碼)。
於是我想了解下題主在什麼契機下覺得Android的開源項目少呢?Android本身就是個開源項目呀。
我再試圖研究研究其它同仁的看法:
回報的問題
細講講工資,我姑且當大夥兒都跟我一樣是給人打工的。我現在的工資不比同組做iOS的人低,我是做app開發的,感覺現在不知道誰傳出來的都有這樣一種誤解,(不算適配的情況下)android開發簡單,iOS開發困難。難道就因為oc入門比java削微復雜點么?或者說你以為會點java就隨隨便便地說Android一樣,都能搞?別逗了。Android裡面玩法很多,跑到實際運營上就能給產品提供各種各樣的玩法,像運營商定製,流氓功能(當然我們不提倡),都是能給公司和團隊帶來其它方面的獲益的;就拿互聯網app來講,關鍵網路層代碼用NDK寫好,UI實現Android和iOS同樣都是隨便交給一個成手就能搞定,又哪裡來的優越感?在你靈活運用23甚至更多種設計模式,通讀並精通演算法導論和架構之美後,開發語言難道還有不同之處?這個是我覺得很不滿的;
會java並不代表你會安卓,同樣,你會用java更不代表你懂java,別用你從不知道哪裡看到的資料說java爛,dalvik卡,我們講純技術,為何oc不做跨平台?
如果是做Android BSP這種相關的工程師,也可以叫Android工程師,這種價錢我就不用多說了吧,不是和做app一個級別的,至少在北方是。
其次是廣告收入,你們不要再看個排名就說iOS收入多多牛逼,應用內支付收益多少多少了好么?前兩天一個小伙計拿倆圖片當殺毒軟體掙好幾萬的事情你們當真是裝傻屏蔽了么?放垃圾廣告山寨app這種事App store會讓你上么?你要是邢山虎拿著我叫MT來噴我我一點都不帶還嘴,有多少人一個自己運營的APP都沒搞過就開始大談廣告收入和排名演算法了?我認為大部分人花幾天做一個app扔在Google play上,一次性也不用運營,咱們先不要把自己考慮成拯救世界的人,一個月掙個幾百刀廣告費不夠諸位加個油吃個飯的嘛?萬一點子投機了當真辭了工作去36kr覓個投資也好。
我說的都是以我這種屌絲來說的大實話,沒接觸過在BAT中做的經理。
碎片化的問題
這個的確是一個大問題且無法迴避,硬要牽扯的話,和所謂「開源」項目也有點關系:
不夠精:某些開源組件在某些特定機型上會報錯,因為其可能改了原生的sdk;
不夠多:現在對於Android程序員來講「兼容到2.1(更有甚者到1.6)」已經和「兼容到IE6」一個級別地讓人痛苦不堪;這也導致了最起碼我就有時候不願意寫一個庫給小組用,你要做的東西特別多,很惡心;
不夠全:iOS其實一直貫徹的都是某些種特定的風格,至少和Android相比基本就可以看成只有一兩種;我可以針對你的一兩種來做一套工具框架,但是我肯定無法為你的未知種類做點什麼(這里主要還是指UI,因為畢竟app開發的主要工作量還是在UI上)
生態圈的問題
一個是市場佔有率,有說Android市場佔有率佔有高,開源項目就應該多的,這種純屬敷衍答案,此處不表;其次是我們所說的應用商店,換句話說是應用個數,再換個詞兒叫有效應用個數,這個就不用我多說了吧,上文也有提到,像我這樣就圖個廣告費還個貸款的人大有人在,做做rom放點系統apk流氓捆綁的也大有人在,覺得不爽的同僚也沒必要噴我,誰不為了活著;從審核機制來看,我忘了在哪個資料上看到了,iOS幫開發者做好了XXX事情,是為了讓他們開發出更好、更優良的點子;而我們做Android的,甚至是Android本身,仍然在摸索。
我突然想到一個,也是我經常碰見的,不知道cocoachina什麼的iOS論壇怎麼樣,反正Android這邊網上資料都爛了,各種瞎胡轉載,我們不要求你們轉載、爬蟲的時候署名了,你好歹把代碼格式給帖過來;你格式沒有也沒關系,你能不能把代碼給帖全了?
反正我在國內論壇上的時候,至少網路的時候,經常會心煩氣躁,不知道題主是不是在搜某個實現的時候也碰見了這個問題?還是去stackoverflow上看看吧。
我個人做Android APP開發,卻用OSX,包括最近開始看iOS相關的開發內容,有時候拿著手裡的iPhone玩一玩,靜音、音量、home、power鍵都是我的剛需,玩游戲的時候不用像nexus一樣怕碰到虛擬鍵,我承認蘋果做的非常非常棒,但是我決不承認安卓比蘋果差,實在沒有可比性。
【萬宵的回答(13票)】:
瀉葯
個人理解題主說的開源組件是所謂的開源工程。其實如果說到開源,真的就和錢啥的扯不上關系了。生態,再過幾年等4.0以下的都滅絕了,你們就不會說生態爛了其實Android有很多非常不錯的開源工程,我這里說的開源工程是指那種作為依賴工程導入的的工程,下面介紹一下比較知名的android開源項目,都是造好的輪子,免去了我們很多麻煩
android-pulltorefresh 一個強大的拉動刷新開源項目,支持各種控制項下拉刷新
ListView、ViewPager、WevView、ExpandableListView、GridView、(Horizontal
)ScrollView、Fragment上下左右拉動刷新,比下面johannilsson那個只支持ListView的強大的多。並且他實現的下拉刷新ListView在item不足一屏情況下也不會顯示刷新提示,體驗更好。
項目地址:https://github.com/chrisbanes/Android-PullToRefresh
ActionBarSherlock 為Android所有版本提供統一的ActionBar,解決4.0以下ActionBar的適配問題
項目地址:https://github.com/JakeWharton/ActionBarSherlock
MenuDrawer 滑出式菜單,通過拖動屏幕邊緣滑出菜單,支持屏幕上下左右劃出,支持當前View處於上下層,支持Windows邊緣、ListView邊緣、ViewPager變化劃出菜單等。
㈣ 為什麼 iOS 有那麼多優秀的開源組件,而 Android 反而很少
參考下面 要分清ios和android哪個開源組件多,看看github搜一下就一目瞭然 搜ios得到40938個項目 搜android得到112895個項目搜android得到112895個項目 作為最大的代碼託管網站,github的數據絕對能體現這兩個陣營的代碼開源熱度作為最大的代碼託管網站,github的數據絕對能體現這兩個陣營的代碼開源熱度 所以樓主的問題不成立 【錕斤拷的回答(33票)】: ----------謝邀,晚上來答了---------- 做Android做了大約3年,做的雖然都是描繪Application層的小玩意,但是對整套生態圈應該感覺還是有點小了解;趕腳題主這個問題就有點黑安卓的意思,在看來,這樣的問題和「為什麼C語言要比JAVA快」一樣沒有非常大的實際意義。所以感覺題主從主觀上在做安卓的時候受到了挫折,哈哈。 首先想說的是,Android上的開源組件並不少。 具體項目就不多說了,各位同仁也在分享,而且git和group上多的一筆,像UIL(Universal Image Loader)這種神器,還有SherlockActionBar(已經被歸入support v7,並且在最新版本的ADT中已經被強制填入),很強大的Zxing這個一維碼、二維碼通吃的好玩意;還有什麼pull-to-refresh的lib等等,同樣也希望在這個主題裡面能看到更多同僚的分享。 相比來說,就以一二維碼為例,zxing對iOS的支持就不怎麼樣,同事在搞iOS上的條碼掃描和生成的時候,費了很大的功夫,且效果不理想,條碼二維碼這個近幾年很火吧?可是iOS上沒有一套完整的東西,zbar什麼的,看了幾個,都不理想,或多或少有欠缺。 所以的觀點的話,就這件事上,是不同意樓主的觀點的,首先jdk&android都是開源的,所以不考慮難度和質量來說,更容易開發出來一套工具lib或者框架;其次Android有Google這個爹,本著Google精神,有很多人願意去分享自己的東西;再者們從實際開發來講,又或許是做的項目都很小、很白痴,沒有覺得Android的第三方開源小玩意少,很多玩意都能找到相關的解決辦法(現成代碼)。 於是想了解下題主在什麼契機下覺得Android的開源項目少呢?Android本身就是個開源項目呀。 再試圖研究研究其它同仁的看法: 回報的問題 細講講工資,姑且當大夥兒都跟一樣是給人打工的。現在的工資不比同組做iOS的人低,是做app開發的,感覺現在不知道誰傳出來的都有這樣一種誤解,(不算適配的情況下)android開發簡單,iOS開發困難。難道就因為oc入門比java削微復雜點么?或者說以為會點java就隨隨便便地說Android一樣,都能搞?別逗了。Android裡面玩法很多,跑到實際運營上就能給產品提供各種各樣的玩法,像運營商定製,流氓功能(當然不提倡),都是能給公司和團隊帶來其它方面的獲益的;就拿互聯網app來講,關鍵網路層代碼用NDK寫好,UI實現Android和iOS同樣都是隨便交給一個成手就能搞定,又哪裡來的優越感?在靈活運用23甚至更多種設計模式,通讀並精通演算法導論和架構之美後,開發語言難道還有不同之處?這個是覺得很不滿的; 會java並不代表會安卓,同樣,會用java更不代表懂java,別用從不知道哪裡看到的資料說java爛,dalvik卡,講純技術,為何oc不做跨平台? 如果是做Android BSP這種相關的工程師,也可以叫Android工程師,這種價錢就不用多說了吧,不是和做app一個級別的,至少在北方是。 其次是廣告收入,不要再看個排名就說iOS收入多多牛逼,應用內支付收益多少多少了好么?前兩天一個小伙計拿倆圖片當殺毒軟體掙好幾萬的事情當真是裝傻屏蔽了么?放垃圾廣告山寨app這種事App store會讓上么?要是邢山虎拿著MT來噴一點都不帶還嘴,有多少人一個自己運營的APP都沒搞過就開始大談廣告收入和排名演算法了?認為大部分人花幾天做一個app扔在Google play上,一次性也不用運營,咱們先不要把自己考慮成拯救世界的人,一個月掙個幾百刀廣告費不夠諸位加個油吃個飯的嘛?萬一點子投機了當真辭了工作去36kr覓個投資也好。 說的都是以這種屌絲來說的大實話,沒接觸過在BAT中做的經理。 碎片化的問題 這個的確是一個大問題且無法迴避,硬要牽扯的話,和所謂「開源」項目也有點關系: 不夠精:某些開源組件在某些特定機型上會報錯,因為其可能改了原生的sdk; 不夠多:現在對於Android程序員來講「兼容到2.1(更有甚者到1.6)」已經和「兼容到IE6」一個級別地讓人痛苦不堪;這也導致了最起碼就有時候不願意寫一個庫給小組用,要做的東西特別多,很惡心; 不夠全:iOS其實一直貫徹的都是某些種特定的風格,至少和Android相比基本就可以看成只有一兩種;可以針對一兩種來做一套工具框架,但是肯定無法為未知種類做點什麼(這里主要還是指UI,因為畢竟app開發的主要工作量還是在UI上) 生態圈的問題 一個是市場佔有率,有說Android市場佔有率佔有高,開源項目就應該多的,這種純屬敷衍答案,此處不表;其次是所說的應用商店,換句話說是應用個數,再換個詞兒叫有效應用個數,這個就不用多說了吧,上文也有提到,像這樣就圖個廣告費還個貸款的人大有人在,做做rom放點系統apk流氓捆綁的也大有人在,覺得不爽的同僚也沒必要噴,誰不為了活著;從審核機制來看,忘了在哪個資料上看到了,iOS幫開發者做好了XXX事情,是為了讓他們開發出更好、更優良的點子;而做Android的,甚至是Android本身,仍然在摸索。 突然想到一個,也是經常碰見的,不知道cocoachina什麼的iOS論壇怎麼樣,反正Android這邊網上資料都爛了,各種瞎胡轉載,不要求轉載、爬蟲的時候署名了,好歹把代碼格式給帖過來;格式沒有也沒關系,能不能把代碼給帖全了 反正在國內論壇上的時候,至少網路的時候,經常會心煩氣躁,不知道題主是不是在搜某個實現的時候也碰見了這個問題?還是去stackoverflow上看看吧。 個人做Android APP開發,卻用OSX,包括最近開始看iOS相關的開發內容,有時候拿著手裡的iPhone玩一玩,靜音、音量、home、power鍵都是剛需,玩游戲的時候不用像nexus一樣怕碰到虛擬鍵,承認蘋果做的非常非常棒,但是決不承認安卓比蘋果差,實在沒有可比性。 個人理解題主說的開源組件是所謂的開源工程。其實如果說到開源,真的就和錢啥的扯不上關系了。生態,再過幾年等4.0以下的都滅絕了,就不會說生態爛了其實Android有很多非常不錯的開源工程,這里說的開源工程是指那種作為依賴工程導入的的工程,下面介紹一下比較知名的android開源項目,都是造好的輪子,免去了很多麻煩 android-pulltorefresh 一個強大的拉動刷新開源項目,支持各種控制項下拉刷新 ListView、ViewPager、WevView、ExpandableListView、GridView、(Horizontal )ScrollView、Fragment上下左右拉動刷新,比下面johannilsson那個只支持ListView的強大的多。並且他實現的下拉刷新ListView在item不足一屏情況下也不會顯示刷新提示,體驗更好。 ActionBarSherlock 為Android所有版本提供統一的ActionBar,解決4.0以下ActionBar的適配問題 MenuDrawer 滑出式菜單,通過拖動屏幕邊緣滑出菜單,支持屏幕上下左右劃出,支持當前View處於上下層,支持Windows邊緣、ListView邊緣、ViewPager變化劃出菜單等。 Android-ViewPagerIndicator 配合ViewPager使用的Indicator,支持各種位置和樣式 SwipeBackLayout 左右或向上滑動返回的Activity 這個在知乎的手機app裡面有,說的是安卓版,蘋果的沒用過,向右滑動屏幕退出當前頁面就是這個玩意兒做的 還有一個非同步圖片載入的universal image loader,也是很猛的... 題主要找的話可以找到很多,只是列舉一些用的比較多的