當前位置:首頁 » 安卓系統 » androidgoogledemo

androidgoogledemo

發布時間: 2022-09-04 11:52:27

❶ android布局中高為0dp 權重為1是什麼意思

比如說有一個linearlayout他的高度是100

a控制項weight=1 b控制項weight=2,c控制項weight=3,d控制項height=40,那麼

a控制項的高度就是 ((100-40)/(1+2+3)) *1

b控制項的高度就是 ((100-40)/(1+2+3)) *2

c控制項的高度就是 ((100-40)/(1+2+3)) *3

如果a不設置height=0dp,那麼當a控制項高度大於((100-40)/(1+2+3)) *1時,weight屬性不起作用,設置等於0,那麼weight屬性什麼時候都起作用。

在學安卓過程中,一直想找一款應用能夠展示各個章節的知識點,並且提供demo例子,就像谷歌Android API Demo一樣,google api demo例子太老了,都是外文,例子也不夠豐富,還不能看源碼,也沒有文檔。於是把自己學習安卓過程中的用到例子都整合在了一起,並把例子都寫在了android學習手冊中,希望想學安卓的java同胞們,能有一個好的例子參考,快速學習安卓,少走彎路。android學習手冊包含9個章節,108個例子,源碼文檔隨便看,例子都是可交互,可運行,源碼採用android studio目錄結構,高亮顯示代碼,不需要積分,文檔都採用文檔結構圖顯示,可以快速定位,度娘不讓發鏈接,360手機助手中可下載。下面是android學習手冊中,關於權重的演示。

❷ 國外有哪些關於Android的學習網站或資料或論壇

國外的Android學習網站最大資源帝Google官方——Android開發者網站。

Google官方開發者支持平台Android Developers,開發者可以找到Google關於Android設計(Design)、開發(Develop)及發布應用(Distribute)的官方說明文檔。

在Develop(開發)中,分別有教程(Android Training)、API指南(API Guides)、引用(Ref-erence)、工具(Tools)四項內容。下面就對這四項內容進行簡單介紹。

(1)Android Training:在這個模塊中,Google針對初學者和中高級開發者分別給出初級(Get Started)和高級(Advanced Training)兩個級別的教程。網站右側都提供Demo工程下載,使開發者可以很方便地下載學習。

初級教程內容包括應用界面搭建、管理Activity生命周期、對不同移動設備進行適配等內容。高級教程則包括了大量的Android系統特性及OpenGLes使用等內容。

(2)API Guides:該模塊包含了Android API說明文檔,對Android中的每個功能模塊進行說明。說明文檔中有大量的範例代碼。如果對某一個控制項或某一個感測器的使用不明白.可以在這里找到答案。
(3)Reference:根據Android包結構對每一個類及類中的接13、方法進行說明。對一個Android方法的使用不是很明白時,就趕快來這里查查吧!可以使用網站右上角的搜索按鈕來尋找自己所需要的文檔說明。

(4)Tools:這個模塊介紹了與Android開發工具使用方法。

❸ 如何看android api demo

1. Custom Dialog
Android支持自定義窗口的風格:
1)首先在資源裡面建立style的value;
example:

drawable/filled_box.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" />

2)設置當前activity的屬性,兩種方式:1.在manifest文件中給指定的activity增加屬性
android:theme="@android:style/Theme.CustomDialog"。2.在程序中增加語句setTheme(R.style.Theme_CustomDialog);
PS1:如果只是將Acticity顯示為默認的Dialog, 跳過第一步,只需要在manifest文中增加屬性:android:theme="@android:style/Theme.Dialog"或者在程序中增加setTheme(android.R.style.Theme_Dialog).
PS2:其他創建Dialog的方法:創建app.Dialog類或者創建app.AlertDialog類。

Next Study:能不能在Activity已經打開以後動態修改當前Activity的風格?
在測試中發現,在onCreate()事件中增加setTheme(),必須在setContentView()之前,否則指定的Style不能生效

2.Custom Title
Android除了可以為指定的Activity設置顯示風格,此外也可以為指定的Activity設置一些特效,比如自定義Title,沒有Title的Activity或者增加一個ICON等。
有意思的一點是,這些特效並不是你想設置的時候就行設置,你需要在Activity顯示之前向系統申請要顯示的特效,這樣才能在下面的程序中為這些特效進行設置。(這樣是不是多此一舉有待研究)
為一個Activity設置自定義Title的流程:
1)為自定義的Title建立一個layout(custom_title_1.xml)
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/screen"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:orientation="vertical">
<textview android:id="@+id/left_text" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:text="Left" />
<textview android:id="@+id/right_text" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="Right" />

