自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 android:filterTouchesWhenObscured

In Package installer activity.In PackageInstaller/res/layout/install_confirm.xml98 99 LinearLayout100 android:layout_width="match_parent"101 android:layout_heigh

2017-05-19 20:26:54 3631

原创 Android instrumentation test

1. JUnit ref: http://wiki.jikexueyuan.com/project/junit/extensions.html2. 运行测试apk相关caseadb shell am instrument -w com.ww.test/android.test.InstrumentationTestRunnercom.wxj.test为测试apk的package

2017-05-18 19:40:18 480

原创 ClassCastException problem in getUnfilteredActiveNetworkState

Crash logs.12-19 03:52:30.914   641  3002 D ConnectivityService: notifyType LOST for NetworkAgentInfo [WIFI () - 108]12-19 03:52:30.915   641  3002 D CSLegacyTypeTracker: Sending disconnected broa

2017-05-18 17:47:09 759

原创 Android 7.0 ActivityManagerService 广播(Broadcast)相关流程分析

参考:http://blog.csdn.net/gaugamela/article/details/53515680 (Android 7.0 ActivityManagerService(5) 广播(Broadcast)相关流程分析)总结:1. BroadcastReceiver的注册类型 (静态注册,动态注册)2. 广播的种类普通广播 普通广播由发送方调用sendBro

2017-05-14 19:33:27 991

原创 Activity中bindService和registerReceiver的清理工作

