Grape

Grape

Graduated in Computer Science and Engineering, but currently working with GNU/Linux infrastructure and in the spare time I'm an Open Source programmer (Python and C), a drawer and author in the YINGJUE Blog.

Kotlin : 使用 VSCode 运行代码

安装扩展

  • Kotlin Language
  • Code Runner

设置kotlinc路径

$ANDROID_STUDIO/plugins/Kotlin/kotlinc/bin
kotlinc -version

安装JDK

JDK安装完成后,设置路径,使其可以在命令行找到

java -version

Linux Command : grep & sed

如何利用grep和sed实现搜索和替换

grep -Erl "M\\('local" .|xargs sed -Ei "" "s/M\\('local/M\\('remote/g"

grep -Erl "http://loca" .|xargs sed -Ei "" "s/http:\/\/local/http:\/\/remote/g"

grep

  • -E 将样式为延伸的普通表示法来使用
  • -r 此参数的效果和指定“-d recurse”参数相同 …

Linux常用命令工具使用笔记

find

在当前目录下查找某个文件:

find -name "lib*.a"

rsync

Linux 下合并两个目录,软连接也一起同步。

rsync -K -a 源目录  被覆盖目录

比如:

rsync -K -a dir1/ dir2/

统计文件个数

Linux: ls -1 data/devices|wc …

区别

  • object 可以定义在全局也可以在类的内部使用
  • object 就是单例模式的化身
  • object 可以实现 Java 中的匿名类
  • companion object 就是 Java 中的 static 变量
  • companion object 只能定义在对应的类中
  • object …

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:275 to:303 aosp/8.1/frameworks/base/services/core/java/com/android/server …

Linux Process

概念

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

进程属性

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

ps -e -o USER,PID,PPID,GID,NAME
USER           PID  PPID      GID NAME                        CMD            
root             1     0        0 init                        init
root             2     0 …

基于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.android.commands.am.Am "$@"
fi

am 是一个shell脚本。如果第一 …

背景

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

可选方 …

实现 pow(x, n) ,即计算 \(x\) 的整数 \(n\) 次幂函数(即,\(x^n\) )。

示例 1:

输入:x = 2.00000, n = 10

输出:1024.00000

示例 2:

输入:x = 2.10000, n = 3

输出:9.26100

示例 3:

输入:x = 2.00000, n = -2

输出:0.25000

解释 …