Time of Update: 2018-12-03
田海立@CSDN2013-3-31 事情的由來:Android很多系統的adb id是固定的,驅動一旦寫好每個裝置的id都是一樣。有些需求要求adb的id每個裝置都不同。adb id即是通過命令adb devices查看到的裝置的id。這在Android4.0中已經實現,而實現的要點如下:1. 核心的Adb
Time of Update: 2018-12-03
註冊:函數調用裝置掛到電源管理的函數調用關係是(依次往下調用)audio_card_init (函數類型包含__init 初始化調用)platform_device_adddevice_adddevice_pm_addlist_add_tail(最直接的鏈表添加操作) 以音訊裝置註冊為例,音頻音效卡初始化代碼目錄:kernel/sound/soc/xxxx.cstatic int __init audio_card_init(void){int ret =0;xxxx_snd_device =
Time of Update: 2018-12-03
android:allowTaskReparenting 用來標記Activity能否從啟動的Task移動到有著affinity的Task(當這個Task進入到前台時)——“true”,表示能移動,“false”,表示它必須呆在啟動時呆在的那個Task裡。 如果這個特性沒有被設定,設定到<application>元素上的allowTaskReparenting特性的值會應用到Activity上。預設值為“false”。
Time of Update: 2018-12-03
田海立@CSDN2013-3-16 本文分析Android中如何解析init.rc檔案,重點描述了on action內的解析,並從解析的過程中總結出init.rc的文法規範。 對init.rc的解析是在parse_config(): [system/core/init/init_parser.c]中進行的。解析發生在init全過程中的哪個階段,參看《Android init進程啟動過程分析》。 一、解析過程1. 掃描init.rc中的token 找到其中的
Time of Update: 2018-12-03
今天程式有個bug,如果把apk的名稱修改後包括“%”時就會出現“解析包時出現問題”,無法繼續安裝,看了半天的程式安裝部分的代碼: 01.Intent intent = new Intent(Intent.ACTION_VIEW); 02.intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 03.intent.setDataAndType(Uri.parse("file://" + filePath), 04."application/
Time of Update: 2018-12-03
package com.geolo.android;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Bitmap.Config;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Color;import
Time of Update: 2018-12-03
這裡所說的 android 組件,主要是指 android 中 Activity、Service、ContentProvider 以及 BroadcastReceiver.在 android 源碼開發的過程中,大家拿到手的都是一樣的 android 源碼,但是硬體平台卻是大相徑庭,所以會引發各種各樣的問題,於是乎,android 開發越發精彩!這篇部落客要是在研究 Settings
Time of Update: 2018-12-03
什麼是號碼匹配,個人理解,即判斷兩組號碼是否屬於同一個號碼。在實際使用過程中,接觸到的號碼會涉及到區號,國家編碼以及IP號碼等,這個時候就用到了號碼匹配。兩個內容不一樣的號碼,如+86***和17951***,是不是同一個號碼。就需要軟體判斷是否同一個號碼。手機裡面涉及號碼匹配的情境很多,打電話發簡訊都要用到。和前面的+86***和17951***兩個號碼所示,號碼匹配是從後往前進行比較的,可以猜測一個標準號碼的附加號碼都是加在前面的。
Time of Update: 2018-12-03
其實很簡單,分三步:1.在drawable中建立檔案checkbox_selector.xml:<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:state_checked="true" android:drawable="@drawable/checkbox_ok" /&
Time of Update: 2018-12-03
簡單介紹:用安卓實現的一個黑色全屏上,紅色的小球的隨機跳動,加速度越來越快。採用surfaceview實現,在activity中設定為全屏,並將小球彈跳的surfaceview設定為顯示的view,主要代碼都在surfaceview中實現。將小球的初始位置設定為螢幕的中央,將初始的方向設定為向下(用角度表示,右方向為0°,順時針方向角度增加),加速度設定為1。然後開啟線程進行surfaceview的重繪,線程Thread.sleep(10)之後進行一次重繪,並且加速度加0.2,否則太快。每次重繪
Time of Update: 2018-12-03
昨天接到個小任務,基於google maps android api v2上的開發,一開始不知道google maps已經升級到v2了。記起以前開發v1的時候有個api key於是乎到官網去產生。發現產生api key的頁面已經不存在了,而是v2的developer guide,功能比之前的強大多了,有很多的改進。 基於v2上的開發要做幾步準備功夫 1:啟動android sdk manager,選中Extras目錄下的Google Play Service
Time of Update: 2018-12-03
上一章只是簡單的顯示地圖,也沒有初始化地圖要顯示的位置,比例,角度等等。這章給介紹下怎麼指定地圖的一系列參數。 通過xml方式指定參數,其中class=“com.google.android.gms.maps.SupportMapFragment”,google maps android api要求api
Time of Update: 2018-12-03
這章說說地圖上的標記Marker,上一章已經用到了Marker這個類了。建立一個系統預設的Marker很簡單private GoogleMap mMap;mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();mMap.addMarker(new MarkerOptions() .position(new LatLng(0, 0))
Time of Update: 2018-12-03
導讀:本文說明系統發送廣播的部分流程,如何利用Intent尋找到對應接收器。我們依然只關注接收器的排序問題這篇文章主要是針對我前兩篇文章android安全問題(四) 搶先開機啟動 - 結果篇android安全問題(五) 搶先攔截簡訊 - 結果篇現在給出第二步分的分析 下面就來看看發送廣播的流程Context中的sendBroadCast函數的實現是在ContextImpl中,和發送廣播相關的有如下六個函數void
Time of Update: 2018-12-03
Polyline定義了一組組連的線段在地圖上,一個折線對象由一組經緯度位置群組成,並按一個有序的序列建立一系列線段串連起這些地點。要建立一個Polyline首先要建立一個PolylineOptions的 對象,點與點之間的連線順序將它們添加到PolylineOptions,要添加點到PolylineOptions調用PolylineOptions.add()。
Time of Update: 2018-12-03
Android系統中的應用程式都是用Java開發的。Android NDK使我們能夠在android上使用C/C++開發的原生代碼。有兩個理由使用NDK: 一是合理的重用現有的代碼;二是在程式中某些關鍵的部分提高執行效率。使用Android NDK開發,除了普通Android開發環境外,還需要下載NDK包 和 安裝Cygwin工具(windows環境下需要)。CygwinCygwin 是 Windows 上類似於 Linux 的環境。它包括一個提供 UNIX 功能性基本子集的 DLL
Time of Update: 2018-12-03
(這裡不教你如何分析heap快照,只說明如何在關鍵時候抓取)首先說一下,在程式沒有崩潰的時候如何抓取heap快照。這個大家應該都知道,在ddms中內建此功能。見首先我們選中一個進程,然後點擊 Update Heap按鈕(小綠蟲子旁邊的按鈕),這時就能看到heap使用方式如果想取出快照詳細分析,我們可以點擊 Dump HPROF File按鈕,儲存到電腦上面。使用android-sdk/tools/hprof-conv這個工具把檔案轉換一下,之後用MAT分析即可。hprof-conv
Time of Update: 2018-12-03
編譯運行完Android源碼,接下來的就是如何去學習Android龐大的源碼,沒有一個正確的方法去學習分析它,那麼你用幾年的時間估計也不能把其中的代碼弄清楚,作為一個Android開發人員,你需要的是從一個非常龐大複雜的代碼中提取你想要的那部分,然後正確的去修好編寫它! 閑話少說,源碼(Android2.3)的目錄結構Makefile (makefile檔案)bionic (bionic C庫,C運行時支援:libc、libm、libdl、動態linker)bootable
Time of Update: 2018-12-03
1. 首先是支援的格式比較豐富,有以下幾種:64和絃Midi,AAC、AAC+、AMR、WAV、MP3、Real Audio、WMA、OGG等格式.2. 如何把sdcard裡面的音效檔作為鈴聲:在sdcard的根目錄下面建立檔案夾: media/audio/ringtone(在audio檔案夾下面一般有三個子檔案夾:ringtones, alarms和notifications), 然後將鈴聲拷貝到該檔案夾下面即可.3. 如何用代碼實現自訂鈴聲?代碼實現還需驗證, 等成功後貼上來.好了,
Time of Update: 2018-12-03
轉自:http://wallage.blog.163.com/blog/static/17389624201032141818282/JNI是Java NativeInterface的縮寫,譯為Java本地介面。它允許Java代碼和其他語言編寫的代碼進行互動。在android中提供JNI的方式,讓Java程序可以調用C語言程式。android中很多Java類都具有native介面,這些介面由本地實現,然後註冊到系統中。 主要的JNI代碼放在以下的路徑中:frameworks/base/