-
Android Logcat Usage
· Grapezsh:no matches found
因为zsh缺省情况下始终自己解释这个firefox*,而不会传递给adb logcat来解释。 在~/.zshrc中加入: setopt no_nomatch, 然后进行source .zshrc命令
-
Kotlin : 使用 VSCode 运行代码
· Grape安装扩展
- Kotlin Language
- Code Runner
设置kotlinc路径
$ANDROID_STUDIO/plugins/Kotlin/kotlinc/bin kotlinc -version安装JDK
JDK安装完成后,设置路径,使其可以在命令行找到
java -version -
Kotlin:object 与 companion object 的区别
· Grape区别
- object 可以定义在全局也可以在类的内部使用
- object 就是单例模式的化身
- object 可以实现 Java 中的匿名类
- companion object 就是 Java 中的 static 变 …
-
Android 8.1 源码分析:PackageInstaller
· GrapePackageInstallerSession
源码位置:PackageInstallerSession.java 。
commit
{% include_code lang:java from:689 to:750 aosp/8.1/frameworks/base/services/core/java/com/android/server/pm/PackageInstallerSession.java %} 该方法主要发送了一个MSG_COMMIT消息。下面看Handler如何处理这个消息。
Handler.Callback
{% include_code lang:java from …
-
The Implementation Details of Android's force-stop
· 28 min read · Grape基于AOSP 8.0.1源码分析force-stop的实现细节。
使用 force-stop
am force-stop com.examplecom.example 是应用程序包名。
am命令
cat /system/bin/am #!/system/bin/sh if [ "$1" != "instrument" ] ; then cmd activity "$@" else base=/system export CLASSPATH=$base/framework/am.jar exec app_process $base/bin com … -
Debug Android Framework with Android Studio
· Grape背景
在阅读Android Framework代码时,有时需要动态调试加深理解,或者想调试某个API的实现原理(如startActivity)时,希望可以使用Android Studio调试,且可以对应到源码的每一行 …
-
Android Unicode 字符串
· Grape相关源码
String16
// http://androidxref.com/6.0.1_r10/xref/system/core/libutils/String16.cpp#allocFromUTF8 static char16_t* allocFromUTF8(const char* u8str, size_t u8len) { const ssize_t u16len = utf8_to_utf16_length(u8cur, u8len); utf8_to_utf16(u8cur … -
Android 智能指针
· Grape相关源码
http://androidxref.com/6.0.1_r10/xref/system/core/include/utils/StrongPointer.h http://androidxref.com/6.0.1_r10/xref/system/core/include/utils/RefBase.h http://androidxref.com/6.0.1_r10/xref/system/core/libutils/RefBase.cpp
StrongPointer
INITIAL_STRONG_VALUE 为什么不是0 …
-
Android 源码开发
· 1 min read · Grape准备开发环境
使用docker-aosp搭建
编译步骤
source build/envsetup.sh including device/asus/deb/vendorsetup.sh including device/asus/flo/vendorsetup.sh including device/asus/fugu/vendorsetup.sh including device/generic/mini-emulator-arm64/vendorsetup.sh including device/generic/mini-emulator-armv7-a-neon/vendorsetup.sh including device/generic … -
Android ClassLoader
· 1 min read · GrapeClass
// http://androidxref.com/6.0.1_r10/xref/libcore/libart/src/main/java/java/lang/Class.java public final class Class<T> implements Serializable, AnnotatedElement, GenericDeclaration, Type { static native Class<?> classForName(String className, boolean shouldInitialize, ClassLoader classLoader) throws ClassNotFoundException; }VMClassLoader
// http://androidxref.com/6.0.1_r10/xref/libcore/libart/src …