『壹』 誰有ckchat 安卓/IOS移動端源碼嗎可以分享不
所有的android應用程序都要求開發人員用一個證書進行數字簽名,Android系統不會安裝沒有進行簽名的程序,簽名有一個很重要作用就是防止程序發布後被篡改。
『貳』 Launcher添加左劃負一屏
源碼環境是android-API-28,計劃在頁面處於主頁時左劃進入負一屏,右滑退出負一屏。從三個方面推進,TouchEvent,Animation 和負一屏View。從Touch的ACTION_DOWN時攔截並處理touch事件,在ACTION_MOVE時拖拽View,在ACTION_UP/ACTION_CANCEL時根據拖拽距離完成剩餘動畫:返回主頁或者前進到負一屏。
『叄』 自己可以編譯安卓源碼嗎
用最新的Ubuntu 16.04,請首先確保自己已經安裝了Git.沒安裝的同學可以通過以下命令進行安裝:
sudo apt-get install git git config –global user.email 「[email protected]」 git config –global user.name 「test」
其中[email protected]為你自己的郵箱.
簡要說明
android源碼編譯的四個流程:1.源碼下載;2.構建編譯環境;3.編譯源碼;4運行.下文也將按照該流程講述.
源碼下載
由於某牆的原因,這里我們採用國內的鏡像源進行下載.
目前,可用的鏡像源一般是科大和清華的,具體使用差不多,這里我選擇清華大學鏡像進行說明.(參考:科大源,清華源)
repo工具下載及安裝
通過執行以下命令實現repo工具的下載和安裝
mkdir ~/binPATH=~/bin:$PATHcurl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repochmod a+x ~/bin/repo
補充說明
這里,我來簡單的介紹下repo工具,我們知道AOSP項目由不同的子項目組成,為了方便進行管理,Google採用Git對AOSP項目進行多倉庫管理.在聊repo工具之前,我先帶你來聊聊多倉庫項目:
我們有個非常龐大的項目Pre,該項目由很多個子項目R1,R2,...Rn等組成,為了方便管理和協同開發,我們為每個子項目創立自己的倉庫,整個項目的結構如下:
這里寫圖片描述
執行完該命令後,再使用make命令繼續編譯.某些情況下,當你執行jack-admin kill-server時可能提示你命令不存在,此時去你去out/host/linux-x86/bin/目錄下會發現不存在jack-admin文件.如果我是你,我就會重新repo sync下,然後從頭來過.
錯誤三:使用emulator時,虛擬機停在黑屏界面,點擊無任何響應.此時,可能是kerner內核問題,解決方法如下:
執行如下命令:
通過使用kernel-qemu-armv7內核 解決模擬器等待黑屏問題.而-partition-size 1024 則是解決警告: system partion siez adjusted to match image file (163 MB >66 MB)
如果你一開始編譯的版本是aosp_arm-eng,使用上述命令仍然不能解決等待黑屏問題時,不妨編譯aosp_arm64-eng試試.
結束吧
到現在為止,你已經了解了整個android編譯的流程.除此之外,我也簡單的說明android源碼的多倉庫管理機制.下面,不妨自己動手嘗試一下.
『肆』 我想找找Android 開發的源碼例子,在www.apkbus.com 找到一些,但是我知道除了安卓巴士還有其他的網站
SDK目錄下就有很多啊,幾乎包含了所有方面的例子.
我用的2.1版SDK,例子就在samples\android-7下面,android-7就是2.1版的.
如果你用的其它版本就找到對應版本就行了.
『伍』 為什麼華為手機的負一屏好多是支付寶的產品卻沒有一個是微信的
說到這個問題,我們就不得不重新回顧一下華為和微信關於微信支付指紋存儲相關的交涉了。
事件回顧
在 2018 年的時候,有一段時間,華為要求用戶的指紋信息必須儲存在本地,也就是手機處理器的一個專屬模塊里。而騰訊卻要求把用戶指紋信息上傳到伺服器進行網路比對,才能使用微信支付,並且表示所有手機都是一視同仁,採用這種方式的。
但華為卻不同意,認為微信的這種指紋驗證方式,似乎侵犯了用戶的隱私,並且有可能產生安全問題。於是雙方便發生了爭執,這個爭議就一直沒有解決,雙方都不讓步,結果就是華為手機都不支持微信支付了。
那時候華為應用市場一度下架了微信這個軟體,雙方吵的不可開交。
據說最後以微信的妥協,而得到解決。
騰訊和華為雖然都在深圳,但是他們之間的關系卻一直不好,再往前回顧,也就是 2016 年的時候,關於用戶數據的問題,兩者也爭吵過。事情是這樣的:
華為、騰訊雙方糾紛起因源於華為旗下互聯網手機品牌榮耀在2016年12月發布的榮耀Magic手機,這是榮耀發布的首款概念機,由華為2012實驗室耗時近兩年時間研發而成。Magic基於Andriod系統重新開發了Magic Live系統,這是華為手機首次嘗試人工智慧應用。
目前該款手機可根據微信聊天內容自動載入地址、天氣、時間等信息;通話、購物等時候也能提示相關服務信息,這些均是華為與科大訊飛、高德、支付寶、攜程等APP深度合作研發的結果。
但據消息人士向《華爾街日報》透露,微信的擁有者騰訊指出,華為不僅在獲取騰訊的數據,還侵犯了微信用戶的隱私。
因此,雙方矛盾激化。
為什麼是支付寶呢?
看完事件回顧,第一個事件就說明了問題,微信和華為之間雖然最後都妥協了,估計也是華為妥協了,關於指紋存在本地手機還是微信伺服器的問題,如果華為一直不支持微信,必定影響銷量,那麼可能就妥協了。
那麼既然這樣,我就主推支付寶,讓用戶都使用支付寶不就完了。
所以,華為的快捷方式上,生活服務上都是跟支付寶相關的服務。
所以,看到這里你就明白,為什麼是支付寶了吧?
當然是因為華為和騰訊不對頭呀。
開玩笑的!
以下內容來源純屬網路八卦,完全不負責任,且博一笑,不必當真。
游戲 優化事件
約在18年,曾經發生過這樣一件事情:騰訊旗下的幾款 游戲 在華為手機上運行的時候,會出現花屏,閃退的現象。
對於這件事,網友的猜測是騰訊針對華為手機做了負優化。
而騰訊官方給出的回應是,這個問題是華為更新GPU Turbo導致的,屬於廠商問題。
隨後華為就推出了補丁包,但是這是首次 游戲 出現BUG由手機廠商修復,而不是 游戲 官方修復的案例。
指紋信息事件
而在更早的16年,華為 PDT 經理李小龍在微博上轉發了一篇題為《手機的生物密碼暗藏風險》的文章,文章內容主要就手機上包括指紋在內的生物信息的安全性作出討論。
而李小龍先生轉發的附言的大致意思是,華為的某代產品和某廠商合作時,對方提出了上傳用戶指紋到伺服器以做對比,被嚴詞拒絕。
雖然沒有明說「某廠商」是誰,但是結合現在華為和支付寶打的火熱的情況,各位看官不妨大膽猜測一下。
六一刷屏的短視頻《悟空》,你們呢還有印象嗎?很多網友看了以後,都非常的感慨與傷感。而且重要的是這部短視頻是以豎屏來拍攝的,和我們傳統的短視頻或者電影是相違背的。
拍攝的手機也是我們的華為手機。對華為手機,你們有具體的了解過它的功能嗎?比如有一個負一屏的功能,是可以方便快捷的為我們提供更好的服務。解鎖進入到主頁面以後,只需要用手指往右滑動。
是可以看到我們的負一屏,點擊更多以後。會看到常駐服務、最近使用、推薦服務、生活服務、 娛樂 購物、實用工具。應該說覆蓋的范圍是非常的廣,不用我們再一個一個的取找那些app了。
但是有網友仔細的觀察,是會發現這么一個現象。在這些運用當中,支付寶和華為自己的產品是非常多,騰訊的是沒有一個。這個估計就會有人不明白了,難道是華為和支付寶聯手了,微信是不是又多了一個對手。
對於這個情況,我們是沒有必要那麼早就下結論的。首先從生態的運用上來看,支付寶的運用要遠遠多於微信的,淘寶、支付寶、高德打車、螞蟻庄園等,都是我們用戶使用頻次較高的app。
把它們收攏到一個頁面里,是非常的方便用戶選擇。除了這些以外,在酒店、住宿、 娛樂 上,阿里更是有著很大的優勢。而華為推出的負一屏,宗旨是為用戶提供更好更具有智慧的服務。
在負一屏中,我們更是可以看到華為自己的產品。其中的一個智慧識物是我比較喜歡的,雖然掃描的結果並不一定準確,卻是給我們帶來了新奇的體驗。反觀騰訊的生態鏈,它自己有什麼呢?
在 娛樂 、購物、生活上,它的涉足遠遠比不上阿里。投資的京東、拼多多也並沒有被多少的人看好。從使用華為手機人群的屬性上來看,他們是有著自己的一個認知,非常明白自己需要什麼。
可能你們會說, 游戲 是騰訊的重頭戲,應該是可以接入到負一屏裡面。不過在 娛樂 那一欄,你們有發現 游戲 兩個字嗎?另外華為自己的運用市場里也是有著 游戲 欄目,幹嘛得把騰訊的 游戲 接入到負一屏呢?
因此,負一屏中沒有微信的產品,不是正常的嗎?
騰訊收集用戶信息,早晚會被淘汰,如果阿里開發聊天通訊軟體,一定卸載微信。
我只在華為負一屏只有一個微信付款碼?反而,數個支付寶的快捷方式。
微信和華為不對付呢?你應該忘不了的是,微信和華為之前因為指紋問題而矛盾重重,雖然後來化解了,可是你可能不得不猜測,華為確實可能考慮到微信的之間的關系,在負一屏中放不多的微信的內容。
那麼,事實如此嗎?我們先來看看華為負一屏的內容。
在生活服務中,確實微信只有一個付款碼,但是支付寶卻有付款碼,我的快遞,螞蟻森林,信用卡等等。
那麼,是不是因為矛盾呢?我覺得這裡面並不準確。我們的猜測原因——
其實用過華為或者榮耀手機的網友應該都會發現,華為EMUI系統出廠狀態是沒有預裝微信的,這顯然有些不正常。因為微信在國內的用戶超過10億,幾乎所有人都在用微信。所以除了華為之外,幾乎所有智能手機的系統都自帶微信,包括國外品牌蘋果。
有網友說華為和騰訊的關系不好,這的確不是空穴來風。除了微信之外,在前兩年有一段時間,華為的應用市場里是無法找到騰訊當紅手游《王者榮耀》的。這是因為華為對手游運營商非常強勢,華為規定通過應用商店下載的手游如果需要帳號登陸的,必須使用華為帳號。這就需要手游專門開通華為的伺服器,也就是所謂的華為渠道服,玩家在華為渠道服里的任何氪金消費,華為都可以從中抽成。比如我經常玩的《崩壞3》,如果用華為手機應用商店下載,默認的就是華為渠道服, 游戲 中的數據是不能和官服共通的。
但是騰訊的手游大家應該都了解,從來都只有騰訊官服,沒有所謂的渠道服,再說騰訊也不可能忍受華為從自家 游戲 的收益中抽成。這樣一來兩家就較上勁兒了。2017年的時候,華為就從應用商店中下架了《王者榮耀》這款當時騰訊最火的網友。
好在安卓系統是開源的,盡管華為應用商店裡無法下載《王者榮耀》,但是玩家卻可以直接在騰訊官網下載APK文件安裝 游戲 。而且華為也不可能禁止用戶安裝騰訊官服下載的《王者榮耀》。所以這件事情還是以雙方和解收場。現在華為應用商店是可以下載騰訊所有網友的。盡管如此,雙方的「梁子」也算是結下了。
騰訊的另一款手游《刺激戰場》(《和平精英》的前身)也搞出過類似的事件。2018年的時候華為推出了GPU Turbo技術,率先在榮耀V10等手機上使用。這項技術是通過優化安卓系統代碼來實現的,也改動了一部分 游戲 代碼。因此在GPU Turbo技術推出後不久,《刺激戰場》的一次更新後, 游戲 畫面出現了嚴重的花屏馬賽克問題。當時很多玩家都猜測是因為GPU Turbo與《刺激戰場》不兼容導致的。
還有一個比較著名的例子就是華為手機曾經一直都不支持微信的指紋支付,原因是微信的指紋支付方案和華為的不兼容,雙方就這個事情吵了很久,所幸最終還是和解了。
說了這么多,主要想說明的就是華為和騰訊兩個巨頭之間的關系實際上並不好,這也是理所當然的。因為雙方都是巨頭,誰也壓不住誰,很容易就摩擦出火花。但是另一方面,華為手機的市場佔有率是國內最高的,騰訊的軟體和 游戲 用戶也是國內最多的,所以這兩家也只能在不斷的爭斗中不斷妥協。至於華為手機負一屏中沒有微信產品的問題,只不過是雙方競爭中的一個微不足道的方面罷了。若非必要華為和騰訊的產品是不會有什麼深度合作的。不過據我觀察,現在華為負一屏是可以找到微信服務的,可能是雙方再一次妥協了吧!
其實華為跟支付寶之間有很長時間的合作 歷史 了,早在指紋支付剛開始流行之前,華為就已經開始了跟支付寶在支付安全方面的合作,中間很長一段時間,也是因為在安全理念上的不同,華為手機一直都不支持微信指紋支付。
最近有關華為跟支付寶之間的關鍵性合作,是在去年的5月份,兩家企業共同成立了「華為-螞蟻金服聯合創新實驗室」,而這個實驗室的研究領域也是聚焦於移動安全支付方,因為我們都知道目前國內移動支付處於世界前列,但同時也面臨著支付安全的問題,因此央行基於條碼支付安全性給出了當日限額500的規定,而這次支付寶將依靠華為手機,以麒麟晶元inSE的能力和安全可信執行環境(TEE)為依託,推出了內置手機盾的終端產品,這一技術就打破了電腦轉賬的制約,在華為手機上,通過支付寶即可隨時操作上百萬的大額轉賬。
除此之外,華為跟支付寶之間存在很多理念上的相似性,這無論是對於研發、安全等方面,雙方都有很好的共同話題,而反觀騰訊這邊的話,其主要是做流量、 游戲 ,這跟華為的發展理念還是存在較大的差異的,不單因為用戶核心數據存儲雙方產生過矛盾,即便是後來在 游戲 領域的對華為手機「負優化」、跟華為競爭「榮耀」品牌等等,都使得二者在合作過程中不斷出現各種問題,所以來講,從華為的企業文化來講,其就是親阿里疏騰訊的。
目前我們打開華為手機負一屏的話,會看到很多阿里系的產品,當然用戶也可以自行選擇,但至少從華為的官方態度上來講,在阿里跟騰訊之間就已經有了明顯的傾向性。對於目前的華為來講,因為受到美國方面的打擊,正是其重視各項技術性能、安全的高風險時期,這個時候選擇跟自己擁有更多同質化的企業強強聯合,也有助於幫助自己盡快擺脫目前的困境。
以上是我對此事的看法,喜歡可以關注下哦~
為什麼華為手機的負一屏好多是支付寶的產品卻沒有一個是微信的?現在的華為手機用戶使用數量還是比較多的,比如說有華為較高端的手機mate系列和p系列等,那麼為何在華為手機的負一屏卻沒有一個微信呢?
對於華為和騰訊來說,其實在很多的時間內都是存在一定的問題的,在很早之前的微信指紋識別功能來說,其他的智能手機品牌都是已經支持微信的指紋支付的功能,但是對於華為手機來說卻一直都沒有進行支持,其實這裡面最為主要的原因就是騰訊需要在用戶錄制指紋的時候,收集用戶的信息。
但是華為卻認為用戶的個人信息是屬於用戶的,華為是有必要為用戶所保證信息安全的,所以就是因為這個原因,華為和騰訊還掐了很長的時候,導致華為手機的用戶都是不能夠使用微信指紋支付的功能,最後還是因為雙方的妥協,華為手機最終支持這個功能。
還有一方面的原因就是,華為和支付寶這兩家的理念還是有不少的相似性的,一般情況下,不論是華為的研發還是安全性等方面,華為和支付寶都是能夠處到一塊的,但是華為和騰訊可能在理念上面存在一定的差異,在加上雙方還存在一定的矛盾,所以對於華為來說,都是比較親近阿里而疏遠騰訊。
最後,對於說為何我們打開華為和搜集的負一屏的時候,有很多的支付寶產品,但是卻沒有微信,從這個簡單的事情上面也是能夠看出來華為對於阿里的傾向性是更加大的,也是比較重視阿里,那麼大家還有什麼不同的看法,可以在下方留言,咱們一起探討!
這個其實就是公司間合作的問題,說明華為和支付寶的合作相對微信要更深入一些。
和交朋友一樣,每個公司的價值觀都不不同,只要兩個公司的價值觀出現交叉的時候才是深入合作的開始。華為和支付寶在指紋支付上的合作就證明兩家公司合作的不一般。
我也深有體會,很長一段時間指紋支付只支持支付寶,微信不能使用指紋支付,感覺很不方便,後來咨詢了華為客服,客服回復說關於微信指紋支付正在和騰訊進行溝通。從網上看到了許多關於華為和微信合作的解讀,我無法辨別真假,但兩家公司的合作出現分歧是肯定的。
華為是全球第二大、國內第一大手機廠商,微信是國內絕對的即時通訊服務商,兩家公司都是各行業的大佬,話語權都比較高,洽談起來不會很容易。而支付寶只是在支付板塊做的很大,而且還受微信支付的追擊,在這種情況下加強與華為的合作對利大於弊。這就是競爭和合作共贏的好處。
微信的安全系統太垃圾,我身邊有好多人的微信被一個陌生人加了微信,只要一加上,你微信里全有的錢都被洗劫一空。
後來騙子被抓了,我想說的是,微信的安全系統真的太垃圾,隨便網上找一木馬就能軟掉的系統,能有什麼好。支付寶在安全系統方面就做的很好。
另外,馬化騰的格局太小,踏踏實實的做你的手游吧。
『陸』 從Widget到負一屏
負一屏,在MIUI中叫做「智能桌面助理」 ,在EMUI中叫做「hiboard」 ,微軟桌面叫做「卡片頁」。蘋果在iOS10 上也推出了類似的功能,雖然叫做小組件,但其交互方式與基本功能都與安卓的負一屏如出一轍。
說到負一屏,就必須先要說一下widget,也就是小部件。一般在手機的桌面設置中可以找到並添加,widget通常可分為兩大類:控制類和查看類。比如系統中的快捷開關設置、時鍾、便簽、天氣、日歷、以及第三方App,如音樂類、即時新聞類。每個應用的小部件又有不同的佔位大小可以選擇,本質上無差異,只是展示內容多少的差異。
實際使用中,用戶一般將widget放置於主屏,因為widget的存在就是為了以最快的速度和最短的操作路徑去完成某項功能。而主屏是解鎖手機後到達的第一個界面。每個widget中一般只有所屬應用最核心和常用的功能,過多的功能設置不僅會增加內存佔用率,也不符合widget簡潔、高效的目標定位。
然而,安卓系統發展到現在,雖然widget一直存在,第三方應用也做了相應的開發,但似乎並沒有什麼存在感,第三方應用也沒有將其當作產品的重點功能去設計。原因主要有以下幾個方面:首先,在第三方 Rom 的定製過程中已經默認將時鍾、天氣這兩個實用性最強,查看頻率最高,甚至可以說是兩個必有項的小部件默認放置於主屏位置,用戶不必自己去尋找、設置,部分用戶甚至根本不知道那其實是一個小部件,這樣的話用戶失去了最可能發現和了解widge的途徑。另一方面,系統常用開關設置在下拉列表中的整合已經相當完善,相比作為小部件而添加的快捷設置按鈕,也只是多了下滑的一個操作,並不會造成太大的操作與記憶負擔。另一類,像音樂類App,用戶在使用時,並不會長時間停留在應用內的頁面上,但是有時又需要進行頻繁的切歌操作。大多數的情況是,一邊聊微信、刷微博,一邊聽音樂。而在這個時候,不論是重新打開應用還是去該應用所擁有的widget操作,都需要打斷並推出當前應用,操作過程並沒有太大差別,都比較繁瑣。特別是頻繁操作後,用戶容易產生厭煩感。相比而言,用戶更為接受的方案是將常用控制按鈕整合到下拉通知當中,避免了退出當前頁面。另外,大部分用戶並不希望自己的主屏被大面積佔位。下部Dock,中下部常用應用,頂部時鍾+天氣可以說是目前最適用、美觀的布局方式了。滿屏的不同風格的widget擺在一起總顯得不那麼協調美觀。
但是,部分用戶對widget的使用還是很忠誠的,年級稍大的父母可能不習慣去下拉通知里打開Wi-Fi開關,也不習慣從多任務界面去釋放內存,這個時候在主屏上的快捷操作按鈕就是最好的選擇了。另外,一些工作事務繁多的用戶,都覺得在桌面放置一個事件提醒的widget是很有必要的。總的來說,這些用戶不會考慮放置widget後,桌面是不是能夠保持統一整潔。更多考慮的是widget的簡便快捷與實用性。
總之,widget發展到現在,可以說是一個存在感不強,但從某些方面來講又是不可或缺的部分。
到後來,各大安卓智能手機廠商先後推出負一屏,甚至對後台和內存使用控制極為嚴格的ios也推出了類似的功能。MIUI負一屏主要內容和功能有全局搜索(網頁、設置、應用、視頻、文件、聯系人、簡訊、郵件、應用功能) 快捷入口(付款碼、微信掃一掃、微信名片、公交卡、便簽、日程) 即時信息及提醒(快遞信息、支出信息、通勤路況、打車出行信息、日程信息)關注動態(足球看台、籃球看台、股票信息),可以看出主要定位在日常生活場景。
微軟桌面負一屏主要功能和內容有全局搜索(應用、聯系人、)最近常用(最近圖片、文檔、聯系人、應用)日程提醒,定位於辦公場景,提升辦公效率。由於對第三方的支持很少,所以很特別的,系統中原有的widget可以通過卡片的形式添加到負一屏的卡片中。
在iOS 10之前,蘋果連widget都沒有,iOS 10 中開始出現的負一屏,也與安卓的widget有著極大的相似性,與安卓廠商的做法不同,蘋果的負一屏可以說是對安卓widget的致(chao)敬(xi),除最基本的系統組件外,負一屏的小組件由第三方開發,蘋果只是負責將它們放置在負一屏的位置上,小組件數目、種類都遠超安卓廠商的負一屏。但也正是因為如此,與安卓廠商的負一屏相比,缺少較高的整合度,目前來看,也僅僅是個widget的集合頁面,定位並不明確,傻傻分不清。
從表面上來看,負一屏似乎是widget的集合,但從內容上來看,發現兩者的設計和定位又有著本質的區別。簡單來說:
一、更加明確的定位
這里先不說iOS,安卓上出現的負一屏可以說是根據場景而設計的,就像MIUI的負一屏根據日常生活的使用場景去設計,微軟的卡片頁根據工作的使用場景去設計,不再是「widget 大雜燴」。這樣至少可以抓住有某種使用場景需求的用戶人群,針對性的設計也進一步提升了用戶體驗。
二、交互方式的改變
使用widget時,用戶需要先找到小部件頁面,選擇並添加到屏幕中的某個位置。而負一屏可以直接通過右滑進入,單獨開辟新的頁面去布局,而不是與應用圖標「搶車位」,對用戶更加友好。系統默認開啟,並且有默認添加的快捷按鈕和組件內容。與widge的「默默無聞」不同,負一屏更像是主動吸引著用戶去關注和使用。與widget類似,負一屏中,用戶可根據使用習慣自行添加、刪除內容,也可對排列順序進行調整。雖然部分用戶因誤操作而進入自己不常使用的負一屏而吐槽聲不斷,但對於有真實需求的用戶來說,這種進入方式還是比較合理的,在保證快速進入和查看的同時又保證了頁面的整潔。
三、更高的信息整合度
不同於widget,負一屏是由系統定製廠商設計和開發的,所以其整合度更高,所擁有的許可權也更高。比如MIUI負一屏中的「快捷功能」部分,不僅集合了系統應用,還集合了類似於付款碼和微信掃一掃的第三方應用功能快捷入口。不必為某個應用的某個快捷功能開辟新的卡片。這點還體現在相關信息的記錄,比如收支情況的記錄,會累積所有App內產生的收支情況。同類的控制項與信息的高度整合,不僅獲得了佔位的最高利用率,也對用戶的操作和交互帶來了方便。用戶對手機的「控制感」更強。
四、更加智能的人性化服務
負一屏中的部分組件根據情景設置和設備獲取的位置信息、應用信息,智能化地為用戶提供信息。可以說是在基本快捷功能基礎上的重大提升。如MIUI 負一屏中可根據實時的位置信息提供到家或公司的路況、打車信息。以及通過讀取 購物App的快遞信息提供最新的物流信息。通過搜集各種信息、記錄,通過更加智能的方式去減少用戶的操作過程,提供更加人性化的服務。
單說安卓系統,相對於widget,負一屏確實進步了不少,可以說取其精華,棄其糟粕。從負一屏現在的發展情況來看,功能上的創新仍有,但畢竟是有局限的,也極容易被模仿、抄襲。而如果以類似於智能情景的方式去發展,對設備、應用數據進行獲取、分析,結合人工智慧,根據用戶所處的情景,通過負一屏的組件內容來提供用戶某時某刻某地可能或必須的信息、功能服務,仍有不小的進步和發展空間。用機器的智能化給用戶帶來更便捷的服務和更好的體驗。雖然經常看到用戶吐槽負一屏,而且四處打聽如何關閉,很大程度上,可以說部分用戶無法接受新的與應用交互的方式,局限於原有的操作邏輯中,覺得負一屏並沒有什麼卵用,反而妨礙了自己的正常操作。但從個人的實際使用體驗來看,負一屏中的內容對於提升操作效率,提供便捷信息還是有很大幫助的。習慣使用後,甚至會離不開某些快捷功能。相信各大廠商也絕不是「無腦」地去推出負一屏。
『柒』 安卓系統是開源的,所謂的開源是什麼意思呢
開源意味著Android系統的源代碼對用戶開放,可以根據開源協議(GNU)使用、編譯和重新發布。任何人都可以在GNU的控制下自由使用該軟體。
安卓系統開源有什麼好處?
顯然,用戶快速增加開源的市場份額是明智的選擇。Android可能會在全球智能手機市場占據最大的市場份額,這與它的開源直接相關。開放Android手機操作系統的源代碼不僅允許Android開發者在統一的開放平台上開發程序,同時也解決了當今市場上不同智能手機之間因文件格式不同而導致的信息交換不方便和無法移植程序內容的問題;Android的開源意味著手機用戶不再需要被動接受手機製造商的默認設置和環境。用戶可以根據自己的需求和想法定製手機的配置。
『捌』 安卓底層代碼公開了嗎
公開,android(安卓)是完全開源的。
Android是一種基於Linux的自由及開放源代碼的操作系統。主要使用於移動設備,如智能手機和平板電腦,由Google(谷歌)公司和開放手機聯盟領導及開發。
2007年11月,Google與84家硬體製造商、軟體開發商及電信營運商組建開放手機聯盟共同研發改良Android系統。隨後Google以Apache開源許可證的授權方式,發布了Android的源代碼。
『玖』 求一個安卓開發小游戲源代碼,臨時交作業用
package com.fiveChess;
import android.app.Activity;
import android.os.Bundle;
import android.view.Display;
import android.view.Menu;
import android.view.MenuItem;
import android.view.Window;
import android.view.WindowManager;
public class MainActivity extends Activity {
GameView gameView = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
Display display = this.getWindowManager().getDefaultDisplay();
gameView = new GameView(this,display.getWidth(),display.getHeight());
setContentView(gameView);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add("重新開始").setIcon(android.R.drawable.ic_menu_myplaces);
menu.add("退出");
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getTitle().equals("重新開始")){
gameView.canPlay = true;
gameView.chess = new int[gameView.row][gameView.col];
gameView.invalidate();
}else if(item.getTitle().equals("退出")){
finish();
}
return super.onOptionsItemSelected(item);
}
}
package com.fiveChess;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.view.MotionEvent;
import android.view.View;
public class GameView extends View {
Context context = null;
int screenWidth,screenHeight;
String message = "";//提示輪到哪個玩家
int row,col; //劃線的行數和列數
int stepLength = 30;//棋盤每格間距
int[][] chess = null;//0代表沒有棋子,1代表是黑棋,2代表白旗
boolean isBlack = true;
boolean canPlay = true;
public GameView(Context context,int screenWidth,int screenHeight) {
super(context);
this.context = context;
this.screenWidth = screenWidth;
this.screenHeight = screenHeight;
this.message = "黑棋先行";
row = (screenHeight-50)/stepLength+1;
col = (screenWidth-10)/stepLength+1;
chess = new int[row][col];
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint = new Paint();
paint.setColor(Color.WHITE);
canvas.drawRect(0, 0, screenWidth, screenHeight, paint);//畫背景
paint.setColor(Color.BLUE);
paint.setTextSize(25);
canvas.drawText(message, (screenWidth-100)/2, 30, paint);//畫最頂層的字
paint.setColor(Color.BLACK);
//畫棋盤
for(int i=0;i<row;i++){
canvas.drawLine(10, 50+i*stepLength, 10+(col-1)*stepLength, 50+i*stepLength, paint);
}
for(int i=0;i<col;i++){
canvas.drawLine(10+i*stepLength,50,10+i*stepLength,50+(row-1)*stepLength, paint);
}
for(int r=0;r<row;r++){
for(int c=0;c<col;c++){
if(chess[r][c] == 1){
paint.setColor(Color.BLACK);
paint.setStyle(Style.FILL);
canvas.drawCircle(10+c*stepLength, 50+r*stepLength, 10, paint);
}else if(chess[r][c] == 2){
//畫白棋
paint.setColor(Color.WHITE);
paint.setStyle(Style.FILL);
canvas.drawCircle(10+c*stepLength, 50+r*stepLength, 10, paint);
paint.setColor(Color.BLACK);
paint.setStyle(Style.STROKE);
canvas.drawCircle(10+c*stepLength, 50+r*stepLength, 10, paint);
}
}
}
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if(!canPlay){return false;}
float x = event.getX();
float y = event.getY();
int r = Math.round((y-50)/stepLength);
int c = Math.round((x-10)/stepLength);
if(r<0 || r>row-1 || c<0 || c>col-1){return false;}
if(chess[r][c]!=0){return false;}//若有棋子則不再畫棋子了
if(isBlack){
chess[r][c] = 1;
isBlack = false;
message = "輪到白棋";
}else{
chess[r][c] = 2;
isBlack = true;
message = "輪到黑棋";
}
invalidate();
if(judge(r, c,0,1)) return false;
if(judge(r, c,1,0)) return false ;
if(judge(r, c,1,1)) return false;
if(judge(r, c,1,-1)) return false;
return super.onTouchEvent(event);
}
private boolean judge(int r, int c,int x,int y) {//r,c表示行和列,x表示在y方向上的偏移,y表示在x方向上的偏移
int count = 1;
int a = r;
int b = c;
while(r>=0 && r<row && c>=0 && c<col && r+x>=0 && r+x<row && c+y>=0 && c+y<col && chess[r][c] == chess[r+x][c+y]){
count++;
if(y>0){
c++;
}else if(y<0){
c--;
}
if(x>0){
r++;
}else if(x<0){
r--;
}
}
while(a>=0 && a<row && b>=0 && b<col && a-x>=0 && a-x<row && b-y>=0 && b-y<col && chess[a][b] == chess[a-x][b-y]){
count++;
if(y>0){
b--;
}else if(y<0){
b++;
}
if(x>0){
a--;
}else if(x<0){
a++;
}
}
if(count>=5){
String str = "";
if(isBlack){
str = "白棋勝利";
}else{
str = "黑棋勝利";
}
new AlertDialog.Builder(context).setTitle("游戲結束").setMessage(str).setPositiveButton("重新開始", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
chess = new int[row][col];
invalidate();
}
}).setNegativeButton("觀看棋局", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
canPlay = false;
}
}).show();
return true;
}
return false;
}
}
PS:五子棋,無需圖片,直接在程序里畫出來的。注意我發的是兩個文件,一個activity,一個類文件,別把它當成一個文件了
『拾』 安卓開發如何獲取網頁html源碼
就直接用httpget訪問網頁,得到的就是源碼