2)為activity設定自定義Title特效並指定Title的layout:
在onCreate()事件中增加:
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.custom_title);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title_1);
這三條語句的次序不能顛倒,依次為申請特效,創建view,設置特效屬性。其中requestWindowFeature等價於getWindow().requestFeature()
3)在需要修改Title的地方,獲取left_text或者right_text進行設置即可。

Next Study:Activity的其他顯示特效
Window還有其他一些feature,比如FEATURE_CONTEXT_MENU,FEATURE_NO_TITLE,FEATURE_LEFT_ICON等,有待繼續學習研究。

1. Forwarding
這個實現很簡單,就是啟動新的Activity或者Service後,增加一個finish()語句就可以了,這個語句會主動將當前 activity從歷史stack中清除,這樣back操作就不會打開當前activity。
做這個實驗的時候,發現開發Android程序需要注意的一點小問題:增加新的activity時,不能只增加一個class,一定要記得要在manifest文件中增加該activity的描述。(這個簡單的功能,未來google應該給增加吧)
「android:name中的點」意義:首先manifest會有一個默認指定的package屬性,比如指定為"com.android.sample",如果我們增加的activity的實現也在這個package下,則android:name為實現的類名,這個類名前加不加點都沒有關系,都會自動找到該實現,比如實現為forwardtarget,則android:name寫成forwardtarget或者.forwardtarget都可以。唯一有區別的是,如果activity的實現是在默認包的子包裡面,則前面這個點就尤為重要,比如activity的實現是com.android.sample.app.forwardtarget,則android:name必須寫成.app.forwardtarget或者com.android.sample.app.forwardtarget。如果只寫app.forwardtarget,通常編輯器就會提示該類找不到,但不巧的是,你恰好有一個類是app.forwardtarget,那你只有等著運行時報錯吧。
所以建議養成習慣只要是默認package下面的類,無論是否是在子包裡面,前面都要加上一個點,現在當前實現是在默認package下。
2.Persistent
這里的持久化其實就是本地配置文件的讀寫,實現方法是通過Activity.getPreferences(int)獲取SharedPreferences對象,然後操作配置文件的讀寫,值得注意的是以下幾點:
1)Activity.getPreferences(int mode)等價於Content.getSharedPreferences(String filename,int mode),這裡面的filename就是當前class的名稱,例如在PersistentTest類中調用getPreferences(0),等價於調用getPreferences("PersistentTest", 0)。如不想用class name做文件名,可以直接調用getSharedPreferences方法,自己指定配置文件的名稱。
2)mode值的定義:
MODE_PRIVATE = 0,表示當前配置文件為私有文件,只有當前的應用可以訪問
MODE_WORLD_READABLE = 1,表示當前配置文件可以被其他應用讀取。
MODE_WORLD_WRITEABLE = 2,表示當前配置文件可以被其他應用寫入。
如果配置文件又想被人讀又想被寫人,怎麼辦呢,呵呵,當然是MODE_WORLD_READABLE&MODE_WORLD_WRITEABLE,真的懷疑設計android的人以前是做C/C++的。
3)SharedPreferences是個很有意思的實現,讀取數據的時候,直接用get方法就可以了,可是寫數據的時候,沒用給set方法,呵呵,第一次用這個類一定會以為只能讀不能寫。如果要寫數據的話,需要用editor()方法(為什麼不是getEditor()呢?看來設計的人一定是做C/C++的)獲取SharedPreferences.Editor類,然後用這個類的put方法寫文件。為什麼要這樣做呢?好久沒有看設計模式了,不知道他採用是哪種高級模式,等以後有時間,看看它的實現再做研究吧。
4)在這個實現中,讀文件是放在onResume()中,寫文件是在onPause()中,為什麼要這么做呢,看字面意思,好像只有恢復和暫停的時候才會被執行,那程序第一次創建的時候會讀文件嗎?來讓我們看看Activity的生命周期,就會發現這么做的巧妙之處:

