两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 |
public:it:android [2022/01/28 13:24] – oakfire | public:it:android [2022/08/03 08:38] (当前版本) – [Articles] oakfire |
---|
* ''/data/app/'' 下为用户安装的 app | * ''/data/app/'' 下为用户安装的 app |
* ''/system/app/'' 下为系统原装 app | * ''/system/app/'' 下为系统原装 app |
* FIXME | * ''pm list packages -f'' 可列出 app 包及关联文件 |
* 在android设备设置界面上修改网络后,信息会保存在 ''/data/data/com.android.providers.settings/databases/settings.db'' | * 在android设备设置界面上修改网络后,信息会保存在 ''/data/data/com.android.providers.settings/databases/settings.db'' |
==== 刷机 ==== | ==== 刷机 ==== |
===== Articles ===== | ===== Articles ===== |
* [[https://github.com/Freelander/Android_Data|别人汇总的 Android 学习资料]] | * [[https://github.com/Freelander/Android_Data|别人汇总的 Android 学习资料]] |
* [[http://www.runoob.com/w3cnote/android-tutorial-contents.html|Android 入门基础教程系列]], 看下来感觉很不错. | * [[https://www.runoob.com/w3cnote/android-tutorial-intro.html|Android 入门基础教程系列]], 看下来感觉很不错. |
| * [[https://www.jianshu.com/p/33cc83941ecf|AndroidStudio 工程目录结构及简单使用]] |
* [[http://www.ibm.com/developerworks/cn/opensource/os-cn-android-actvt/index.html|详解 android 的 Activity]], 介绍了 Activity 以及它们之间怎么交互, 文章比较老. | * [[http://www.ibm.com/developerworks/cn/opensource/os-cn-android-actvt/index.html|详解 android 的 Activity]], 介绍了 Activity 以及它们之间怎么交互, 文章比较老. |
* [[http://www.cnblogs.com/oakpip/archive/2011/04/08/2009800.html|关于 webview]] | * [[http://www.cnblogs.com/oakpip/archive/2011/04/08/2009800.html|关于 webview]] |
* [[http://laobie.github.io/android/2016/02/14/android-studio-tips.html| android studio tips]] | * [[http://laobie.github.io/android/2016/02/14/android-studio-tips.html| android studio tips]] |
* [[https://github.com/jiang111/awesome-android-tips|awesome android tips]] | * [[https://github.com/jiang111/awesome-android-tips|awesome android tips]] |
| * [[.:mediacodec]] |
| * ^_^[[https://zhuanlan.zhihu.com/p/147322501|TextureView与UI主线程的干扰、帧率正常但卡顿抖动问题的解释]] |
| * [[https://www.cnblogs.com/crazii/p/3875033.html|OpenSLES and AAC related]] |
| * [[https://android.googlesource.com/platform/frameworks/wilhelm/+/master/tests/examples/slesTestDecodeAac.cpp|DecodeAAC example code]] |
| * [[https://android.googlesource.com/platform/frameworks/wilhelm/+/master/include/SLES|OpenSLES header files]] |
| * [[https://www.jianshu.com/p/38015afcdb58|Android事件分发机制详解]] |
===== Libs ===== | ===== Libs ===== |
* [[https://code.google.com/p/androidsvg|AndroidSVG]] | * [[https://code.google.com/p/androidsvg|AndroidSVG]] |
| * [[https://github.com/greenrobot/EventBus|EventBus 消息分发库]] |
===== ADB ===== | ===== ADB ===== |
* [[https://developer.android.com/tools/help/adb.html|Android Debug Bridge]] <--大部分命令行需求都可以从这个官方文档中获得,包括文件拷贝、应用管理、包管理、网络转发、截屏录屏及其它。 | * [[https://developer.android.com/studio/command-line/adb|Android Debug Bridge]] <--大部分命令行需求都可以从这个官方文档中获得,包括文件拷贝、应用管理、包管理、网络转发、截屏录屏及其它。 |
* 装完驱动,打开USB调试, 连接电脑后, 就可以用 adb 工具来连接内置shell <code bash> | * 装完驱动,打开USB调试, 连接电脑后, 就可以用 adb 工具来连接内置shell <code bash> |
adb shell | adb shell |
org.gradle.jvmargs=-Xmx512m -XX:MaxPermSize=512m</code> | org.gradle.jvmargs=-Xmx512m -XX:MaxPermSize=512m</code> |
* Gradle 的代理设置,如果是 socks5 代理, 得在项目 gradle.properties 添加如下设置<code>org.gradle.jvmargs=-DsocksProxyHost=<your-socks5-ip> -DsocksProxyPort=<your-socks5-port></code> | * Gradle 的代理设置,如果是 socks5 代理, 得在项目 gradle.properties 添加如下设置<code>org.gradle.jvmargs=-DsocksProxyHost=<your-socks5-ip> -DsocksProxyPort=<your-socks5-port></code> |
* cocos2d-x 在安卓上使用的是 ''android.opengl.GLSurfaceView'' 来渲染 | * cocos2d-x 在安卓上使用的是 ''android.opengl.GLSurfaceView'' 来渲染. [[https://developer.android.com/reference/android/view/SurfaceView|SurfaceView]] 独立于窗口绘制表面,即拥有单独的重绘机制,与父窗口脱离。详细见[[https://source.android.com/devices/graphics/architecture|官方文档:图形架构]] |
| * ubuntu交叉编译Android armv7 的 ''ethtool'' 工具备忘:<code> |
| # 编译依赖 libmnl |
| git clone git://git.netfilter.org/libmnl |
| cd libmnl |
| ./autogen.sh |
| ./configure --host=--host=arm-linux-gnueabi CC=/home/oak/work/tools/android-ndk-r22b/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi30-clang LDFLAGS=-static |
| make |
| sudo make install # 默认是安装到 /usr/local/lib/ |
| # 编译 ethtool |
| git clone https://kernel.googlesource.com/pub/scm/network/ethtool/ethtool # 需科学上网 |
| PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./configure --host=arm-linux-gnueabi CC=/home/oak/work/tools/android-ndk-r22b/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi30-clang LDFLAGS=-static |
| make |
| </code>静态编译,需要使用大于28版本的ndk clang, 否则编译出来的ethtool运行时会报错''error: "ethtool": executable's TLS segment is underaligned: alignment is 8, needs to be at least 32 for ARM Bionic'' |
| * NDK [[https://developer.android.com/ndk/guides/asan#ndk-build|Address Sanitizer]] |
| * ndk-build 默认会把生成的 .so 文件的debug符号给去掉(linux 下可用''file xxx.so'' 来查看是否带有符号); 未去掉符号的.so文件在 ''$PROJECT_PATH/obj/local/<abi>/''目录下; 详情可见 [[https://developer.android.com/ndk/guides/ndk-stack|ndk-stack ]] 使用说明 |
| * aar 打包也有个步骤是去掉 .so 文件的debug符号。 |
| * Android Studio build窗口乱码[[https://blog.csdn.net/github_2011/article/details/109135258|解决办法]]: |
| * 「Help」-> 「Edit Custom VM Options...」 |
| * 添加 ''-Dfile.encoding=UTF-8'' |
| * 重启 Android Studio |
| * [[https://developer.android.com/ndk/guides/audio/opensl|OpenSLES ]]编程 destroy obj 时,有一定概率会死锁卡住,报错 ''pthread_mutex_lock_timeout_np returned 110'', 此时可以延时 destroy 来规避这个问题。这应该是 Android源码本身的问题 |