Time of Update: 2018-12-03
BroadcastReceiver(廣播接收器)是Android中的四大組件之一。 下面是Android
Time of Update: 2018-12-03
一.camera啟動1.一個activity啟動調用流程: onCreate()-->onStart()-->onResume() onCreate(): 1.可添加所需布局檔案,畫介面。 2.開啟線程,啟動硬體網路攝影機,調用CameraHolder.instance().open()得到一個android.hardwareCamera執行個體mCameraDevice
Time of Update: 2018-12-03
由於Android 不像iPhone有http live streaming的端到到方案(方便提供海量服務),暫時用開源的feng(http://lscube.org/feng,支援mp4(H264+AAC))搭建一個RTSP/RTP直播伺服器用來測試,feng相對於darwin、live555等流媒體伺服器的優勢很容易增加新的媒體檔案解析器,按照其中demux_avf.c結構利用ffmpeg
Time of Update: 2018-12-03
俱樂部的作業已經拖了一周了,實在不好意思再不弄了。。。前天晚上開了個頭,總是因為資源太大運行不了,導致一直沒法繼續編下去。。今天偶然發現居然刪掉了之前工程裡的音樂資源就又能加進去一個音樂了~為了避免再次運行不了,我就加了兩個音樂,來回切換,也算能夠完成基本要求啦~表示資源太大光等待它安裝就要好久好久。。。人生真的是一個漫長的等待過程啊。。。下面說一說遇到的問題吧~1、首先的工作就是PS了。。表示自從學了點PS之後,似乎就有了強迫症。。。不管程式編的怎麼樣。。。介面可絕對不能醜。。不然看著太沒有心
Time of Update: 2018-12-03
Android簡單的動態控制軟鍵盤的顯隱:隱藏軟鍵盤方法:getWindow().addFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);源碼注釋:/** Window flag: invert the state of{@link #FLAG_NOT_FOCUSABLE} with * respect to how this window interacts with the current method.
Time of Update: 2018-12-03
之前有個客戶的需求特別怪,要求應用不在全部應用程式列表裡顯示,通過撥打指定的電話號碼形式啟動應用,開始的想發就是在manifest.xml裡的第一個activity裡不添加<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />這兩個intentfilter。發現在4.0以上的版本就會出現錯誤!4.
Time of Update: 2018-12-03
button繼承於textView,textView裡有setTextColor方法,貪於方便就用.setTextColor(int color);這個方法。但是運行發現根本不起作用,文字都變成黑色的了。看api發現還有setTextColor(ColorStateList colors)這個方法,傳入ColorStateList對象。ColorStateList
Time of Update: 2018-12-03
導讀:我們以如何搶先開機啟動為例,來說明接收無序廣播的靜態廣播接收器的接收順序(注意,文本只是陳述結果,所以叫結果篇,之後的文章再給出源碼分析)首先先說一下android中的廣播和廣播接收器廣播可以分為有序、無序和sticky共三種廣播接收器可以分為靜態和動態兩種首先我們要明確兩個問題1.接收無序廣播的接收器接收到廣播的順序是有序的2.接收無序廣播的接收器也一樣可以設定優先權的這裡主要說一下多個應用中的靜態廣播接收器(優先順序都相同的情況下)接收無序廣播時的接收順序注意:這裡主要描述結論,具體原
Time of Update: 2018-12-03
Android的官方文檔關於開發介面特效的文章和經驗已經很多,我之所以寫這段動畫效果代碼是因為發現很多文章通過xml資源去布局各種效果的,如果效果是動態變化的呢,比如我點擊的圖片位置是變化,需要飛入到一個指定的位置,代碼如下: mGridView.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int
Time of Update: 2018-12-03
下面是通過 pm list packages -f 列出手機中的軟體,然後跟模擬器中的軟體進行對比後得出的可以安全卸載的列表。 注意:卸載之後就沒有Google Market了,還想用google market的不要卸載。 先進入adb shell,然後mount -o remount,rw /dev/block/mtdblock2 /system,再之後執行下面的命令刪除。 rm /system/app/IM.apkrm /system/app/WeatherForecast.apkrm /
Time of Update: 2018-12-03
今天看SDK, 看到這個東西不是很懂, google了一會有些許收穫. 以下是我的理解.getWidth得到是某個view的實際尺寸.getMeasuredWidth是得到某view想要在parent view裡面占的大小.那用法呢?getWidth在OnCreat的時候得到的是0..很奇怪, 我找到了原因: 當一個view對象建立時,android並不知道其大小,所以getWidth()和
Time of Update: 2018-12-03
訊息分發知識基礎動作序列的三個事件TouchEvent 分三種事件:down、move、up。其中move事件在一個操作中(這裡說的一個操作就是使用者與螢幕的互動,即由down到up的動作序列)可能會發生多次。 但是,我們認為一個動作序列會包含以上三種事件,因此,在事件處理中就是要處理好這個過程,而最重要的就是down事件,這是一個動作序列的起始,沒有down談不上後面的事件了。 所以,我們把消耗down事件的類當做是這個動作序列的最終載體。如果Down事件不歸你處理,那這個動作序列的move,
Time of Update: 2018-12-03
啟動那個Acitivity有兩種方式:implicit(隱藏) intent 和 explicit(明確) intentExplicit Intent 明確的指定了要啟動的Acitivity 比如以下Java代碼,明確指定了要啟動B: Intent intent= new Intent(this, B.class) Implicit Intent 沒有明確的指定要啟動哪個Activity ,而是通過設定一些Intent
Time of Update: 2018-12-03
Sensor本地封裝類SensorDeviceSensorDevice是在本地代碼中SensorService對Sensor裝置的抽象類別型封裝,它封裝了感應器硬體的硬體操作,該類繼承了Singleton類,通過getInstance方法獲得單例模式裝置操作對象:@frameworks/base/services/sensorservice/SensorDevice.hclass SensorDevice : public Singleton<SensorDevice> {
Time of Update: 2018-12-03
1.
Time of Update: 2018-12-03
1、Android 擷取本機Mac 地址方法:需要在AndroidManifest.xml檔案中添加許可權: <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> public String getLocalMacAddress() { WifiManager wifi = (WifiManager)
Time of Update: 2018-12-03
今天裝了個Android Studio試試,安裝完成後卻打不開。我的作業系統是32位的,Android Studio同事用的64位系統就沒問題。進入命令列執行 android-studio\bin 目錄下的studio.bat提示Unrecognized VM option '+UseCodeCacheFlushing' Could not create the Java virtual machine也就是不能建立虛擬機器。用文本工具開啟studio.batline25 to line 28:
Time of Update: 2018-12-03
最近在做項目的時候要往資料庫中插入很多城市,而android中不支援一次插入多條資料。把sql語句粘到一個txt檔案中。然後通過一行一行的讀檔案來一條條插入。讀取檔案的代碼:public static String getString(int filePath) { Resources res = context.getResources(); InputStream in = null;
Time of Update: 2018-12-03
SurfaceFlinger對象建立過程示意 1 SurfaceSession的建立 用戶端請求建立Surface時,首先在要與SurfaceFlinger建立一個Session,然後再Session上建立一個Connection通過概念返回Bclient對象。WindowManagerService在添加第一個視窗前會檢查SurfaceSession是否建立,如何沒有建立,將會建立立一個執行個體來代表與SurfaceFlinger的一個串連。new
Time of Update: 2018-12-03
Android GDI之SurfaceFlingerSurfaceFinger按英文翻譯過來就是Surface投遞者。SufaceFlinger的構成並不是太複雜,複雜的是他的用戶端建構。SufaceFlinger主要功能是:1) 將Layers (Surfaces) 內容的重新整理到螢幕上2) 維持Layer的Zorder序列,並對Layer最終輸出做出裁剪計算。3) 響應Client要求,建立Layer與用戶端的Surface建立串連4) 接收Client要求,修改Layer屬性(輸出大小,