安卓官方例子在哪裡
1. 谷歌為什麼不通過專利阻止阿里雲競爭麻煩告訴我
我現在想就IP授權和競爭發表點看法,正是這兩點使得谷歌對宏碁施加了壓力,並最終導致了宏碁新款手機發布會的取消。宏碁是谷歌主導的「開放手持設備聯盟」的成員之一。就在不久前它正准備發布一款基於安卓分支系統的智能手機。這款名為「雲OS」的安卓分支是由中國的阿里巴巴開發,它宣稱要成為谷歌的競爭者。谷歌對此的態度是「或者是朋友,或者是敵人」。你可以成為OHA的一員,並且獲得安卓的官方授權。如果你打算發布一款分支系統,那我們就將一腳把你踢出OHA,並且取消安卓的官方授權。 根據媒體的報道,阿里巴巴對此次事件做了如下聲明「谷歌作為安卓的擁有者,威脅宏碁將取消安卓授權——假設宏碁堅持發布一款基於雲OS系統的手機」。谷歌對該報道並未表示否認。 安卓的封閉其實早就不是新聞了,對此我說什麼也會立刻淹沒在死一般的寂靜中,大量「免費軟體」和「開源」雙重開放標準的實物和證據已經說明了一切。Skyhook訴訟案和韓國反壟斷調查,以及最近甲骨文和谷歌的訴訟案上所提交的證據都說明了谷歌恃強凌弱的策略。與此同時,我之前也曾報道過谷歌在法庭上有關「Galaxy Nexus源代碼是封閉且獨占的」的言辭,HTC在向ITC提交的陳詞中也表明HTC並沒有谷歌專有應用的源代碼。 我在這里想著眼的是谷歌的行為以及它對其行為的辯護,這揭示了谷歌對待自身知識產權的態度,以及反過來這對蘋果意味著什麼。蘋果在全世界發起了多起讓人震驚的訴訟,目的是為了防止谷歌及其夥伴侵犯它的知識產權。看看這兩家公司的所作所為,我反而覺得蘋果針對谷歌有關知識產權的訴訟遠比谷歌的排他性策略要正常,待會我會一一解釋。 我們先來看看谷歌的所作所為,再來回顧一下蘋果的行為,再把這兩類行為來對比一下。 無論阿里巴巴的雲OS做了什麼,也沒有任何對安卓商標侵權的證據。 這是我從大量有關該事件的評論總結出來的共同點。谷歌不喜歡雲OS的原因有很多,而每一個原因會導致谷歌做出何種正常的反應(包括先發制人的考慮)又有很多不同的答案。 谷歌針對雲OS最近也是最嚴肅的指控是雲OS對谷歌專用應用的盜版行為。雲OS的應用商店據說未經允許收錄了許多來自開發者的第三方應用。我無法證實此事,所以阿里巴巴直到被證明有罪之前都是無辜的。但是這里讓我們做個假設,假設谷歌的指控成立,且手上握有不可辨駁的證據。在這種情況下,谷歌有權利動用合適的法律武器來對付阿里雲的專利侵犯,同時也針對宏碁即將發布未經允許獲得的軟體做出反應。我相信利益得到保護的第三方應用的開發者會為此大聲叫好。侵犯專利的公司(在這個案例如果假設成立就是宏碁)因為銷售未經授權的軟體也將會失去對所侵犯專利軟體(這里我們指谷歌的專有應用)的授權,對此我將深表贊同。這就像商店會拒絕跟一個只為部分商品付款,卻偷竊另外一部分商品的顧客做生意一個道理。但是問題的關鍵在於谷歌為了防止或者停止對方侵權所做的行為遠遠超出了正常的范疇。 谷歌和阿里巴巴的陳述都很清楚地表明谷歌全然沒有要求阿里雲去除版權有問題的部分。如果谷歌要求對方去掉這部分,宏碁的雲OS手機當然會延後發布,但絕對不會取消。 另外一個對阿里雲的盜版指控便是對安卓商標未經授權的使用。但是證據在哪裡呢?僅僅因為阿里雲高層說過想要成為「中國的安卓」並不能證明阿里巴巴侵犯了安卓的商標。這只是競爭者之間的一個合法的比方。這里甚至沒有一絲疑問:宏碁和阿里巴巴並沒有取名叫「安卓」,它有一個獨有的名稱:「阿里雲」。 現在我們已經對發生在宏碁的阿里雲手機發布之前,谷歌就知識產權(專用谷歌應用的版權授權,以及安卓商標授權)威脅宏碁,如果後者堅持發布手機將取消授權事件有個大致的了解。有件事要指出,谷歌此前給予宏碁的授權是基於開源代碼協議的。但是如果你從互聯網上下載「Stock Android」,它就是沒有獲得授權的專用應用和專有商標。我們現在已經看到至少商標這類權益並未受到侵犯,並且如果真的有潛在的對版權的侵害,它會被很有效地發現,犯不著對整個產品判死刑。這就像YouTube雖然每一秒都有違法的內容上傳且被人訪問,谷歌也不會把整個YouTube關閉一個道理。 那就只剩下一類爭論,該爭論之前也被谷歌的安迪61魯賓在G+首頁上指出,即兼容性(或者,反過來說,碎片化)。谷歌對於兼容性的推崇及其對碎片化的防備顯然並不適用於甲骨文的java。有關安卓系統中發現未經授權的甲骨文JAVA應用界面的案子將會提交到美國聯邦巡迴上訴法院。但是,即使谷歌在碎片化場合使用雙重標准,防止碎片化也是一個明顯的目標。作為一個安卓用戶,我認為這很重要,但前提是要有原因。比方說,三星手機有一些獨特的應用不能在HTC和摩托羅拉的手機上運行,但我依然認為這些應用是有必要存在的。 最壞情況的碎片化在這里沒有提到,客戶不會購買互相不兼容的安卓設備。這樣的情況在下面的前提下會發生:宏碁安卓手機的應用完全不能在宏碁阿里雲手機上運行;另外一種情況,有些應用可以同時在兩類設備上運行。 讓我們面對這一切:這是最有可能被允許發生的碎片化。沒有人要求谷歌在開源代碼協議的前提下放棄大部分安卓。但分支是開源代碼的一種方式。如果谷歌在GPL協議下應用了甲骨文JAVA的代碼,並在該協議下發布了該代碼,它應該選擇不兼容。它無需使用JAVA商標,但是它需要遵循甲骨文提供的兩個選擇,就想SUN以前做的那樣:獲取商業授權以便兼容,或者按照GPL協議對代碼開源。在安卓的案例中,需要按照GPL協議開源代碼的部分遠比谷歌自己承認的要多,這就允許類似阿里巴巴這樣的公司在不分享代碼的前提下開發自己的分支版本。 應用我上面所提到的邏輯,要想防止阿里巴巴碎片化的完美方式便是將安卓開發為一個封閉的系統。但是那樣的話,安卓就不再有自己的相對優勢。阿里巴巴遵循了開源代碼的規則,無論阿里巴巴還是任何第三方都無需徵求谷歌的同意。
這也是為何谷歌並沒有針對阿里巴巴採取行動。它同樣無法防止亞馬遜在Kindle Fire上使用安卓的開源代碼,要是谷歌可以,它早就提出訴訟了。 在缺乏對付阿里巴巴的法律依據後,谷歌選擇對宏碁施壓。亞馬遜和宏碁最大的區別在於亞馬遜並沒生產任何官方授權的安卓設備——那些標有小綠人的logo。它只是生產了一些運行分支系統的設備。宏碁不一樣,它是開放手持設備聯盟(OHA)的一員,所生產的設備需要打上小綠人logo。谷歌讓其沒有選擇餘地,「聽我的,或者滾蛋」。這並不正當。它還涉及到有關反壟斷的問題。還記得谷歌在收購摩托羅拉時對中國商務部反壟斷部門的承諾,它宣稱將保持安卓成為一個開源平台。 宏碁也同樣生產Windows手機。谷歌無法提出這樣的主張(很幸運現在無法提出這種主張):顧客購買了宏碁的Windows手機會困惑於他們是不是購買了安卓設備,僅僅因為宏碁同時銷售兩種設備。 谷歌的行為是排他性的,也是明顯的限制競爭的。這是一個將沒有理由的狀況與宏碁所需要的商業授權掛鉤的案例。考慮到宏碁早先基於自願的基礎接受了OHA協議,限制沒有機會再來達成更好的交易了。事實上,OHA的協議是被設計用於保護谷歌的利益的。 谷歌知道宏碁這樣的公司無法冒險失去它的安卓授權,因為本質上這會對其市場營銷產生不利影響。在整個安卓的生態系統內,任何人都很難於三星競爭(這真的是一家偉大的公司,同時在所有大型製造商中又是最靈活的)。宏碁不是三星,如果三星決定發售安卓的分支版本,我不確定谷歌是不是敢威脅三星取消其授權。宏碁也不是亞馬遜,後者有這樣的能力發售不包含谷歌專有軟體(最引人注目的莫過於Google Play App商店)的安卓設備。對於宏碁來說,唯一短期機會就是按照谷歌的要求來推出可行的安卓設備。 阿里巴巴有一些不太為人所知的硬體合作夥伴,但它們缺乏足夠的影響力,這限制了阿里巴巴的市場潛力。與宏碁的合作將是一個極好的突破機會,這就跟Skyhook當年與摩托羅拉和三星的合作一個道理。 所有這些無非說明一件事情:谷歌不想和阿里巴巴,或者Skyhook這樣的對手競爭。版權軟體的盜版可以要求對方卸除違規的部分,商標侵犯在這里根本沒有發生;而對於開源軟體開發而言,分支是個必要的元素。如果按照開源的規則開發,你就不得不接受由分支導致的碎片化。 安迪61魯賓說過「如果你不想兼容,那就別指望一直致力於支持並構建統一安卓生態系統的OHA的幫助」。阿里巴巴也沒有期待過任何來自OHA的幫助。它只不過是想在開源協議內行使自己的權利及競爭,谷歌正是選擇在開源協議下發布了安卓。宏碁在發布基於阿里雲系統的手機時也沒有期待OHA的幫助。它只是不希望把雞蛋放在一個籃子里,並且盡可能滿足更多用戶的需求。 谷歌不知疲倦地動用知識產權和相關市場兩個杠桿,來不斷避免競爭。它在這里對宏碁和阿里巴巴所做的一切,也完全可以用來要求宏碁放棄推出Windows設備。 如果谷歌可以取消授權,蘋果可以不給授權。 谷歌和它的部分合作夥伴聲稱蘋果利用專利和知識產權抑制了潛在的競爭,並限制了消費者選擇。讓我們來看看同樣的證詞是不是可以適用於谷歌自己的行為。 就像谷歌不希望宏碁推出可以與其安卓平台競爭的產品(其實是符合開源代碼協議的)一樣,蘋果也不希望基於安卓系統的設備借用了它的一些點子。不過至今為止,蘋果的訴訟還沒有上升到反壟斷的地步。他們還沒有對涉及與標准相關的專利,舉個例子,所有蘋果的強制專利至今還是可以使用的。 有人批評說蘋果會對細枝末節的事情實施專利,就像蘋果的聯合創始人Steve Woznik說的那樣。就算是小事,三星和其他人還是一樣可以使用,比如說與多點觸控相關的發明,即使這看起來對蘋果相當不利。如果這也能被稱為細枝末節,那麼谷歌用於威脅宏碁的軟體上的專利可能就更加微小了,比如說Google Mail、Talk和Maps客戶端,以及Google Play app商店客戶端。技術上而言,宏碁只需要幾周時間就可以自己做出同樣的東西,但正是因為消費者的需求才使它們具有強大的力量。不同於亞馬遜,宏碁如果沒有獲得谷歌的授權,很難向消費者提供海量的軟體。 換句話說,谷歌的知識產權建構於在技術上而言微不足道的小應用,然後再用這些知識產權武器來阻止其他人跟安卓競爭。盡管我個人並不認為蘋果的專利就真的值得授予專利,但比起智能手機的小軟體還是更像那麼回事。 宏碁並沒打算背叛OHA,它只是想分散自己的風險。同樣,谷歌也選擇繼續成為蘋果的合作夥伴,而非成為一個侵犯專利的競爭者。Eric Schmidt可是蘋果董事會的一員。大量谷歌的服務在蘋果平台上佔有舉足輕重的位置。假設谷歌沒有開發安卓,Google+很有可能成為iPhone和iPad上最主要的社交應用。 谷歌只是對於蘋果和微軟越發依賴自己的移動平台戰略感到不那麼舒服。谷歌對於微軟的恐懼在谷歌內部的文件,以及在甲骨文和谷歌的官司上所展示的谷歌與Sun之間的通訊記錄展示無遺。微軟擁有必應,谷歌擔心也許有一天只有蘋果仍然沒有自己的搜索引擎,更讓人憂慮的是,沒准哪天蘋果萬一決定收購哪家公司來擁有自己的搜索引擎呢?除了搜索引擎,谷歌還有電子郵件,不過蘋果已經有了MobileMe和iCloud。所以谷歌決定借用蘋果的想法,來開發自己的平台以便與之競爭。於是,2010年,蘋果決定確保競爭沒有侵犯專利,並選擇對HTC提出訴訟。 蘋果從來沒有向第三方授權它的平台,以及任何專利部分。也從來沒有表示要以開源的方式來與開發者共享代碼。相比某些說一套做一套的公司,起碼蘋果並不偽善。 即使阿里雲100%沒有侵權,谷歌也不想和阿里雲競爭。那為什麼蘋果要與一個侵犯了自己無數專利的安卓平台競爭呢?沒有任何理由說明蘋果應該放棄保護自己的權利,或者它憑什麼要向谷歌發放授權,除非它認為這樁生意值得。
2. 安卓手機的官方卡刷包和官方線刷包去哪下載vivo官方網站在哪我怎麼找不到。
線刷包要去我們當地的售後服務中心才可以刷的,如果要進行卡刷,建議可以刷我們的固件包: 可以到官網下載對應機型的固件包,路徑:進入vivo官網首頁--服務--搜索對應機型點擊資源下載下載好固件包,具體操作教程:進入官網首頁社區--板塊--v粉玩機--玩機技巧--搜索官網固件升級操作教程這個帖子裡面有詳細的步驟介紹的。
3. 安卓手機通話錄音在哪個文件夾
安卓系統通常會有文件管理或文件夾選項的應用,直接點開文件管理,手機會自動檢索手機中的文件類型,如圖片,視頻,音頻,應用,文檔,壓縮包等等,直接選擇音頻文件就能看到了,長按音頻文件名,選擇更多,點擊詳情就能看到你音頻文件存儲路徑,因為不同手機的存儲位置並不固定
4. android開發 如何實現掃描本地二維碼圖片
開源的二維碼掃描庫主要有zxing和zbar,zbar在iPos平台上應用比較成熟,而在Android平台上主流還是用zxing庫,因此這里主要講述如何利用zxing進行二維碼開發。
如何將zxing的Android源碼導入工程。
在導入zxing的android源碼之前,先去官方下載zxing的源碼http://code.google.com/p/zxing/downloads/list。
這里以1.6版本為例,zxing 1.6源碼結構如下:
<?xmlversion="1.0"encoding="utf-8"?>
<manifestxmlns:android="http://schemas.android.com/apk/res/android"
package="com.qrcode"
android:versionCode="1"
android:versionName="1.0">
<uses-sdkandroid:minSdkVersion="7"/>
<uses-permissionandroid:name="android.permission.VIBRATE"/><!--震動許可權-->
<uses-permissionandroid:name="android.permission.CAMERA"/>
<uses-featureandroid:name="android.hardware.camera"/><!--使用照相機許可權-->
<uses-featureandroid:name="android.hardware.camera.autofocus"/><!--自動聚焦許可權-->
<applicationandroid:icon="@drawable/icon"android:label="@string/app_name">
<activityandroid:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<actionandroid:name="android.intent.action.MAIN"/>
<categoryandroid:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<!--隱藏鍵盤--><!--全屏-->
<activity
android:configChanges="orientation|keyboardHidden"
android:name="com.zxing.activity.CaptureActivity"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:windowSoftInputMode="stateAlwaysHidden">
</activity>
</application>
</manifest>這種情況大致就可以實現二維碼掃描了,想細化的話,還可以多看看安卓二維碼掃描開發相關的教程
5. android系統 主要有哪幾部分
android系統分為四部分,從高到低分別是:
1、Android應用層
2、Android應用框架層
3、Android系統運行層
4、Linux內核層
Android系統構架主要應用於ARM平台,但不僅限於ARM,通過編譯控制,在X86、MAC等體系結構的機器上同樣可以運行。
(5)安卓官方例子在哪裡擴展閱讀:
Android運行庫
Android包括了一個核心庫,該核心庫提供了JAVA編程語言核心庫的大多數功能。
每一個Android都擁有一個獨立的Dalvik虛擬機實例。Dalvik被設計成一個設備可以同時高效地運行多個虛擬系統。Dalvik虛擬機執行(.dex)的Dalvik可執行文件,該格式文件針對小內存使用做了優化。
同時虛擬機是基於寄存器的,所有的類都經由JAVA編譯器編譯,然後通過SDK中的「dx」工具轉化成.dex格式由虛擬機執行。
6. opencv for android裡面的用到攝像頭的幾個官方例子,真機測試時攝像頭都打不開,黑屏不報錯
OpenCV
整個項目的結構圖:
編寫DetectFaceDemo.java,代碼如下:
[java] view
plainprint?
package com.njupt.zhb.test;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.MatOfRect;
import org.opencv.core.Point;
import org.opencv.core.Rect;
import org.opencv.core.Scalar;
import org.opencv.highgui.Highgui;
import org.opencv.objdetect.CascadeClassifier;
//
// Detects faces in an image, draws boxes around them, and writes the results
// to "faceDetection.png".
//
public class DetectFaceDemo {
public void run() {
System.out.println("\nRunning DetectFaceDemo");
System.out.println(getClass().getResource("lbpcascade_frontalface.xml").getPath());
// Create a face detector from the cascade file in the resources
// directory.
//CascadeClassifier faceDetector = new CascadeClassifier(getClass().getResource("lbpcascade_frontalface.xml").getPath());
//Mat image = Highgui.imread(getClass().getResource("lena.png").getPath());
//注意:源程序的路徑會多列印一個『/』,因此總是出現如下錯誤
/*
* Detected 0 faces Writing faceDetection.png libpng warning: Image
* width is zero in IHDR libpng warning: Image height is zero in IHDR
* libpng error: Invalid IHDR data
*/
//因此,我們將第一個字元去掉
String xmlfilePath=getClass().getResource("lbpcascade_frontalface.xml").getPath().substring(1);
CascadeClassifier faceDetector = new CascadeClassifier(xmlfilePath);
Mat image = Highgui.imread(getClass().getResource("we.jpg").getPath().substring(1));
// Detect faces in the image.
// MatOfRect is a special container class for Rect.
MatOfRect faceDetections = new MatOfRect();
faceDetector.detectMultiScale(image, faceDetections);
System.out.println(String.format("Detected %s faces", faceDetections.toArray().length));
// Draw a bounding box around each face.
for (Rect rect : faceDetections.toArray()) {
Core.rectangle(image, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height), new Scalar(0, 255, 0));
}
// Save the visualized detection.
String filename = "faceDetection.png";
System.out.println(String.format("Writing %s", filename));
Highgui.imwrite(filename, image);
}
}
package com.njupt.zhb.test;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.MatOfRect;
import org.opencv.core.Point;
import org.opencv.core.Rect;
import org.opencv.core.Scalar;
import org.opencv.highgui.Highgui;
import org.opencv.objdetect.CascadeClassifier;
//
// Detects faces in an image, draws boxes around them, and writes the results
// to "faceDetection.png".
//
public class DetectFaceDemo {
public void run() {
System.out.println("\nRunning DetectFaceDemo");
System.out.println(getClass().getResource("lbpcascade_frontalface.xml").getPath());
// Create a face detector from the cascade file in the resources
// directory.
//CascadeClassifier faceDetector = new CascadeClassifier(getClass().getResource("lbpcascade_frontalface.xml").getPath());
//Mat image = Highgui.imread(getClass().getResource("lena.png").getPath());
//注意:源程序的路徑會多列印一個『/』,因此總是出現如下錯誤
/*
* Detected 0 faces Writing faceDetection.png libpng warning: Image
* width is zero in IHDR libpng warning: Image height is zero in IHDR
* libpng error: Invalid IHDR data
*/
//因此,我們將第一個字元去掉
String xmlfilePath=getClass().getResource("lbpcascade_frontalface.xml").getPath().substring(1);
CascadeClassifier faceDetector = new CascadeClassifier(xmlfilePath);
Mat image = Highgui.imread(getClass().getResource("we.jpg").getPath().substring(1));
// Detect faces in the image.
// MatOfRect is a special container class for Rect.
MatOfRect faceDetections = new MatOfRect();
faceDetector.detectMultiScale(image, faceDetections);
System.out.println(String.format("Detected %s faces", faceDetections.toArray().length));
// Draw a bounding box around each face.
for (Rect rect : faceDetections.toArray()) {
Core.rectangle(image, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height), new Scalar(0, 255, 0));
}
// Save the visualized detection.
String filename = "faceDetection.png";
System.out.println(String.format("Writing %s", filename));
Highgui.imwrite(filename, image);
}
}
3.編寫測試類:
[java] view
plainprint?
package com.njupt.zhb.test;
public class TestMain {
public static void main(String[] args) {
System.out.println("Hello, OpenCV");
// Load the native library.
System.loadLibrary("opencv_java246");
new DetectFaceDemo().run();
}
}
//運行結果:
//Hello, OpenCV
//
//Running DetectFaceDemo
///E:/eclipse_Jee/workspace/JavaOpenCV246/bin/com/njupt/zhb/test/lbpcascade_frontalface.xml
//Detected 8 faces
//Writing faceDetection.png
package com.njupt.zhb.test;
public class TestMain {
public static void main(String[] args) {
System.out.println("Hello, OpenCV");
// Load the native library.
System.loadLibrary("opencv_java246");
new DetectFaceDemo().run();
}
}
//運行結果:
//Hello, OpenCV
//
//Running DetectFaceDemo
///E:/eclipse_Jee/workspace/JavaOpenCV246/bin/com/njupt/zhb/test/lbpcascade_frontalface.xml
//Detected 8 faces
//Writing faceDetection.png
7. 哪裡可以找到android開發的實例教程.
看你想開發什麼諾?推薦一網站吧: