編輯:Android開發實例
最近在寫一個新浪微博團購分享的手機客戶端(感興趣的朋友可以到這裡下載http://sharetuan.sinaapp.com/ ,是J2ME版本的,以後我基本就不會進行J2ME版本的開發,注意精力放在Android上了),因此博客更新慢了點。不過,我會盡量保證一周至少更新一次。
本次講講如何使用Google的SVN來管理我們的Android開源項目。
1. 訪問http://code.google.com/hosting/
2. 用Google帳戶登錄登錄,並點擊左下角的Create a new project,你會看到如下界面:
3. 填入相應的信息如下:
4. 這裡簡單介紹下Google SVN上列出的各種開源協議:
Apache License 2
Apache License是著名的非盈利開源組織Apache采用的協議。該協議和BSD類似,同樣鼓勵代碼共享和尊重原作者的著作權,同樣允許代碼修改,再發布(作為開源或商業軟件)。需要滿足的條件也和BSD類似:
· 需要給代碼的用戶一份Apache License
· 如果你修改了代碼,需要在被修改的文件中說明。
· 在延伸的代碼中(修改和有源代碼衍生的代碼中)需要帶有原來代碼中的協議,商標,專利聲明和其他原來作者規定需要包含的說明。
· 如果再發布的產品中包含一個Notice文件,則在Notice文件中需要帶有Apache License。你可以在Notice中增加自己的許可,但不可以表現為對Apache License構成更改。
Apache License也是對商業應用友好的許可。使用者也可以在需要的時候修改代碼來滿足需要並作為開源或商業產品發布/銷售。
英文原文:http://www.apache.org/licenses/LICENSE-2.0.html
Artistic License/GPL
使作者保持對進一步開發的控制。
英文原文:
http://www.perlfoundation.org/artistic_license_1_0
http://www.perlfoundation.org/artistic_license_2_0
Eclipse Public License 1.0
英文原文:www.eclipse.org/legal/epl-v10.html
GNU GPL v2
我們很熟悉的Linux就是采用了GPL。GPL協議和BSD, Apache License等鼓勵代碼重用的許可很不一樣。GPL的出發點是代碼的開源/免費使用和引用/修改/衍生代碼的開源/免費使用,但不允許修改後和衍生的代 碼做為閉源的商業軟件發布和銷售。這也就是為什麼我們能用免費的各種linux,包括商業公司的linux和linux上各種各樣的由個人,組織,以及商 業軟件公司開發的免費軟件了。
GPL協議的主要內容是只要在一個軟件中使用(”使用”指類庫引用,修改後的代碼或者衍生代碼)GPL 協議的產品,則該軟件產品必須也采用GPL協議,既必須也是開源和免費。這就是所謂的”傳染性”。GPL協議的產品作為一個單獨的產品使用沒有任何問題,還可以享受免費的優勢。
由於GPL嚴格要求使用了GPL類庫的軟件產品必須使用GPL協議,對於使用GPL協議的開源代碼,商業軟件或者對代碼有保密要求的部門就不適合集成/采用作為類庫和二次開發的基礎。
其它細節如再發布的時候需要伴隨GPL協議等和BSD/Apache等類似。
英文原文:www.gnu.org/licenses/gpl-2.0.html
GNU GPL v3
與GNU GPL v2的區別如下:
a、對用戶的專利保護
新版本GPL最重要的特性,就是明確了專利許可。任何分發GPLv3軟件的人必須自動為軟件用戶提供許可證,讓他們可以使用所有相關的專利。 從理論上來講,這樣做可以保護所有GPL專利享有者的訴訟權利,防止Linux經銷商與專利持有者,如微軟公司進行獨家經營。
b、不包含任何網絡服務條款
GPLv3的早期草案中包含了一個可選擇條款,即要求所有的網絡應用程序為遠程用戶提供源代碼。如今,這個條款已被取消。幸虧如此,否則對於網絡開發商和用戶來說都會是極大的負擔。盡管這樣做的初衷是為了保證擁有此軟件服務的用戶享有的服務與二進制文件代表的服務完全相同,而這種做法卻可能會 潛在地產生更為廣泛的影響。
但是,對SaaS用戶提供源代碼的要求並沒有被放棄。FSF仍然要求進行Affero許可,而這個許可在GPL的基礎上還增加了一項特別條 款。這或許是在告誡采取雙重許可策略的經銷商們,因為他們強烈激勵服務供應商購買商業許可,而不是使用開放源代碼版本。
c、對DRM的限制
絕大多數對GPLv3有爭議的條款都涉及到對數字版權的管理。新版本的GPL並沒有要求禁用DRM,但是通過兩種非常重要的途徑對它進行了限 制。
首先是項聲明,即基於GPL代碼為基礎的DRM不會構成一種“有效的技術手段”。這項聲明旨在保證在DMCA和懲戒逆向開發DRM系統的法律 條款下,打破基於GPL代碼為基礎的DRM為合法。這項聲明主要是針對用戶的應用,但是如果它能夠阻止使用DRM時對互操作性的限制,那麼對企業用戶來說 很有利。
其次,要求應用GPL軟件的家用設備必須允許用戶執行他們自己修改的版本。這樣做是為了阻止那些使用GPL代碼、但需要由硬件供應商認可的設 備,如 TiVO等。但是,這只能影響到家用設備:供應商仍然能夠利用數字簽名來鎖定GPL代碼。這種差異都是緣於簽署代碼的開發者們擁有合法的安全應用程序,而 這恰恰是企業所需要的。
英文原文:www.gnu.org/licenses/gpl.html
GNU Lesser GPL
LGPL是GPL的一個為主要為類庫使用設計的開源協議。和GPL要求任何使用/修改/衍生之GPL類庫的的軟件必須采用GPL協議不同。LGPL 允許商業軟件通過類庫引用(link)方式使用LGPL類庫而不需要開源商業軟件的代碼。這使得采用LGPL協議的開源代碼可以被商業軟件作為類庫引用並 發布和銷售。
但是如果修改LGPL協議的代碼或者衍生,則所有修改的代碼,涉及修改部分的額外代碼和衍生的代碼都必須采用LGPL協議。因此LGPL協議的開源代碼很適合作為第三方類庫被商業軟件引用,但不適合希望以LGPL協議代碼為基礎,通過修改和衍生的方式做二次開發的商業軟件采用。
GPL/LGPL都保障原作者的知識產權,避免有人利用開源代碼復制並開發類似的產品
英文原文:http://www.gnu.org/copyleft/lesser.html
MIT License
MIT是和BSD一樣寬范的許可協議,作者只想保留版權,而無任何其他了限制.也就是說,你必須在你的發行版裡包含原許可協議的聲明,無論你是以二進制發布的還是以源代碼發布的.
英文原文:http://www.opensource.org/licenses/mit-license.php
Mozilla Public License 1.1
允許免費重發布、免費修改,但要求修改後的代碼版權歸軟件的發起者。這種授權維護了商業軟件的利益,它要求基於這種軟件的修改無償貢獻版權給該軟件。
英文原文:http://www.mozilla.org/MPL/MPL-1.1.html
New BSD License
BSD開源協議是一個給於使用者很大自由的協議。基本上使用者可以”為所欲為”,可以自由的使用,修改源代碼,也可以將修改後的代碼作為開源或者專有軟件再發布。
但”為所欲為”的前提當你發布使用了BSD協議的代碼,或則以BSD協議代碼為基礎做二次開發自己的產品時,需要滿足三個條件:
· 如果再發布的產品中包含源代碼,則在源代碼中必須帶有原來代碼中的BSD協議。
· 如果再發布的只是二進制類庫/軟件,則需要在類庫/軟件的文檔和版權聲明中包含原來代碼中的BSD協議。
· 不可以用開源代碼的作者/機構名字和原來產品的名字做市場推廣。
BSD 代碼鼓勵代碼共享,但需要尊重代碼作者的著作權。BSD由於允許使用者修改和重新發布代碼,也允許使用或在BSD代碼上開發商業軟件發布和銷售,因此是對 商業集成很友好的協議。而很多的公司企業在選用開源產品的時候都首選BSD協議,因為可以完全控制這些第三方的代碼,在必要的時候可以修改或者二次開發。
英文原文:http://www.opensource.org/licenses/bsd-license.php
Other Open Source
Common Development and Distribution License
2005年,SUN公司宣布將開放操作系統Solaris的源代碼,並推出CDDL(Common Development and Distribution License)作為Open Solaris的許可證。CDDL許可證是MPL許可證(Mozilla Public License,用來管理Mozilla網頁浏覽器及相關軟件)的“升級版”。
英文原文:http://www.sun.com/cddl/cddl.html
Common Public License - v 1.0
英文原文:http://www.eclipse.org/legal/cpl-v10.html
還有微軟的一些開源協議,這裡就不列了,用的人不多,反正好像只有微軟在用吧,哈哈
大家可以根據自己的情況進行選擇。
5. 點擊Create project按鈕之後,就完成了Project的創建,如下:
6. 你可以訪問http://code.google.com/p/support/wiki/GettingStarted,來學習如何管理一個SVN上的Project,當然,我們接下來也會進行相關介紹。
注意: Google的SVN是強制開源的!
1. 現在就可以直接通過http://code.google.com/p/snake-book/訪問剛剛創建的項目了,點擊source可以看到如下圖所示。待會咱們就可以使用Eclipse提交文件到https://snake-book.googlecode.com/svn/trunk/地址,並通過帳戶密碼進行update,需要注意的是,以後管理該項目的密碼就是這裡“googlecode.com password”幫我們生成的比較復雜安全性比較高的密碼。另外一個地址:http://snake-book.googlecode.com/svn/trunk/給匿名用戶checkout代碼出來使用,只讀權限。
2. 前面的文章中介紹過Eclipse環境的搭建,現在我們要訪問http://subclipse.tigris.org/來安裝Eclipse的svn插件,以方便我們以後代碼的提交和管理。安裝的地址如下圖,輸入地址後,根據向導安裝後重啟Eclipse即可。
3. 現在我們就可以把源代碼提交到svn服務器上,打開要上傳的項目,右鍵->team->share Project->svn,寫入https路徑。下一步,輸入Google賬號和上傳密碼,起個名,finish。如下圖:
注意:提交的時候使用Googlecode.com 幫我們生成的密碼;只提交源文件而不要包含生成的文件。
4. 現在我們可以直接在浏覽器中通過http://snake-book.googlecode.com/svn/trunk/ 訪問剛剛提交的代碼了,也可以直接在Eclipse中使用svn插件,或者使用其它svn客戶端進行代碼的訪問。
1. 現在,Eclipse看到的項目會多出svn的圖標,如下圖,這表示本項目已經納入了版本控制。以後做的修改可以通過提交到Google的code進行版本控制了。
2. 在我們進行了代碼或者文件的更新之後,就可以通過:右鍵->team->commit來進行代碼的提交,如下圖:
3. 更多的操作會在以後用到的時候講解;也請自行參考相關文檔。今天就到這裡吧,謝謝大家。
Android應用程序可以在許多不同地區的許多設備上運行。為了使應用程序更具交互性,應用程序應該處理以適合應用程序將要使用的語言環境方面的文字,數字,文件等。在本章中,我
這篇文章是android開發人員的必備知識,是我特別為大家整理和總結的,不求完美,但是有用。 1.背景自適應且不失真問題的存在 制作自適應背景圖片是UI開
本文實例講述了Android實現獲取SD卡總容量,可用大小,機身內存總容量及可用大小的方法。分享給大家供大家參考,具體如下: 可能有的同學不知道系統已經提供了獲取
可以顯示在的Android任務,通過加載進度條的進展。進度條有兩種形狀。加載欄和加載微調(spinner)。在本章中,我們將討論微調(spinner)。Spinner 用