在Android开发中,我们经常需要注册BroadcastReceiver和bind service。接口函数如下:public Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter);public void unregisterReceiver(BroadcastReceiver recei

2017-05-13 18:35:33 2369

原创 onSaveInstanceState和onRestoreInstanceState触发的时机

先看图:Android中的activity通过onSaveInstanceState()方法保存activity的状态,在onCreate或者onRestoreInstanceState方法恢复状态,如果是通过onRestart方法前端运行的话,只会执行onSaveinstanceState方法。直接看代码:[java] view plain copy

2017-05-13 17:15:48 750

原创 package info not found issue

之前遇到一个问题,如下:https://cmi-web-tools.amazon.com/crashboard/?start=2017-04-21&end=2017-04-28&dtype=ALL&cdesc=7814d32f7103b7cadd6a3a7e09a678d98c499e78[Events]java.lang.RuntimeException: Unable to in

2017-05-09 16:24:33 3121 1

原创 Android 7.0 系统应用提前获得runtime-granted permission

该功能在frameworks/base/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java中实现。大概的实现思路是,针对每个系统应用,调用 mService.grantRuntimePermission(pkg.packageName, permission, userId);函数来实现提

2017-05-03 15:05:18 668

原创 同一个Activity在Task中存在多个记录

在 android 中,AMS用于管理activity的创建,启动,和销毁。AMS用ActivityStack,TaskRecord,和ActivityRecord三个class来管理所有的activity。三者的关系是ActivityStack中存放所有的TaskRecord,TaskRecord中存放属于自己的ActivityRecord。当然ActivityRecord中也存放了自己

2017-04-30 17:09:50 1341

原创 A bug in PackageInstaller app. Relate to activity task affinity.

In Android system, AMS will create a new task when it start a new activity. The task's name is got fromtaskAffinity attribute defined inAndroidManifest.xml (The default value oftaskAffinity is p

2017-04-28 17:57:36 650

原创 Activity starting window and how to speed up activity starting (Android 7.0)

A starting preview window is shown during activity starting. The feature is implemented in ActivityStack.startActivityLocked method.Inframeworks/base/services/core/java/com/android/server/am/Act

2017-04-24 19:59:31 782

原创 Write my own UserManager on Android

Android User Manager class.User interface: UserManager.javaFramework implementation: UserManagerService.javaMain methods in UserManager1995 public static int getMaxSupportedUsers()

2017-04-24 11:22:56 1205

原创 A progress dialog show when optimize apk during booting up (Android device)

During Android system booting up, it will start PackageManagerService in system server.In PMS, it will scan all the packages in system and data partition, and try to do dexopt if they has not been o

2017-04-21 20:34:00 526

原创 Android 7.0 start home activity and send boot completed broadcast

Boot completed broadcast sending flow.In frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java5956 void enableScreenIfNeededLocked() {5957 if (DEBUG_BOO

2017-04-21 15:58:12 2916

原创 Android ComponentCallbacks的调用逻辑

ComponentCallbacks接口的定义:public interface ComponentCallbacks {    /**     * Called by the system when the device configuration changes while your     * component is running.  Note that, unlike

2017-04-16 19:36:03 1530

原创 Android中dalvik/art创建java线程的过程

2017-04-16 15:28:39 356

原创 How to import class from other package when building android image

Base on Android build systemIf a package or library want to use class which is defined inother library (jar file), we need to do:1. import packageName.className in your java source code2. Ad

2017-04-14 20:25:45 608

原创 Wake lock in LocationManagerService

Problem:On my Android device, I met a problem that system can't suspend after a long time after user has turn off screen by pressing the power key.From "dumpsys power" command output, I found th

2017-04-14 18:16:44 1206

原创 Android ActionBar 实现原理

一,启用ActionBar是否启用ActionBar,是由window的feature判断的, 如下:    private void initWindowDecorActionBar() {        Window window = getWindow();        // Initializing the window decor can change wind

2017-04-09 21:34:32 1654

转载 Android 沉浸式状态栏及悬浮效果

一、概述现在大多数的电商APP的详情页长得几乎都差不多,几乎都是上面一个商品的图片,当你滑动的时候,会有Tab悬浮在上面,这样做用户体验确实不错,如果Tab滑上去,用户可能还需要滑下来,在来点击Tab,这样确实很麻烦。沉浸式状态栏那, 郭霖 说过谷歌并没有给出沉浸式状态栏这个明白,谷歌只说了沉浸式模式(Immersive Mode)。不过沉浸式状态栏这个名字其实听不粗,随大众吧,但是 An

2017-04-09 00:20:28 525

原创 android:fitSystemWindows详解

从Android 4.4开始,Android系统加入了一个比较酷的功能,就是我们可以设置状态栏的的颜色了,有个这个功能,状态栏就不再是黑乎乎的了,我们就可以根据我们应用的主色去设置状态栏的颜色,使得应用体验变得好一些,所以我们通过如下方式设置状态栏透明。window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, Win

2017-04-08 21:55:31 3752

原创 A bug of user switch funtion in Android5 and its fix in Android7

In Android 5, user switching function is implemented by AMS.In frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java20367 public boolean switchUser(final int us

2017-04-05 20:32:02 415

原创 Android中Wall paper的处理流程

在WallpaperManagerService的构造函数中,    public WallpaperManagerService(Context context) {        mContext = context;        mImageWallpaper = ComponentName.unflattenFromString(                conte

2017-04-01 19:24:46 3010 1

原创 Linux driver model & sysfs

1. Linux driver initialization flow.In kernel/init/main.ckernel_init --> kernel_init_freeable --> do_basic_setup -->driver_init (In kernel/driver/base/init.c)In kernel/driver/base/init.c

2017-03-24 18:44:49 552

原创 How to get an APK smali code

Tools prepareDownload  smali-2.2b4.jar baksmali-2.2b4.jar from https://bitbucket.org/JesusFreke/smali/downloads/ Disassembler dexUnzip apkunzip my.apkdisassembler dexjava -jar 

2017-03-03 16:52:12 527

原创 System.loadLibrary(......)找不到

问 题I want to use a existing native library from another Android project, so I just copied the NDK built library (libcalculate.so) to my new Android project. In my new Android project I created a f

2017-03-03 12:03:58 8694

原创 在Ubuntu中通过update-alternatives切换软件版本

update-alternatives是ubuntu系统中专门维护系统命令链接符的工具,通过它可以很方便的设置系统默认使用哪个命令、哪个软件版本,比如,我们在系统中同时安装了open jdk和sun jdk两个版本,而我们又希望系统默认使用的是sun jdk,那怎么办呢?通过update-alternatives就可以很方便的实现了。   sudo update-alternatives

2017-02-06 19:32:26 731

原创 Android Log系统

一,log是按照种类存储在不同的buffer中。    /** @hide */ public static final int LOG_ID_MAIN = 0;    /** @hide */ public static final int LOG_ID_RADIO = 1;    /** @hide */ public static final int LOG_ID_EVENTS

2017-02-06 14:34:24 1342

转载 遍历序列唯一确定二叉树的问题

理论证明:http://blog.sina.com.cn/s/blog_a49d9ef801014b7u.html实例说明:http://blog.csdn.net/chaoyue1216/article/details/7609689

2017-01-24 20:07:08 1749

转载 Lowest Common Ancestor of a Binary Tree

http://articles.leetcode.com/lowest-common-ancestor-of-a-binary-tree-part-ihttp://articles.leetcode.com/lowest-common-ancestor-of-a-binary-tree-part-ii

2017-01-24 18:07:19 221

原创 Print binary tree

#include #include #define ARRAY_SIZE (63)#define NODE_DISTANCE (4)#define PRINT_OFFSET (2)typedef enum _CHILD_DIRECTION{ LEFT_CHILD = 1, RIGHT_CHILD, NOT_CHILD,}CHILD_DIRECTION

2017-01-23 16:53:06 392

原创 Un-sorted list, find the "k" largest value, the original list can be changed

#include int find_k_largest_number(int *arr, int size, int k){ int pivot = arr[0], i=0, j=size-1, m; if (k > size) return -1; // not found#if 0printf("before sort, size = %d, k = %d\n", size,

2017-01-20 11:59:39 321

原创 [每日练习] write a function to find the key in a m*n matrix, where each line and column is incremental

题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解题思路:从二维数组的右上角的元素开始判断,因为此元素是它所在行的最大数,是它所在的列的最小数。如果它等于要查找的数字,则查找过程结束。如果它大于要查找的数字,则可以排除它所在的列。如果它小于要查找的数字,则可排除它所在

2017-01-20 11:00:33 409

原创 Android虚拟机中线程的创建,VM, JNI线程的使用

1. 虚拟机的入口void AndroidRuntime::start(const char* className, const Vector& options){..........    JNIEnv* env;    if (startVm(&mJavaVM, &env) != 0) {        return;    }    onVmCreated

2017-01-19 15:49:18 2035

原创 Useful English Expressions

correct me if I am not understanding somethinghave something to do with1 out 5 deviecesmight be a clueSuchfailure only happened several times, can be recovered soonThere’s no sign that the

2017-01-12 10:54:46 806

转载 android 5.0后对于apk 跑32 64 的逻辑

1, 是否是 64 bit apk,在对应的 full_sky828_8s70.mk 里面,这里主要包含64 bit apk的支持, 还有zygote的启动方式,64 bit apk fork的简要过程Inherit from hardware-specific part of the product configuration.$(call inherit-product, de

2017-01-10 17:18:44 1271

原创 ClassNotFoundException debug

问题描述:java.lang.RuntimeException:Unable to instantiate applicationcom.goodreads.kindle.application.MyApplication:java.lang.ClassNotFoundException: Didn't find class"com.goodreads.kindle.application

2017-01-09 19:12:53 1148

原创 Android 常用开发技巧笔记

一,用adb安装apk时,指定archTo run in 32 bit mode install using,adb  install --abi armeabi-v7a To run in 64 bit mode install using,adb  install --abi arm64-v8a

2017-01-09 17:18:36 1389

原创 Android ViewRootImpl Choreographer SurfaceFlinger 学习笔记

一,每个DecorView对应一个ViewRootImpl,并且DecorView的mParent是ViewRootImpl。二,View中requestFitSystemWindows的实现就是依赖于ViewRootImpl中的requestFitSystemWindows。可以参考http://blog.csdn.net/kobe_gong_5/article/details/459997

2017-01-06 17:49:18 824

原创 Activity的启动模式 和 Intent启动选项

启动模式允许开发者定义一个activity的新实例如何与当前的Task关联。可以定义使用俩种方法来定义。如果Activity A开启Activity B, Activity B就可以在它的manifest文件中定义它与当前的task如何关联,Activity A也可以要求activity B应该如何与当前的task关联。如果两个activity都定义了Activity B应该如何与一个

2016-12-15 16:32:41 4351

空空如也

空空如也

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

TA关注的人

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