public:it:android

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
public:it:android [2022/04/19 11:03] – [Articles] oakfirepublic:it:android [2022/08/03 08:38] (当前版本) – [Articles] oakfire
行 7: 行 7:
   * ''/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''
 ==== 刷机 ==== ==== 刷机 ====
行 51: 行 51:
 ===== 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]]
行 57: 行 58:
   * [[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]]
-  * [[https://www.jianshu.com/p/5d62a3cf0741|MediaCodec]]+  * [[.:mediacodec]]
   * ^_^[[https://zhuanlan.zhihu.com/p/147322501|TextureView与UI主线程的干扰、帧率正常但卡顿抖动问题的解释]]   * ^_^[[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/studio/command-line/adb|Android Debug Bridge]] <--大部分命令行需求都可以从这个官方文档中获得,包括文件拷贝、应用管理、包管理、网络转发、截屏录屏及其它。   * [[https://developer.android.com/studio/command-line/adb|Android Debug Bridge]] <--大部分命令行需求都可以从这个官方文档中获得,包括文件拷贝、应用管理、包管理、网络转发、截屏录屏及其它。
行 163: 行 169:
   * 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'' 来渲染. [[https://developer.android.com/reference/android/view/SurfaceView|SurfaceView]] 独立于窗口绘制表面,即拥有单独的重绘机制,与父窗口脱离。详细见[[https://source.android.com/devices/graphics/architecture|官方文档:图形架构]]   * 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源码本身的问题
  • public/it/android.1650337420.txt.gz
  • 最后更改: 2022/04/19 11:03
  • oakfire