原创 Low Memory Killer(一)- android源碼分析

標籤: Low_Memory_Killer 低內存管理機制 系統內存管理 Low Memory Killer Android 系統中運行的APP退出到後臺時並不會真正殺死這個進程,而是將其緩存起來,以便下次能快速啓用(熱啓動)。

原创 Android JNI和NDK學習(07)--JNI的常用API

1 版本和類操作API   2 對象域相關API 2.1 GetFieldID jfieldID GetFieldID(JNIEnv *env, jclass clazz, const char *name, const c

原创 android init入口函數分析

init入口函數分析 init的入口函數爲main,位於system/core/init/init.cpp int main(int argc, char** argv) {     if (!strcmp(basename(

原创 android framework 源碼流程分析技巧

    直接分析代碼流程,和在代碼中添加相關log驗證;這個方法要求開發人員專業水平較高,APP代碼->framework源碼,framework->APP代碼; 高效方法: 在方法中添加異常,異常log會打印相關的代碼流程;   具體代

原创 Android JNI和NDK學習(01)--搭建NDK開發環境

1 JNI介紹 JNI是Java Native Interface的縮寫,中文爲JAVA本地調用。 從Java1.1開始,Java Native Interface(JNI)標準成爲java平臺的一部分,它允許Java代碼和其他語言寫

原创 SharedPreferences存儲變量的文件路徑與Editor

SharedPreferences存儲共享變量的文件路徑位於“/data/data/應用程序包/shared_prefs”目錄下,通過adb shell,可以看到如下所示: 查看當前目錄: # pwd /data/data/com

原创 Android開發:最全面、最易懂的Android屏幕適配解決方案

前言 Android的屏幕適配一直以來都在折磨着我們Android開發者,本文將結合: Google的官方權威適配文檔郭霖: Android官方提供的支持不同屏幕大小的全部方法Stormzhang:Android 屏幕適配鴻

原创 Android JNI和NDK學習(06)--JNI的數據類型

本文介紹JNI的數據類型。NDK中關於JNI數據類型的定義都在jni.h中,大家可以參考jni.h。jni.h在ndk中的路徑參考: android-ndk-r7b/platforms/android-14/arch-arm/usr/

原创 Android UI性能優化 – Overdraw

什麼是Overdraw? Overdraw就是屏幕上某個像素點在同一幀被繪製了多次。在多層佈局結構中,不可見部分也會被繪製。舉個例子,一個白色頁面上有一個按鈕。系統首先繪製白色背景,然後在白色背景上繪製按鈕,最後在按鈕背景上繪製按鈕內

原创 Linux 多個JDK版本切換

1、找到JDK安裝路徑,默認路徑:/usr/lib/jvm/ 2、編寫腳本切換 vim jdk_toggle.sh #聲明jdk7和jdk路徑變量   JAVA_8_HOME=/usr/lib/jvm/java-8-openjdk-am

原创 Android客製化開關 defaults.xml註釋

<resources>     <bool name="def_dim_screen">true</bool>自動關屏        開     <integer name="def_screen_off_timeout">30000</

原创 Android JNI和NDK學習(04)--NDK調試方法

1 添加ndk對log支持 若需要添加ndk對log的支持,只需要通過以下2步即可實現。 1.1 修改Android.mk 如生成的庫文件是“.so文件”,則在Android.mk中添加如下內容: LOCAL_LDLIBS:=

原创 Android JNI和NDK學習(08)--JNI實例一 傳遞基本類型數據

1 建立eclipse工程 建立工程NdkBasicParam,NdkBasicParam.java的內容如下: package com.skywang.ndk; import android.app.Activity; imp

原创 Android.mk文件解讀

1. LOCAL_PRIVILEGED_MODULE= true; 功能:應用編譯後系統路徑:/system/pri-app/SystemUI 說明: 不添加此屬性,編譯後的路徑爲/system/app/SystemUI 在同樣具有系統

原创 Android JNI和NDK學習(05)--JNI真機調試

本文主要介紹如何將JNI導入到真機進行調試。下面以MyNdk工程來說明。 1 將.so文件導入到手機中 將MyNdk工程的libhello_jni.so文件導入到手機的/system/lib/目錄下,通過以下命令: $ adb p