編輯:關於Android編程
Android 的 gps module 是 gps.default.so 在system/lib/hw/ 目錄上, 一般提供gps功能的手機應該實現這個module和真實gps硬件交互
Qemu中gps就是要構造一個gps.default.so, 但這個so並不和真的硬件打交道,只是個模擬接口,其代碼在sdk/emulator/gps/gps_qemu.c中
Qemu 容器外部實現了一個gps設備,但這個設備和 Android 交互只能通過管道,所以gps_qemu.c的功能就是同管道打交道,並提供Android需要的gps functions, 如下:
static const GpsInterface qemuGpsInterface = {
sizeof(GpsInterface),
qemu_gps_init,
qemu_gps_start,
qemu_gps_stop,
qemu_gps_cleanup,
qemu_gps_inject_time,
qemu_gps_inject_location,
qemu_gps_delete_aiding_data,
qemu_gps_set_position_mode,
qemu_gps_get_extension,
};
GPS模塊有個要求,就是必須用它的 callback 來創建線程(gps_state_thread), 而將在的位置信息回調只能在此線程中(gps_state_thread),這是因為framework 需要一個vm可見的java thread, gps_state_thread 會被attach 到 vm 上了,從來回調 java 層函數
state->thread = callbacks->create_thread_cb( "gps_state_thread", gps_state_thread, state );
所以當QEMU_CHANNEL_NAME的位置信息過來不能直接調用callback, 而要在 gps_state_thread 發送到 android framework
因此 gps.default.so 調用 epoll 函數監聽文件fd, 實現在 gps_state_thread 中把 location 信息送回
進階四之Android UI介面之(Gallery仿圖像集浏覽)
兩個人共嘗一個痛苦只有半個痛苦,兩個人共享一個歡樂卻有兩個歡樂。 本講內容:Gallery仿圖像集浏覽 一、基本原理 在 Activity 中實現 OnGest
詳解Android6.0運行時權限管理
自從Android6.0發布以來,在權限上做出了很大的變動,不再是之前的只要在manifest設置就可以任意獲取權限,而是更加的注重用戶的隱私和體驗,不會再強迫用戶因拒絕
android手機虛擬按鈕開發問題點
最近做了手機虛擬按鈕開發,和華為榮耀的虛擬按鈕類似,效果如下(屏幕底下部分): 功能描述:手機開機,“虛擬按鈕”自動隱藏,當從手機下邊
注解在android中的使用
注解在android程序中的使用 何為注解: 在Java當中,注解又叫做“元數據”,它為我們在源代碼中添加信息提供了一種形式化的方法,讓我們能在以後的某個時間方便的使用這