Android 零碎知识记录
文章平均质量分 83
_dowork
这个作者很懒,什么都没留下…
展开
-
802.11 wifi reason code
/* Status codes (IEEE Std 802.11-2016, 9.4.1.9, Table 9-46) */#define WLAN_STATUS_SUCCESS 0#define WLAN_STATUS_UNSPECIFIED_FAILURE 1#define WLAN_STATUS_TDLS_WAKEUP_ALTERNATE 2#define WLAN_STATUS_...原创 2019-09-24 16:42:26 · 8163 阅读 · 1 评论 -
Android 8.0目录介绍
android的移植按如下流程: (1)android linux 内核的普通驱动移植,让内核可以在目标平台上运行起来。 (2)正确挂载文件系统,确保内核启动参数和 android 源代码 system/core/rootdir 目录下的 init.rc 中的文件系统挂载正确。 (3)调试控制台,让内核启动参数中的 console 参数以及 android 源代码 s...转载 2018-05-10 17:51:00 · 2816 阅读 · 0 评论 -
Android 8 init 对rc文件处理的变化
在以前版本的Android中,系统Native服务,不管它们的可执行文件位于系统什么位置都定义在根分区的init.*.rc文件中。这造成init*.rc文件臃肿庞大,给维护带来了一些不便,而且其中定义的一些服务的二进制文件根本不存在。但在Android 8中,对该机制做了一些改变 。单一的init*.rc,被拆分,服务根据其二进制文件的位置(/system,/vendor,/odm)定义到...原创 2018-05-17 11:23:06 · 3502 阅读 · 0 评论 -
Android P 新特性
AMS从Android P开始,只有当Intent flag中指定了FLAG_ACTIVITY_NEW_TASK,才允许在非Activity场景启动Activity。 APP必须拥有FOREGROUND_SERVICE权限,才允许使用前台服务,否则会抛出异常。目前很多APP开发者们对Android O的一些后台限制行为不太了解这些变更,遇到问题可能误以为系统问题,所以这里说到这顺便提一...原创 2018-05-07 17:46:27 · 360 阅读 · 0 评论 -
Android 新增按键
./framework/base/data/keyboards/Generic.klkey 139 RECENT_APPframeworks\native\include\android\Keycodes.hAKEYCODE_RECENT_APP = 266frameworks\native\include\input\InputEventLabels.hDEFINE...原创 2018-05-25 09:54:54 · 390 阅读 · 0 评论 -
Android Studio导入Android源码
1.生成studio需要的工程文件$ source build/envsetup.sh$lunch xx$mmm development/tools/idegen/$./development/tools/idegen/idegen.sh如下图: 2.定制化android.iml文件<sourceFolder url="file://$MODULE_DIR$/./sd...原创 2018-05-16 16:34:41 · 289 阅读 · 0 评论 -
Android jni获取进程名
char process_name[50] = {0};char *pWecarnavi = "com.xx.xx";getprocname(IPCThreadState::self()->getCallingPid(), process_name, sizeof(process_name));static int getprocname(pid_t pid, char *buf, ...原创 2018-06-20 10:56:11 · 3367 阅读 · 2 评论 -
EventLogTags.logtags说明
See system/core/logcat/event.logtags for a description of the format of this file.option java_package com.android.server.am2719 configuration_changed (config mask|1|5) 2721 cpu (total|1|6),(user|...原创 2018-07-10 16:03:37 · 2005 阅读 · 0 评论 -
Android LowMemoryKiller ADJ优先级
Android 7.0开始,解读每个ADJ值都对应着怎样条件的进程,包括正在运行的组件以及这些组件的状态几何。这里重点介绍上图标红的ADJ级别所对应的进程。Android系统中计算各进程ADJ算法的核心方法:updateOomAdjLocked:更新adj,当目标进程为空或者被杀则返回false;否则返回true;computeOomAdjLocked:计算adj,返回计算后RawA...原创 2018-07-04 16:53:00 · 1724 阅读 · 0 评论 -
android.mk android源码编译
LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE_TAGS := optionalLOCAL_SRC_FILES := $(call all-java-files-under, src)LOCAL_PACKAGE_NAME := SettingsLOCAL_CERTIFICATE := platformin...转载 2018-05-10 14:59:42 · 653 阅读 · 0 评论 -
LMK(Low Memory Killer)
Low Memory Killer进程按照状态分完重要性之后,就要开始杀进程了。Android的Low Memory Killer基于Linux的OOM机制,在Linux中,内存是以页面(page)为单位,当申请页面分配不足的时候,系统会通过Low Memory Killer来杀掉bad进程,释放内存。Low Memory Killer会根据进程的adj级别以及所占的内存,来决定是否杀掉该进程,a...原创 2017-11-24 14:48:57 · 1808 阅读 · 0 评论 -
Android 系统 log存放路径
手机的默认的日志目录: /data/local/tmp/*/data/tmp/*/data/system/usagestats/*/data/system/appusagestates/*/data/system/dropbox/*/data/tombstones/*/data/anr/*logcat的日志在/dev/log/原创 2017-08-01 12:36:54 · 29785 阅读 · 0 评论 -
android 5.0后对于apk 跑32 64 的逻辑
1, 是否是 64 bit apk,在对应的 full_sky828_8s70.mk 里面,这里主要包含64 bit apk的支持, 还有zygote的启动方式,64 bit apk fork的简要过程Inherit from hardware-specific part of the product configuration.$(call inherit-product, device转载 2017-08-03 09:22:20 · 799 阅读 · 0 评论 -
Mina
Mina基本结构IoAccepter 相当于网络应用程序中的服务器端IoConnector 相当于客户端IoSession 当前客户端到服务器端的一个连接实例IoHandler 业务处理逻辑IoFilter 过滤器用于悬接通讯层接口与业务层接口 Mina介绍参考链接http://blog.csdn.net/zhangyaoming2004/art原创 2017-06-07 15:34:56 · 436 阅读 · 1 评论 -
Android中AsyncTask的使用
在Android中实现异步任务机制有两种方式,Handler和AsyncTask。Handler模式需要为每一个任务创建一个新的线程,任务完成后通过Handler实例向UI线程发送消息,完成界面的更新,这种方式对于整个过程的控制比较精细,但也是有缺点的,例如代码相对臃肿,在多个任务同时执行时,不易对线程进行精确的控制。关于Handler的相关知识,前面也有所介绍,不清楚的朋友们可以参照一下。转载 2017-09-13 16:54:40 · 245 阅读 · 0 评论 -
Android Context 上下文
1、Context概念其实一直想写一篇关于Context的文章,但是又怕技术不如而误人子弟,于是参考了些资料,今天准备整理下写出来,如有不足,请指出,参考资料会在醒目地方标明。Context,相信不管是第一天开发Android,还是开发Android的各种老鸟,对于Context的使用一定不陌生~~你在加载资源、启动一个新的Activity、获取系统服务、获取内部文件(夹)路径、创建Vie转载 2017-09-26 09:49:52 · 223 阅读 · 0 评论 -
Android service 简单介绍
1.Android系统服务Android系统服务提供系统最基本、最核心的功能,如设备控制、位置信息、通知设定、消息显示等。这些服务分别存在于Application Framework与Libraries层之中。如下图所示:2.系统服务分类系统服务分为本地系统服务和Java系统服务。2.1 本地系统服务本地系统服务使用C/C++编写,运行在Libraries层,主要包含Aud原创 2016-12-08 15:17:04 · 485 阅读 · 0 评论 -
Android 智能指针总结
这3种指针,在这篇博客http://blog.csdn.net/luoshengyang/article/details/6786239中讲的比较详细。我们这边自己再重新梳理,总结下。这3种指针都是基于计数器的原理完成的。一、轻量级指针我们先来看第一个,LightRefBase类的实现在system/core/include/utils/Refbase.h中实现的[原创 2016-10-14 10:34:14 · 529 阅读 · 0 评论 -
Android进程创建
点击APP图标之后Launcher所在进程便是这次创建新进程的发起进程,该通过binder发送消息给system_server进程,该进程承载着整个java framework的核心服务。system_server进程从Process.start开始,执行创建进程原创 2017-11-28 15:42:58 · 625 阅读 · 0 评论 -
Android消息机制
Handler Looper MessageQueue 联系原创 2018-07-04 17:03:27 · 150 阅读 · 0 评论 -
Android event-log-tags
42 answer (to life the universe etc|3)314 pi1003 auditd (avc|3)1004 chatty (dropped|3)1005 tag_def (tag|1),(name|3),(format|3)1006 liblog (dropped|1)2718 e2719 configuration_changed (config mas...原创 2019-07-29 14:07:54 · 2861 阅读 · 0 评论 -
init rc 说明
Android Init Language---------------------The Android Init Language consists of five broad classes of statements:Actions, Commands, Services, Options, and Imports.All of these are line-oriented,...原创 2019-08-06 17:29:49 · 675 阅读 · 0 评论 -
Android 9 wifi PNO 扫描
Android wifi扫描机制(Android O): https://blog.csdn.net/h784707460/article/details/79658950Android wifi PNO扫描流程(Andriod O) :https://blog.csdn.net/h784707460/article/details/79702275四种场景亮屏情况:在WiFi Setti...转载 2019-09-11 20:15:53 · 1483 阅读 · 1 评论 -
Android性能调试方法
bootchartbootchart 可为整个系统提供所有进程的 CPU 和 I/O 负载细分。该工具不需要重建系统映像,可以用作进入 systrace 之前的快速健全性检查。要启用 bootchart,请运行以下命令:adb shell ‘touch /data/bootchart/enabled’adb reboot在设备启动后,获取启动图表:$ANDROID_BUILD_TOP/...原创 2019-09-18 13:52:33 · 1026 阅读 · 0 评论 -
Android 9 网络配置
frameworks/base/core/res/res/values/config.xml<!-- Regex of wired ethernet ifaces --> <string translatable="false" name="config_ethernet_iface_regex">usb\\d</string> <...原创 2019-09-18 19:51:31 · 3122 阅读 · 0 评论 -
Dalvik与ART虚拟机的GC调试
Dalvik线程状态对应定义(Android4.4,libcore/libdvm/src/main/java/java/lang/VMThread.java) /** * Holds a mapping from native Thread statuses to Java one. Required for * translating back the result...原创 2019-09-19 15:16:11 · 350 阅读 · 0 评论 -
Android 9 Android.dp添加逻辑判断
原Android.dp// Copyright (C) 2011 The Android Open Source Project//// Licensed under the Apache License, Version 2.0 (the "License");// you may not use this file except in compliance with the Licen...原创 2019-09-20 17:55:21 · 868 阅读 · 0 评论 -
Android APP 启动时间统计
利用am start命令[C:\~]$ adb shell am start -W "com.android.settings/.Settings"Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.android.settings/.Settings...原创 2019-09-21 17:17:22 · 561 阅读 · 0 评论 -
Android 9 Wifi 调试
wifi无法上网可能原因WiFi网络未验证(portal网络),访问时路由器会重定向到二次登录网址运营商服务器或代理服务器问题,无法连接到外网DNS服务器问题,导致DNS解析失败系统时间不正常,导致证书失效,SSL/TLS握手失败,HTTPS无法上网TCP连接长时间无数据收发,达到NAT超时时间,网络运营商切断TCP连接,导致长连接失效(push心跳间隔应小于NAT超时时间)应用进入了...原创 2019-07-03 20:53:17 · 2771 阅读 · 0 评论 -
Android SELinux语法
在 SELinux 中,标签采用以下形式:user:role:type:mls_level,其中 type 是访问决定的主要组成部分,可通过构成标签的其他组成部分进行修改。对象会映射到类,对每个类的不同访问类型由权限表示。政策规则采用以下形式:allow domains types:classes permissions;,其中:Domain - 一个进程或一组进程的标签。也称为域类型,因为它...翻译 2019-06-10 17:00:30 · 666 阅读 · 2 评论 -
Activity onSaveInstanceState()分析
/** * Called to retrieve per-instance state from an activity before being killed * so that the state can be restored in {@link #onCreate} or * {@link #onRestoreInstanceState} (the {...原创 2018-08-03 17:18:47 · 166 阅读 · 0 评论 -
Android设置系统时间
##AlarmManager方式/***************************************************************************** Prototype : McuDateTime.getAndroidSysteTime Description : get android SystemTime Inpu...原创 2018-09-29 10:05:56 · 5738 阅读 · 0 评论 -
Android jni层打开打印
NDEBUG 是总开关,默认在编译参数中加入打开ALOGV: #define LOG_NDEBUG 0打开ALOGI:#define LOG_NIDEBUG 0打开ALOGD:#define LOG_NDDEBUG 0打开全部LOG:#undef NDEBUG原创 2018-10-16 10:17:47 · 413 阅读 · 0 评论 -
Android 打印堆栈
1.Java中:Log.e(“dump_test”,Log.getStackTraceString(new Throwable())); 2.C++中: <1>.test.cpp #include <utils/Log.h> #include <utils/CallStack.h> void dumping_callstack(){ a...转载 2018-10-10 16:38:19 · 6540 阅读 · 0 评论 -
Android ro.serialno
ro.serialno不存在于任何属性文件,比如build.prop, default.prop等,而是在/system/core/init/init.c里由ro.boot.serialno 转换而来,具体看如下代码:static void export_kernel_boot_props(void){ char tmp[PROP_VALUE_MAX]; int ret; ...原创 2018-11-21 16:57:20 · 2647 阅读 · 0 评论 -
Android Studio 引入源码编译的jar包
直接引用 out\target\common\obj\JAVA_LIBRARIES\framework_intermediates目录下的相关文件,该目录下的classes-jarjar.jar 包含系统中很多接口apiAndroid Studio 引入源码编译的jar包1.拷贝classes-jarjar.jar到工程libs目录并重新命名为framework.jar,并右键单击jar包 ...原创 2018-11-07 14:59:17 · 2283 阅读 · 1 评论 -
Android 6之后settings.db变化
android6.0之后在data/data/com.android.providers.settings/databases目录下找不到settings.db数据库原因:在6.0上面,Google修改了SettingsProvider,这次修改,涉及到了global,secure,system 三个表;并且实现方式从之前的数据库,改为异步性能更加优良的xml,每个用户都有自己的一份Sett...原创 2019-05-20 11:09:53 · 296 阅读 · 0 评论 -
Vendor NDK
目录布局退化目录布局由以下目录组成:/system/lib[64] 包含所有框架共享库,具体包括 LL-NDK、VNDK 和框架专用库(包括 LL-NDK-Private 和一些与 VNDK-SP 中的库同名的库)。/system/lib[64]/vndk-sp 包含适用于 Same-Process HAL 的 VNDK-SP 库。/vendor/lib[64] 包含供应商扩展的 VNDK...转载 2019-05-22 16:50:26 · 1115 阅读 · 0 评论 -
ScheduledThreadPoolExecutor 定时任务demo
public class ScheduledThreadPoolExecutorTest { public static void main(String[] args) { ScheduledThreadPoolExecutor executorService = new ScheduledThreadPoolExecutor(1); BusinessTa原创 2017-07-07 14:41:01 · 495 阅读 · 0 评论 -
Tomcat 搭建简单文件服务器
方法一:配置在tomcat目录下 直接把文件放在 tomcat下的 webapps/ROOT 目录下, 然后在网址中访问: http://127.0.0.1:8080/download.zip 便可下载 (或者创建一个可以访问静态资源的 web 项目,如复制tomcat中的examples 将文件夹重命名,然后将需要的文件放在该目录下,即可访问)方法二:如过不想放在服务器的webapp原创 2017-06-14 17:42:49 · 6503 阅读 · 0 评论