看到了吧,在Activity運行的前後,無論狀態怎麼轉移,onResume()和onPause()一定會被執行,與其說實現的巧妙,還不如贊一下這個生命周期的設計的巧妙,這個巧妙不是說說而已,有時間的話,看看MFC中一個windows或者dialog的生命周期,你就知道這個巧妙的含義了,我們可以省多少的事情啊!所以值得記住的是,在android中想在運行前後必須要執行的語句,就應該放在onResume()和onPause()中。
4)最後說一個對android小不爽的地方:drawable,什麼鬼東西啊!在res/drawable放一個文件,訪問的時候是drawable/name,如果在values裡面建立一個drawable的變數,訪問的時候也是drawable/name,例如在drawable目錄下放入一個red.xml文件,訪問的時候是@drawable/red,如果建立一個drawable的變數red,訪問也是@drawable/red,這完全就是兩個東西啊,雖然最新的編輯器會提示重名,但查找的時候真的很不方便啊,尤其是drawable變數,可以放在一個abc.xml中 。

這個實驗描述了Activity之間的另外一種切換方式,通常Activity的切換方式是Activity1通過startActivity切換到Activity2, Activity2再通過startActivity切換到其他的Activity,但是有的時候我們需要啟動一個新的Activity獲取用戶的輸入,然後返回到原來的Activity,比如activity是一個通訊錄列表,我們通過一個增加按鈕打開另一個activity讓用戶輸入新的聯系人,輸入後再返回通訊錄列表。
這個時候,我們可以通過startActivityForResult(Intent, int)方法啟動新的Activity,新的Activity通過setResult(int, Intent)方法返回老的Activity,這個時候會觸發老的Activity的onActivityResult(int, int, Intent)方法,我們可以在這個方法的實現中處理返回事件。
startActivityForResult(Intent, int),其中int為Request Code,也是onActivityResult的第一個參數,通常一個Activity不僅僅只觸發一個獲取事件,比如上面提到的通訊錄,可能會有一個增加聯系人的事件,也可能會有一個修改聯系人或給指定聯系人增加一個電話的事件,但我們只有一個onActivityResult方法,所以我們需要這么一個Request Code區分是哪個事件的返回,這個值是用戶自己定義的,而且完全是用戶自己進行管理,很人性化。
setResult(int, Intent),其中的int是Result Code,它表示的是返回的狀態,也是onActivityResult的第二個參數。這個參數需要特別注意一下,android為這個值提供了三個默認的常量。我們先看前兩個,RESULT_CANCELED和RESULT_OK,這個從字面上很好理解,一個是運行取消,另一個是運行成功返回,當用戶按BACK鍵時,Result Code就是RESULT_CANCELED。但我們看看他們分別對應的值,就會發現奇怪的地方,RESULT_CANCELED=0,RESULT_OK=-1!!!在其他系統中OK通常都是1,而在android,它是-1,這是為什麼呢,來讓我們看看第三個默認的常量,RESULT_FIRST_USER=1,明白了吧!android把所有大於0的數字都留給了用戶自己,多麼人性化啊!但是要注意了,如我前面所說,大部分系統都喜歡將大於0作為正確返回,小於0作為錯誤返回,所以很多人(包括我),喜歡用if(result > 0)表示返回成功,這個在android是不通行的,一定要特別注意!
此外在這個程序中,我們可以看到另外一件事情,關於TextView,如果我們要改變裡面的內容,比如增加新的欄位,需要將其設為可變長的,方法是mTextView.setText(mTextView.getText(), TextView.BufferType.EDITABLE);
修改內容的方法是通過TextView.getText()獲取Editable對象,然後Editable對象進行編輯就可以了,Editable類似於StringBuffer,編輯之後會直接反映到TextView裡面,不需要再setText();
2. SaveRestoreState
完全沒有看懂這個Demo要演示什麼效果,好像是onSaveInstanceState以及TextView的android:freezesText屬性有關,但具體效果沒有研究出來,留到以後再研究吧
3.Translucent
Android為透明效果提供了內置的Theme: android:style/Theme.Translucent,只需要把當前的activity的theme設置為這個Theme就可以達到完全透明的效果。
如果要半透明的話,可以增加一個繼承該Theme的style即可,實現如下:

#e0000000
此外API Demo中提供了另一個實例,不用繼承內置的Theme,可以自己完全創建一個新的style,實現透明效果,同時可以加一些其他特效,比如模糊化等,

❹ 怎麼在Android Studio裡面運行demo

