提到串口編程,就不得不提到JNI,不得不提到JavaAPI中的檔案描述符類:FileDescriptor。下面我分別對JNI、FileDescriptor以及串口的一些知識點和實現的源碼進行分析說明。這裡主要是參考了開源項目android-serialport-api。串口編程需要瞭解的基本知識點:對於串口編程,我們只需對串口進行一系列的設定,然後開啟串口,這些操作我們可以參考串口調試助手的源碼進行學習。在Java中如果要實現串口的讀寫功能只需操作檔案裝置類:FileDescriptor即可,其
預設情況下的Android模擬器就是下面的這個樣子: 看到這個螢幕最顯眼的問題顯然它的醜陋的介面。模擬器視窗佔據了螢幕巨大的空間,而且毫無緣由的放著一個螢幕小鍵盤。如果你沒親自用過模擬器的話,還有一個不易發現的問題:幾乎是慢到不能用!為了拍上面的圖花了5分鐘才把模擬器啟動起來,而且幾乎對輸入事件沒響應。有3個原因可以解釋這個問題: 1.非本地化的。預設使用ARM架構的模擬器,儘管將指令轉化成x86的也是可行的,但這個轉換過程是非常慢的。
我們都知道做程式員有時會惡搞,就像android中,程式員在setting中就隱藏這樣一項:我們可以找到“關於手機"這一項在裡面有“android版本”這一項,當我們快速點擊“android版本”這一項時會彈出一張圖片(惡搞型,這是2.3作業系統,但是4.0系統的話會彈出一個android標誌圖片,你按住android標誌不放的話會出現很多android標誌在移動的動畫:)。這裡我們就說說2.3系統的:首先我們找到Settings的源碼,在package/app/Settings/src/com
Android 調用內建的錄製音頻程式 Android中有內建的音頻錄製程式,我們可以通過指定一個Action MediaStore.Audio.Media.RECORD_SOUND_ACTION的Intent來 啟動它就可以了。然後在onActivityResult()方法中,擷取Intent的Data,就是錄製的音頻對應的URI。 java代碼: 複製代碼 代碼如下:package eoe.demo; import android.app.Activity; import
在項目中,一進入一個頁面, EditText預設就會自動擷取焦點。 那麼如何取消這個預設行為呢? 在網上找了好久,有點 監聽軟鍵盤事件,有點 調用 clearFouse()方法,但是測試了都沒有! xml中也找不到相應的屬性可以關閉這個預設行為 解決之道:在EditText的父級控制項中找一個,設定成 複製代碼 代碼如下:android:focusable="true" android:focusableInTouchMode="true" 這樣,就把EditText預設的行為截斷了!
首先來看一下使用Java語言編寫的Android應用程式從源碼到安裝包的整個過程,如下,其中包含編譯、連結和簽名等:(1)使用aapt工具產生R.java檔案可以先通過搭建好的Eclipse開發環境建立一個未編譯的Android工程,記的一定要將Eclipse中Project菜單下的Build Automatically選項前面的對勾去掉後再去建立工程。建立好未編譯的工程後,在命令列中輸入如下命令:d:\android-sdk-windows\platform-tools>aapt
輸入法(IME)是讓使用者輸入文本的控制項。Android提供了一個可擴充的的IME的架構,它允許應用程式給使用者提供另外的IME,如軟鍵盤或語音輸入。這些IME一旦安裝,使用者就可以從系統的設定中選擇他們想要使用的IME,並且這個設定對整個系統都是有效,每次只有一種IME是可用的。要在Android系統中添加一種IME,你就要建立一個包含繼承了InputMethodService類的類應用程式。另外,你通常還要建立一個“settings”Activity,把選項傳遞給IME服務。你還可以定義一
Android中的資源訪問 Android中的資源是指非代碼部分,指外部檔案。 assets中儲存的一般是原生的檔案,例如MP3檔案,Android程式不能直接存取,必須通過AssetManager類以二進位流的形式來讀取。 res中的資源可以通過R資源類直接存取。 R類是自動產生的,在該類中根據不同的資源類型產生了相應的內部類,該類包含了系統中使用到的所有資源檔的標識。 1.在代碼中使用資源檔 在代碼中訪問資源檔,是通過R類中定義的資源檔類型和資源檔名稱來訪問的。
以前在公司做項目的時候,遇到了解析度的適配問題,說起來當時挺糾結的,因為沒有外網,所以這個問題,都是黑暗中摸索的,嘗試了許多方法,最後和徒弟們一起搞出了這個方法,具體行不行,先和大家分享下,這個方法不能說萬能的,但是最起碼它解決了解析度跟密集度的關係,但是也引來一個問題,就是布局會因為圖片資源小而失真,所以這也需要美工的同志多多配合的,廢話不說,貼代碼: 第一步,先建立一個view資訊的javabean類: 複製代碼 代碼如下:package com.zte.layout.adapter;
Android中如何判斷系統當前是否處于飛行模式中: 複製代碼 代碼如下:public static boolean IsAirModeOn(Context context) { return (Settings.System.getInt(context.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 0) == 1 ? true : false); } 如何切換飛航模式 複製代碼 代碼如下:public static void
此方法適用於所有母控制項無法擷取焦點的情況
看到很多書中都沒有對PreferenceActivity做介紹,而我正好又在項目中用到,所以就把自己的使用的在這總結一下,也方便日後尋找。 PerferenceActivity是什麼,看下面的: Android系統(左)MusicPlayer Setting(右) 好了,我們看到Android系統本身就大量用到了PreferenceActivity來對系統進行資訊配置和管理,那麼它是怎麼儲存資料的呢,如何創
這篇文章只是總結下getView裡面最佳化視圖的幾種寫法,就像孔乙己寫茴香豆的茴字的幾種寫法一樣,高手勿噴,勿笑,只是拿出來分享,有錯誤的地方歡迎大家指正,謝謝。 listview Aviewthatshowsitemsinaverticallyscrollinglist。
學習目的: 1、瞭解在Android中如何使用TextView控制項 2、掌握TextView控制項重要屬性 作用:TextView類似一般UI中的Label,TextBlock等控制項,只是為了單純的顯示一行或多行文本 的XML布局如下: 複製代碼 代碼如下:<TextView android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content"
學習目的: 1、掌握在Android中如何建立Gallery 2、初步理解Android適配器的原理 3、實現簡單的控制項縮放動畫 簡介: 1、Gallery是Android內建的一個控制項,它可以繼承若干圖片甚至是其他控制項 2、Gallery內建了滾動播放圖片功能,此功能您可以通過模擬器拖曳滑鼠或者在手機上拖拽驗證
如果不對串連進行處理 下載就會報錯 要想解決這個問題 只需對你的url 進行編碼然後替換空格用編碼錶示 //對路徑進行編碼 然後替換路徑中所有空格 編碼之後空格變成“+”而空格的編碼錶示是“%20” 所以將所有的“+”替換成“%20”就可以了 url = URLEncoder.encode(urlStr,"utf-8").replaceAll("+",
在偵錯工具的時候,參數的輸出對於我們瞭解整個程式是否按照我們自己的邏輯來運作,很有協助。 在Android平台下的java程式,有很多在控制台輸出資訊的方法: 1. System.out.println(" ... "); 2. android.util.Log(" ... "); 現在,我們就分別這兩種輸入,來看看怎樣做到取出我們僅僅關係的內容,其餘的輸出,我們都將其消失在世界的另一邊去。 一. 編寫代碼: 首先,看看我的java程式:
1、不讀Android開發文檔 Android開發人員網站可以很好的協助你。很多的文檔也可以通過SDK工具下載。這些文檔不僅僅是Javadoc API的參考,它包括許多指南、教程、視頻、培訓以及其他有用的資料來建立Android應用程式。 Android訓練,通過一些有用的教程樣本,指導你解決特定問題或實現特定的功能。 2、不熟悉Android開發工具 Android
一、基礎知識: 1.一個Intent對象包含了一組資訊: 1. Component name 指定啟動的Activity 2. Action 要做什麼 3. Data 傳送資料 4. Category 5. Extras 索引值對 6. Flags 2.Intent基本用法: [java] view plaincopyprint?// 產生一個Intent對象 Intent intent = new
//擷取螢幕大小,以合理設定 按鈕 大小及位置 DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); int width = dm.widthPixels; int height = dm.heightPixels; //自訂layout組件 RelativeLayout layout = new RelativeLayout(this);