- 博客(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
原创 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关注的人
RSS订阅