Android
文章平均质量分 53
他叫小黑
这个作者很懒,什么都没留下…
展开
-
Maven
Maven仓库官网网址。原创 2023-11-21 14:47:11 · 1346 阅读 · 0 评论 -
bugreport实战
一、Bugreport文章Bugreport源码篇(一)从源码角度阐释了Bugreport,那么本文则是从实战角度来说说,如何看懂bugreport,对于通过bugreport获取到内容往往非常长,这里简单划分为19部分,先整体上简单说说每部分log的title信息。1. 系统build相关信息系统build信息:dumpstate: dateBuild: getprop ro.build.display.idBuild fingerprint: getprop ro.build.finger转载 2020-08-28 19:38:06 · 3980 阅读 · 0 评论 -
Android P VNDK报错
最近修改Android接口,报了一个VNDK的错误,如下按照提示执行development/vndk/tools/header-checker/utils/create_reference_dumps.py -l [email protected]。执行不通过,报了如下错误:$ development/vndk/tools/header-checker/utils/create_reference_dumps.py -l [email protected]原创 2020-05-11 20:41:04 · 12068 阅读 · 3 评论 -
Android dump使用
简介dumpsys是Android提供的系统工具,可以用来查看所有系统服务的信息。在命令行输入如下命令,就可以罗列出当前所有的系统服务名:dumpsys -ldumpsys 后面加上列出的系统服务名即可只输出特定服务的信息。如下面指令会输出Activity任务栈的信息。dumpsys activity直接dumpsys 某个service打出的信息量很大,可以有选择性的添加一些参数...原创 2019-10-11 12:12:12 · 5644 阅读 · 0 评论 -
Android打印堆栈的方法
打印调用堆栈可以直接把问题发生时的函数调用关系打出来,非常有利于理解函数调用关系,这个对源代码逻辑研究是很有帮助的。Javanew Throwable().printStackTrace(); 很简单。Native C++在mk中要添加下面的库:LOCAL_SHARED_LIBRARIES := \ libbinder \包含下面头文件:includ...原创 2018-06-29 15:10:02 · 2161 阅读 · 0 评论 -
Log.isLoggable的使用
本文将介绍怎么打印出framework源码中的log。在Android源码中,经常可以看到如下的log代码://AudioService.javaprivate static final String TAG = "AudioService";protected static final boolean DEBUG_VOL = Log.isLoggable(TAG + ".V...原创 2018-06-04 19:06:47 · 2627 阅读 · 0 评论 -
ProtoBuf入门
最近在入Android O的坑。看到ProtoBuf了解一下。 Google Protocol Buffer(简称 Protobuf)是一种轻便高效的结构化数据存储格式,平台无关、语言无关、可扩展,可用于通讯协议和数据存储等领域。你可以用定义自己ProtoBuf的数据结构,用ProtoBuf编译器生成特定语言的源代码,(如C++,Java,Python等,目前ProtoBuf对主流的编程语言都提...原创 2018-03-24 17:34:51 · 310 阅读 · 0 评论 -
在Ubuntu下安装Android Studio并导入源码
1.下载Ubuntu版本Android Studio到官网下载,选择Ubuntu版本2.安装把官网下载的zip包放到ubuntu下。 在终端使用下面命令解压zip包到/usr/local/路径下:unzip -d /usr/local/ android-studio-ide.zip如果要把文件解压到指定的目录下,需要用到-d参数。解压的时候,有时候不想覆盖已经存在...原创 2018-03-22 19:48:20 · 1942 阅读 · 0 评论 -
系统强制横屏、竖屏
Activity横竖屏修改属性android:screenOrientation即可属性有下述可选值: 1. unspecified:默认值 由系统来判断显示方向.判定的策略是和设备相关的,所以不同的设备会有不同的显示方向 2. landscape:横屏显示 3. portrait:竖屏显示 4. user:用户当前首选的方向原创 2017-09-29 10:38:39 · 2184 阅读 · 0 评论 -
自定义View(二)
先贴一下自定义View(一)的链接,里面讲了一些自定义View基础的内容。这篇我将实现一个继承View的例子。点击TxetView的内容将随机产生四位随机数。自定义View的步骤:自定义View的属性在View的构造方法中获得我们的自定义属性重写onMesure()重写onDraw()但是第3步不一定是必须的,当然大部分情况下还是需要重写的。1、自定义View的属性原创 2016-04-18 11:05:57 · 266 阅读 · 0 评论 -
添加系统属性:Settings.system和SystemProperties
介绍一、使用 SystemProperties.get这中方法在framework里面经常见到。特别属性: 如果属性名称以“ro.”开头,那么这个属性被视为只读属性。一旦设置,属性值不能改变。 如果属性名称以“persist.”开头,当设置这个属性时,其值也将写入/data/property。在c++中就是对应JAVA的两个函数就是property_set, property_get,其实JAV原创 2017-05-09 15:23:28 · 6807 阅读 · 1 评论 -
获取当前栈顶的Activity
如何获得当前栈顶的Activity?总的步骤是: 1. 得到当前运行环境(context)的Activity管理器; 2. 通过Activity管理器得到当前的任务栈信息; 3. 从任务栈中获得栈顶的Activity的名称。ActivityManager manager = (ActivityManager)mContext.getSystemService(Context.ACTIVI原创 2017-07-21 10:48:37 · 1340 阅读 · 0 评论 -
Handler:Android异步消息处理机制完全解析
我们都知道,Android UI是线程不安全的,如果在子线程中尝试进行UI操作,程序就有可能会崩溃。相信大家在日常的工作当中都会经常遇到这个问题,解决的方案应该也是早已烂熟于心,即创建一个Message对象,然后借助Handler发送出去,之后在Handler的handleMessage()方法中获得刚才发送的Message对象,然后在这里进行UI操作就不会再出现崩溃了。这种处理方式被称为异步消息转载 2016-04-11 11:10:04 · 342 阅读 · 0 评论 -
Android Studio的学习
这几天更加深入学习了下Android Studio。俗话说磨刀不误砍柴工,熟悉开发软件能让我们加快开发的速度。下面总结一下。alt+空格自动修复错误Ctrl+Shift+空格代码提示Ctrl+X剪切光标所在行代码Ctrl+O快捷覆写方法原创 2016-03-03 12:11:36 · 399 阅读 · 0 评论 -
mk文件介绍
makefile(mk)文件,一旦写好,只需一个make命令,整个工程完全自动编译。1、LOCAL_PATH := $(call my-dir),一个Android.mk file首先必须定义好LOCAL_PATH变量。它用于在开发树中查找源文件。在这个例子中,宏函数‘my-dir’, 由编译系统提供,用于返回当前路径(即包含Android.mk file文件的目录)。原创 2016-11-18 15:21:32 · 43639 阅读 · 0 评论 -
Android使用@hide的API
今天早上想修改MediaPlaybackService.java(/packages/apps/Music)的代码。将AudioManager.STREAM_MUSIC改成AudioManager.STREAM_TTS。发现AudioSystem.java(/frameworks/base.media/java/android/media)/* @hide The audio stream for原创 2017-01-05 11:09:14 · 912 阅读 · 0 评论 -
Android官方文档之Services
官方原文链接。本文将介绍Services的定义、创建、启动、绑定、前台Service等相关内容。Service是Android中一个类,它是Android四大组件之一,使用Service可以在后台执行长时间的操作,Service并不与用户产生UI交互。其他的应用组件可以启动Service,即便用户切换了其他应用,启动的Service仍可在后台运行。一个组件可以与Service绑定并与之交互,甚至是跨进翻译 2016-05-30 21:19:48 · 3345 阅读 · 0 评论 -
自定义View(一)
很多时候系统自带的View满足不了设计的要求,就需要自定义View控件。自定义View的方法:1.继承View 2.继承特定的View(如Button) 3.继承ViewGroup 4.继承特定的ViewGroup(如LinearLayout)原创 2016-04-03 20:16:57 · 398 阅读 · 0 评论