原创 Java實現啥夫曼編碼

在開發手機程序時,總是希望壓縮網絡傳輸的信息,以減少流量。本文僅以哈夫曼編碼爲引導,拋磚引玉,實現壓縮功能。 大家可能會想,程序和第三方提供了很多壓縮方式,何必自己寫壓縮代碼呢?不錯,如GZIP這樣的壓縮工具很多,可是在某些情況下(如文本

原创 BroadcastReceiver使用方式

從行爲上廣播類型有兩種: 無序廣播(Normal broadcasts):無序且並行執行廣播 有序廣播(Ordered broadcasts):有序

原创 Android中開啓一個空線程會佔用多少內存

Android開發中,開啓一個線程會佔用多少內存空間?這個問題我一直沒有測試過,以前在網上看見別人說需要1M內存(可能是該網友包含了很多數據),今天對這個問題做了一個測試。爲了不影響測試,我使用空線程(線程不做任何事情,也不包含任何數據)

原创 C/C++ include ""與的區別

#include "header.h" #include <iostream> 上面兩種include的區別就在於查找路徑不同: 使用<>編譯器會去系統庫中查找文件,如果沒有找到,就出錯。 使用“”編譯器會先在當前目錄下找,如果沒有找到,

原创 字母索引查詢ListView組件

現在很多Android應用都做了類似IOS的字母索引查詢功能,今天我將這個功能封裝成了一個組件 當點擊或者在字母上上下移動時的畫面 package com.alphabet.widget; import android.conte

原创 android命令行打包、簽名+自動打包器

本文主要講解使用命令行打包android工程成apk文件,我的android工程結構如圖 1.創建key: 使用keytool.exe(位於%JAVA_HOME%\bin\keytool.exe)創建xxx.keystore,在命令行

原创 使用NDK與環境搭建

一、NDK介紹使用NDK,並不會給我們程序提高執行性能,反而會使程序複雜化。因此,儘量避免使用NDK,除非你真的需要使用本地庫(通常是C/C++庫)

原创 Android IPC進程通信——Messager方式

Android IPC通信有兩種方式,上一篇文章深入分析AIDL原理講解了AIDL方式,這篇文章講解另一種IPC通信方式——Messager方式。 Messager實現IPC通信,底層也是使用了AIDL方式。和AIDL方式不同的是,Mes

原创 在純java中使用JNI

Java已經用了N年了,也知道它底層調用的是C/C++函數,也知道有JNI機制和native方法的存在。終於,昨天開始打算研究一下JNI,今天做了一個例子,這個例子是在Windows環境下運行一個具有native方法的java類。 1.創

原创 編寫高效的Android代碼

在Android開發和查看Framework源代碼過程中,發現Android摒棄了Web開發中的一些真理。對此很不能理解,下面來了解爲什麼Android要如此? Android設備是嵌入式設備。現代的手持設備,與其說是電話,更像一臺拿在手

原创 音頻壓縮工具——Speex的使用

在Android開發中,需要錄音併發送到對方設備上。這時問題來了,手機常會是GPRS、3G等方式上網,所以節省流量是非常關鍵的,使用Speex來壓縮音頻文件,可以將音頻壓文件小數倍。 1.去Speex官網下載最新Speex源碼。 2.創建

原创 幾種常用BroadcastReceiver

開機廣播 可在此廣播中做開機自啓動服務 public class BootBroadcasrReceiver extends BroadcastReceiver { @Override public void onReceive(C

原创 動態註冊JNI

在在純java中使用JNI文章中可以看到,java的native方法與C/C++代碼函數是通過Java_<包名>_<類名>_<方法名>這種方式對應的,即它是靜態註冊的。當需要使用現有的C/C++代碼函數時,需要以這種形式定義包裝函數,在包

原创 圖片移動和縮放

import android.graphics.Matrix; import android.graphics.PointF; import android.util.FloatMath; import android.util.Lo

原创 定時任務

定時任務有執行一次和重複執行兩種 public class AlarmBroadcast extends BroadcastReceiver { @Override public void onReceive(Cont