1. Android 8.1 源码分析:PackageInstaller

    Published: Thu 22 August 2019
    Updated: Thu 22 August 2019
    By Grape

    In Android.

    tags: AOSP

    PackageInstallerSession

    源码位置: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 …

    read more
  2. Linux Process

    Published: Thu 27 June 2019
    Updated: Thu 27 June 2019
    By Grape

    In Misc.

    tags: Linux

    概念

    程序是一系列指令的集合,通常存为可执行文件。进程是程序的执行过程。

    进程属性

    使用ps可以查看系统正在运行的进程。 ps --help显示该命令的用法。

    ps -e -o USER,PID,PPID,GID,NAME
    USER …
    read more
  3. The Implementation Details of Android's force-stop

    基于AOSP 8.0.1源码分析force-stop的实现细节。

    使用 force-stop

    am force-stop com.example
    

    com.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 …
    read more
  4. Debug Android Framework with Android Studio

    背景

    在阅读Android Framework代码时,有时需要动态调试加深理解,或者想调试某个API的实现原理(如startActivity)时,希望可以使用Android Studio调试,且可以对应到源码的每一行 …

    read more
  5. 【LeetCode 0050】 pow

    问题描述

    https://leetcode.com/problems/powx-n/

    代码

    func myPow(x float64, n int) float64 {
        if (n == 0) {
            return 1.0
        }
        var half float64 = myPow(x,n/2)
        if (n % 2 == 0) {
            return half * half
        }
        if (n > 0) {
            return half * half * x
        }else {
            return half * half / x …
    read more
  6. C++ 继承

    export NDK_ROOT=~/android-ndk-r18b
    
    ${NDK_ROOT}/toolchains/llvm/prebuilt/linux-x86_64/bin/clang
      --target=x86_64-none-linux-android
      --gcc-toolchain=${NDK_ROOT}/toolchains/x86_64-4.9/prebuilt/linux-x86_64
      --sysroot=${NDK_ROOT}/sysroot
      -isystem ${NDK_ROOT}/sysroot/usr/include/x86_64-linux-android
      -pie -o  hello.c.o -c hello.c
    
    ${NDK_ROOT}/toolchains/llvm/prebuilt/linux-x86_64/bin/clang
      --target=x86_64-none-linux-android
      --gcc-toolchain=${NDK_ROOT}/toolchains/x86_64-4.9 …
    read more
  7. Android 智能指针

    相关源码

    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 …

    read more
  8. Android 源码开发

    Title: Android 源码开发 Date: 2019-05-23 15:20:41 Modified: 2019-05-23 15:20:41 Category: Android Tags: Android Slug: build-android-sourcecode

    准备开发环境

    使用docker-aosp搭建

    编译步骤

    source build/envsetup.sh 
    including device/asus/deb/vendorsetup.sh
    including device/asus/flo/vendorsetup …
    read more

links

social