Time of Update: 2018-12-04
前面的文章中對android訊息機製作了一個簡單介紹,通常的用法為:1、在帶有訊息迴圈的線程中建立handler;2、在其他線程中建立訊息,並綁定handler,通過handler發送訊息;3、在handler的handleMessage方法中處理訊息。在這裡有幾個疑問:1、既然要在帶有訊息迴圈的線程中建立handler,那麼為什麼通常我們建立handler時,不需要建立訊息迴圈呢?這是因為通常我們在主線程中建立handler,而主線程預設是建立訊息迴圈的,這個封裝在android架構中。2、哪
Time of Update: 2018-12-04
public String getSmsInPhone(){final String SMS_URI_ALL = "content://sms/"; final String SMS_URI_INBOX = "content://sms/inbox";final String SMS_URI_SEND = "content://sms/sent";final String SMS_URI_DRAFT = "content://sms/draft";StringBuilder
Time of Update: 2018-12-04
android訊息機制主要涉及到以下內容:Message, Looper,Handler。其原理為:訊息線程(預設是主線程,也就是UI線程),維護一個訊息迴圈和一個訊息佇列,背景工作執行緒向訊息佇列中添加訊息,訊息迴圈從隊列中取出訊息並處理。其中Looper類負責訊息迴圈和訊息佇列,Message類是訊息的載體,Handler類負責訊息佇列中添加訊息和訊息的處理。Looper的prepare介面負責為調用線程建立一個Looper對象,下面是android源碼,漢字部分為本文添加的注釋:
Time of Update: 2018-12-04
android:gravity 用來設定控制項自身內容在控制項中的布局,比如一個Button控制項設定 android:gravity="center"則表示該Button中的文字在Button上置中顯示。android:layout_gravity 用來設定控制項相對於其父控制項的布局,比如一個Button控制項設定
Time of Update: 2018-12-04
android 中擷取通訊錄中連絡人資訊,代碼如下: /** * 擷取連絡人資訊,包括:名稱、號碼、頭像 * @return */ private ArrayList<PhoneContactor> getPhoneContacts(){ Log.i(TAG, "getPhoneContacts"); ContentResolver
Time of Update: 2018-12-04
Android的虛擬機器是基於寄存器的Dalvik,它的最大堆大小一般是16M。但是Android採用的是Java語言編寫,所在很大程度上,Android的記憶體機制等同於Java的記憶體機制(Java記憶體機制在網上文章很多,大家有興趣瞭解的可以去Google或者百度尋找一些資料)。因此在一些程式員開發的時候,記憶體的限制問題給很多初學開發人員帶來記憶體溢出等嚴重問題。在我們不使用一些記憶體的時候,我們要盡量在Android或者其他平台上避免在運行其他程式時,儲存必要的狀態,使得一些死進程所帶
Time of Update: 2018-12-04
在編寫android應用程式時,如果需要調用系統原生的管理應用程式介面呢?本人在一個項目中遇到過,本人沒有發現這方面現成的intent,不過通過看原始碼實現了。android原始碼application_settings.xml <PreferenceScreen android:title="@string/manageapplications_settings_title"
Time of Update: 2018-12-04
2.0以後有三種尺寸,分別為36*36/48*48/72*72 你會看到drawable-hdpi/drawable-ldpi/drawable-mdpi不同的目錄用來儲存不同尺寸的表徵圖,在AndroidManifest.xml中只需要寫@drawable/icon就可以,它會根據螢幕解析度去找不同目錄下的表徵圖 hdpi裡面主要放高解析度的圖片,如WVGA (480x800),FWVGA (480x854) mdpi裡面主要放中等解析度的圖片,如HVGA
Time of Update: 2018-12-04
public class MyApp extends Application { private Integer[] state; public Integer[] getState() { return state; } public void setState(Integer[] state) { this.state = state; } @Override public void onCreate() { // TODO Auto-generated method stub super.
Time of Update: 2018-12-04
Platform VersionAPI Level Symbol Android 3.011 Honeycomb (蜂巢)Android 2.3.310 Gingerbread (薑餅) Android 2.39 Gingerbread (薑餅) Android 2.28 Froyo ( 凍優酪乳) Android 2.17 Eclair (法式奶油夾心甜點) / Flan (水果餡餅) Android 2.0.16 Eclair (法式奶油夾心甜點) Android 2.05 Eclair (
Time of Update: 2018-12-04
dip: device independent pixels(裝置獨立像素). 不同裝置有不同的顯示效果,這個和裝置硬體有關,一般我們為了支援WVGA、HVGA和QVGA 推薦使用這個,不依賴像素。 px: pixels(像素). 不同裝置顯示效果相同,一般我們HVGA代表320x480像素,這個用的比較多。 pt: point,是一個標準的長度單位,1pt=1/72英寸,用於印刷業,非常簡單易用; sp: scaled
Time of Update: 2018-12-04
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.mysrc" android:versionCode="1" android:versionName="1.0"> <application
Time of Update: 2018-12-04
在做軟體開發的時候軟體可能需要判斷使用者的手機是否能連網,下面就是簡單的判斷方式:ConnectivityManager cwjManager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo info = cwjManager.getActiveNetworkInfo(); if (info != null && info.isAvailable()){ //do }
Time of Update: 2018-12-04
最近協助老師開發一個程式,需要調用webservice服務,找到了以下資料,與大家分享。While working on a new mobile applicationfor one of my clients, I had to make calls out to web services to retrieve(取回) data. Using the Android framework tomake these calls was very cumbersome(難處理的).
Time of Update: 2018-12-04
Android 禁止系統休眠,使螢幕不變暗,保持遊戲中螢幕高亮實現這一功能的方法有兩種,一種是在Manifest.xml檔案裡面聲明,一種是在代碼裡面修改LayoutParams的標誌位。具體如下:1、在Manifest.xml檔案裡面用user-permission聲明。代碼如下: <uses-permission android:name="android.permission.WAKE_LOCK">
Time of Update: 2018-12-04
最近工作比較閑,除了用公司的imac機學學iphone外,有必要對以前的項目裡面的痛點進行一下總結了,對於Android開發中的痛點,一是網路擷取內容的處理,二是UI設計方面。對於我來說,特別麻煩就是UI設計方面的東西,公司的開發以iphone為主,畢竟香港人的iphone普及比較高(銷售價格好像是全球最低的),為了模仿iphone的Tabbar,用TabActivity+ActivityGroup的處理方式不知道出了多少問題了,還好都一一解決了。
Time of Update: 2018-12-04
1、配置android的開發環境,第一肯定是配置jdk,ubuntu下安裝jdk的方法有很多:(1)在 Ubuntu 下,只需要執行:sudo apt-get install sun-java6-jdk 注意:這種方法雖然非常簡單,不需要配置環境變數,有時候直接打這個命令並不可行,遇到錯誤的同學,可以通過PPA在Ubuntu11.04中安裝java,具體過程如下:開啟終端,輸入命令:sudo add-apt-repository ppa:ferramroberto/javasudo
Time of Update: 2018-12-04
main.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" ><
Time of Update: 2018-12-04
public class HelloWebView extends Activity { WebView mWebView; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(
Time of Update: 2018-12-04
1.下載開源工具apktoolhttp://code.google.com/p/android-apktool/注意其中的apktool.jar也在該網站例如apktool1.4.1.tar.bz2 解壓奪成zip改名為.jar即可然後使用命令列:./apktool d ~/testdeJava/Contacts.apk I: Baksmaling...I: Loading resource table...I: Loaded.I: Loading resource table from