自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

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

标签: Low_Memory_Killer 低内存管理机制 系统内存管理Low Memory KillerAndroid 系统中运行的APP退出到后台时并不会真正杀死这个进程,而是将其缓存起来,以便下次能快速启用(热启动)。在系统内存不足情况下,系统会依据Low Memory Killer机制来杀死进程;Low Memory Killer 基本原理所有进程都是从zygote孵化出来的,记...

2019-12-23 09:20:45 382

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

    直接分析代码流程,和在代码中添加相关log验证;这个方法要求开发人员专业水平较高,APP代码->framework源码,framework->APP代码;高效方法:在方法中添加异常,异常log会打印相关的代码流程; 具体代码:protected void onCreate(Bundle savedInstanceState) {  super.onCre...

2018-08-01 09:15:51 1125

原创 Linux 多个JDK版本切换

1、找到JDK安装路径,默认路径:/usr/lib/jvm/2、编写脚本切换vim jdk_toggle.sh#声明jdk7和jdk路径变量   JAVA_8_HOME=/usr/lib/jvm/java-8-openjdk-amd64   JAVA_1_8_0_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64   JAVA_6_HOME=...

2018-07-31 15:24:58 471

原创 SharedPreferences存储变量的文件路径与Editor

SharedPreferences存储共享变量的文件路径位于“/data/data/应用程序包/shared_prefs”目录下,通过adb shell,可以看到如下所示:查看当前目录:# pwd/data/data/com.min.ijoke/shared_prefs显示当前目录下的文件:# lsmin_ijoke.xml // 此文件就是存储

2017-08-08 16:02:37 1501

原创 android init入口函数分析

init入口函数分析init的入口函数为main,位于system/core/init/init.cppint main(int argc, char** argv) {    if (!strcmp(basename(argv[0]), "ueventd")) {        return ueventd_main(argc, argv);    }

2017-06-21 15:44:44 775

转载 Android UI性能优化 – Overdraw

什么是Overdraw?Overdraw就是屏幕上某个像素点在同一帧被绘制了多次。在多层布局结构中,不可见部分也会被绘制。举个例子,一个白色页面上有一个按钮。系统首先绘制白色背景,然后在白色背景上绘制按钮,最后在按钮背景上绘制按钮内容。那么按钮和按钮内容就造成了Overdraw。 其实Overdraw是不可避免的,我们要做的是检查Overdraw次数过多的地方,并删掉无用的绘制。

2017-06-14 11:16:50 311

原创 Android.mk文件解读

1. LOCAL_PRIVILEGED_MODULE= true;功能:应用编译后系统路径:/system/pri-app/SystemUI说明:不添加此属性,编译后的路径为/system/app/SystemUI在同样具有系统权限情况下,/system/pri-app下的apk权限比/system/app下大2. LOCAL_PROGUARD_FLAG_FILES :=

2017-06-07 15:57:03 451

转载 Android开发:最全面、最易懂的Android屏幕适配解决方案

前言Android的屏幕适配一直以来都在折磨着我们Android开发者,本文将结合:Google的官方权威适配文档郭霖: Android官方提供的支持不同屏幕大小的全部方法Stormzhang:Android 屏幕适配鸿洋:Android 屏幕适配方案凯子: Android屏幕适配全攻略(最权威的官方适配指导)自身的思考&实践给你带来一种全新、全面而逻辑清晰的Andro

2017-05-05 09:38:52 1588

转载 Android JNI和NDK学习(08)--JNI实例一 传递基本类型数据

1 建立eclipse工程建立工程NdkBasicParam,NdkBasicParam.java的内容如下:package com.skywang.ndk;import android.app.Activity;import android.os.Bundle;import android.widget.TextView;import android.util.Lo

2017-04-07 17:12:00 255

转载 Android JNI和NDK学习(07)--JNI的常用API

1 版本和类操作API 2 对象域相关API2.1 GetFieldIDjfieldID GetFieldID(JNIEnv *env, jclass clazz, const char *name, const char *sig);函数作用:  返回类的实例(非静态)域的域 ID。参数说明:  env:JNI 接口指针。  c

2017-04-07 17:08:32 329

转载 Android JNI和NDK学习(06)--JNI的数据类型

本文介绍JNI的数据类型。NDK中关于JNI数据类型的定义都在jni.h中,大家可以参考jni.h。jni.h在ndk中的路径参考:android-ndk-r7b/platforms/android-14/arch-arm/usr/include/jni.h 1 基本数据类型为了使用方便,JNI还提供了以下定义:#define JNI_FALSE

2017-04-07 17:04:39 216

转载 Android JNI和NDK学习(05)--JNI真机调试

本文主要介绍如何将JNI导入到真机进行调试。下面以MyNdk工程来说明。1 将.so文件导入到手机中将MyNdk工程的libhello_jni.so文件导入到手机的/system/lib/目录下,通过以下命令:$ adb push libhello_jni.so /system/lib/liehello_jni.so2 安装apk到手机中$ adb i

2017-04-07 17:03:27 391

转载 Android JNI和NDK学习(04)--NDK调试方法

1 添加ndk对log支持若需要添加ndk对log的支持,只需要通过以下2步即可实现。1.1 修改Android.mk如生成的库文件是“.so文件”,则在Android.mk中添加如下内容:LOCAL_LDLIBS:=-L$(SYSROOT)/usr/lib -llog如生成的库文件是“.a文件”,则在Android.mk中添加如下内容:LOCA

2017-04-07 17:01:24 214

转载 Android JNI和NDK学习(03)--动态方式实现JNI

前面总结了静态实现JNI的方法,本文介绍如何动态实现JNI:JNI在加载时,会调用JNI_OnLoad,而卸载时会调用JNI_UnLoad,所以我们可以通过在JNI_OnLoad里面注册我们的native函数来实现JNI。下面就介绍该方法。1 Android应用层代码在eclipse中新建工程NdkLoad,工程文件NdkLoad.java的代码如下: package

2017-04-07 16:52:17 197

转载 Android JNI和NDK学习(02)--静态方式实现JNI

JNI包括两种实现方法:静态和动态。两种方法的区别如下:静态:先由Java得到本地方法的声明,然后再通过JNI实现该声明方法。动态:先通过JNI重载JNI_OnLoad()实现本地方法,然后直接在Java中调用本地方法。 本文介绍静态实现方式,下一篇会介绍动态实现方式。1 首先,在Eclipse下新建一个工程myndkMyndk.java的代码如下:

2017-04-07 16:48:13 173

转载 Android JNI和NDK学习(01)--搭建NDK开发环境

1 JNI介绍JNI是Java Native Interface的缩写,中文为JAVA本地调用。从Java1.1开始,Java Native Interface(JNI)标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他语言,只要调用约定受支持就可以了。 2 N

2017-04-07 16:47:00 227

翻译 Android客制化开关 defaults.xml注释

resources>    bool name="def_dim_screen">truebool>自动关屏       开    integer name="def_screen_off_timeout">30000integer>Android睡眠时间为1分钟    integer name="def_sleep_timeout">-1integer> //表示休眠时间,默

2017-04-07 11:48:08 3530

原创 Android客制化-修改第一次开机时间

关键修改点位置为 / alps/vendor/mediatek/proprietary/frameworks/base/res/res/values/config.xml 2017RTC时间 硬件时钟,当系统关机的时候,用这个来记录时间。Linux 系统有俩个时钟:  1.由主板电池驱动的“Real Time Clock”也叫做RTC或者叫CMOS时钟,硬件时钟。当

2017-04-06 12:22:33 1850

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除