原创 主碼流和子碼流的區別

高清網絡攝像機產品編碼器都會產生兩個編碼格式,稱爲主碼流和子碼流。 這就叫雙碼流技術。目的是用於解決監控錄像的本地存儲和網絡傳輸的圖像的質量問題。 雙碼流能實現本地和遠程傳輸的兩種不同的帶寬碼流需求,本地傳輸可以用主碼流,能獲得更

原创 Android SwipeRefreshLayout+RecyclerView實現下拉刷新和上拉加載

一、SwipeRefreshLayout簡介 SwipeRefreshLayout作爲谷歌官方推薦的下拉刷新控件,在實際開發中,經常都會遇到下拉刷新、上拉加載更多的情形。,該控件集成自ViewGroup在support-v4兼容包

原创 YUV 數據的存儲本地並且播放YUV數據

1、把YUV數據保存到本地 private String path = "/storage/sdcard0/DCIM/Picture"; private static SimpleDateFormat formatPicture

原创 YUV數據轉換爲圖片JPG格式並且存儲到本地

1、YUV數據轉換爲圖片JPG格式並且存儲到本地 private void saveYUV2Bitmap() { ByteArrayOutputStream stream = null; try { YuvIma

原创 Android應用開發知識體系以及工作常用功能記錄

建立自己的知識體系主要是方便後續自己查看。以前我是從來不作筆記,需要的時候就去網上查資料,這樣在工作中也太浪費時間也不利於自己查看,所以我就把Android需要用到的知識和工作中常用到東西記錄下來。 工具篇 ADB常用命令 dum

原创 Android MediaPlay的使用以及實現視頻播放器

上篇文章中主要是介紹MediaPlay狀態機流程和API的詳解。同時也實現了一個簡單的音頻播放器,下面我們就來利用SurfaceView+MediaPlay實現一個簡單的視頻播放器。 視頻播放器的效果如下所示: ` 1、創建一個M

原创 Android MediaPlay的使用以及實現音頻播放器

一、MediaPlay狀態機詳解(MediaPlay的生命週期) MediaPlayer狀態機如下圖所示 1、Idle(閒置)狀態與End(結束)狀態 MediaPlayer 對象聲明週期 : 從 Idle 到 End 狀態就是

原创 Android 8.1根據經緯度來繪製地圖軌跡

功能說明:需要拿到經緯度來繪製地圖軌跡。解決思路是先把經緯度保存到一個文件中,然後從文件中讀取經緯度數據,然後在地圖上面繪製。 一、讀取文件和保存文件的工具類 public class FileStoreTool { priva

原创 Android ANR日誌分析總結

ANR定義 ANR(Application Not Responding) 應用程序無響應。如果你應用程序在UI線程被阻塞太長時間,就會出現ANR,通常出現ANR,系統會彈出一個提示提示框,讓用戶知道,該程序正在被阻塞,是否繼續等

原创 Android 8.1系統簽名詳解

在工作中我們經常會提供接口給客戶調用,我們就需要提供jar給客戶調用,客戶那邊使用就都需要系統的簽名才能正常運行。而如果我們想用Android Studio單獨開發某個應用而使用系統簽名的時候,有兩種開發的方式,一種是編譯完成後,

原创 Android8.1 添加自定義系統服務

-一、Aidl接口文件 代碼路徑:frameworks/base/core/java/android/os/IHookStatus.aidl package android.os; interface IHookStatus {

原创 Android 內存泄露分析與總結

Android應用因爲本身可用內存的限制,需要特別重視內存泄露的問題,本文總結了Android中常見的一些內存泄露原因及避免方式。 一、單例造成的內存泄露 由於單例的靜態特性使得單例的生命週期和應用的生命週期一樣長,這說明,如果一

原创 Android 8.1 編譯報錯 ERROR: Dex writing phase: classes.dex has too many IDs. Try using multi-dex

解決方法:在Android.mk文件中添加如下 LOCAL_DX_FLAGS := --multi-dex --main-dex-list=$(mainDexList) --minimal-main-dex LOCAL_JACK_

原创 Android Studio 將moudle項目打包成aar文件

在android開發中,我們有時候需要將一個項目作爲一個依賴,並且能夠使用其資源文件和界面,這個時候就需要將我們創建的moudle打包成一個aar文件.具體打包步驟如下: 1、創建一個new moudle,然後選擇Android

原创 Android.mk文件總結

1、 設置當前模塊的編譯路徑爲當前文件夾路徑 LOCAL_PATH := $(call my-dir) 2、清理(可能由其他模塊設置過的)編譯環境中用到的變量 include $(CLEAR_VARS) 3、模塊編譯變量 變量