安裝之後如果還報錯的話就新建一個工程,然後重啟再打開就好了(昨天更新時遇到了同樣的問題,google網上不去,手動安裝就這樣了,找不到gradle,然後新建了一個工程,他就能找到了

❺ android studio怎麼導入eclipse

AndroidStudio是google力推的一款Android開發工具,很多開發者可能還是在使用Eclipse,將Eclipse下面的工程導入到AndroidStudio中使用如下步驟:1、在Eclipse中新建android項目androiddemo。裡面只有一個MainActivity,主要是使用fastjson將一個Person對象轉化成字元串。2、在項目上點擊右鍵->Export。3、在彈出的Export窗口中選擇「Android」下面的GenerateGradlebuildfiles。然後點擊next。4、然後一路next,選中需要導出的工程,繼續next。5、最後會提示將要導出的gradle文件的位置,然後點擊finish。6、打開AndroidStudio,點擊菜單欄的「File」->「ImportProject」。7、在彈框中選擇剛才導出的工程,然後點擊ok。

❻ 請大俠告訴google的原生android源碼從哪能下載到啊想看看裡面的示例源碼,如計算器等

android sdk裡面不是有demo嗎?可以從那裡看看例子,不過有沒有計算器就不太清楚了,上官網上看看也可以,不過就是英文版的。。。

❼ android 消息推送後伺服器端怎麼存儲推送的消息

Android利用極光推送獲取到消息並緩存至本地 。緩存的方式有多種,最常用的類似搜索記錄,這些用的資料庫比較多。關於技術部分需要的操作也不是太多,無非包括兩部分:一部分是在接到推送的消息的時候緩存,另一部分是在頁面的時候將消息展示出來。
極光IM(JMessage)致力於幫助 App 解決 應用內聊天的問題,開發者可以通過JMessage服務快速集成 IM 功能到 App 里。只需要很少的工作,集成 IM SDK,做簡單的介面集成,就可以使自己的 App 具備了用戶間聊天的功能。
高送達率,時效保證:極光推送自主協議確認推送消息的送達。開發者可以靈活的自定義推送時間,服務集成SDK簡單:簡單復制便可直接編譯運行。推送內容多樣性服務:除了通知,還有消息、多媒體等。

❽ 怎麼實現伺服器給android客戶端主動推送消息

採用MQTT協議實現Android推送功能是一種解決方案。MQTT是一個輕量級的消息發布/訂閱協議,是實現基於手機客戶端的消息推送伺服器的理想解決方案。

常見的解決方案實現原理:

1、輪詢(Pull)方式:客戶端定時向伺服器發送詢問消息,一旦伺服器有變化則立即同步消息。

2、SMS(Push)方式:通過攔截SMS消息並且解析消息內容來了解伺服器的命令,但這種方式一般用戶在經濟上很難承受。

3、持久連接(Push)方式:客戶端和伺服器之間建立長久連接,這樣就可以實現消息的及時行和實時性。

(8)androidgoogledemo擴展閱讀:

推送消息注意事項:

1、支持第三方推送內容,是要客戶端和伺服器都支持的,客戶端和伺服器都導入推送SDK。

2、伺服器推送內容,可以精確指定推送時間,推送的具體接收人,用戶群,位置。

3、即推送的維度可以使時間,位置,人群。

4、極光使用了兩種不同的通知方式,一種是推送通知,一種是推送消息。

5、如果要使用androidpn,則還需要做大量的工作,需要理解XMPP協議、理解Androidpn的實現機制,需要調試內部存在的BUG。

參考資料來源:網路-伺服器

參考資料來源:網路-Android客戶端

參考資料來源:網路-信息推送

熱點內容
配置業務分類時主要考慮哪些原因 發布:2024-05-07 05:12:40 瀏覽:184
外網如何訪問內網ip 發布:2024-05-07 05:12:30 瀏覽:814
網易版有拔刀劍的伺服器叫什麼 發布:2024-05-07 04:56:35 瀏覽:751
中國好源碼 發布:2024-05-07 04:56:29 瀏覽:872
小兵的伺服器是什麼 發布:2024-05-07 04:55:46 瀏覽:186
網易我的世界四月伺服器維護 發布:2024-05-07 04:24:58 瀏覽:214
gdb調試文件夾 發布:2024-05-07 04:03:25 瀏覽:155
玩5款大型游戲需要什麼配置 發布:2024-05-07 03:59:09 瀏覽:91
什麼安卓游戲畫面炫酷 發布:2024-05-07 03:58:18 瀏覽:74
無錫五洋賽德壓縮機有限公司 發布:2024-05-07 03:28:05 瀏覽:152