android基础
文章平均质量分 68
快導碗里来
这个作者很懒,什么都没留下…
展开
-
Android System Property讲解前言
我们在开发过程中经常会使用到系统属性,例如获取系统软件版本,获取设备名名称,boardid等;有时也需要内置自己的属性,系统属性简单来说是用来存储系统中某些键值对数据,具有全局性、存取灵活方便的特点。ro即read only属性通常是系统默认属性 在系统编译或初始化时设置的ro属性一旦设置,属性值不能改变。重启不会失效,是永恒的固定值,不能修改值,只能刷机改变1。原创 2023-03-18 12:04:58 · 3712 阅读 · 1 评论 -
如何在下拉状态栏上新增一个开关按钮?
如何在下拉状态栏上新增一个开关按钮?以添加情景模式切换按钮为例,1、资源准备:至少需要添加的图片和字符串资源有 不同的情景模式对应的资源图片放在SystemUI的图片资源目录下:/SystemUI/res/drawable-hdpi/ 字符串资源表示按钮的标题放在SystemUI的strings.xml文件中:/SystemUI/res/values/strings.xml2、框架搭建:添加情......原创 2018-04-16 16:15:41 · 228 阅读 · 0 评论 -
谈谈Android中的persistent属性
Android中的persistent属性介绍转载 2022-06-26 19:06:21 · 4071 阅读 · 0 评论 -
android如何分析进程被杀问题
android如何分析进程被杀问题转载 2022-03-18 10:47:48 · 7894 阅读 · 0 评论 -
如何直接打开aee db文件?分析重启,anr等问题
[DESCRIPTION]当发生异常后,除了有mtklog外,还有aee_exp目录下的db,很多异常分析都是基于db的。db是一个压缩的2进制文件,无法直接打开。GAT(MTK网站可以下载,但是我下载的只有32位版本)里的logviewer可以直接打开解压,但是操作繁琐,这里提供一个直接双击打开db的方法。[SOLUTION]在windows操作系统上,可以将某个文件关联一个应用程序,双击这个文件就可以启动该应用程序打开。比如txt文件,双击后notepad.exe会打开txt文件。.转载 2020-06-22 14:16:08 · 1549 阅读 · 0 评论 -
Service的两种启动方式,显示启动和隐式启动
1、显式启动Service端:需要声明android:exported="true",这样别的APP才能访问。<service android:name=" com.easyliu.watchgesture.service.GestureDetectorService "android:exported= "true">客户端:需要知道Sercvice的名字以及其Application所在的包名。public static final Strin...转载 2020-06-22 13:56:31 · 1414 阅读 · 0 评论 -
高通QPST备份QCN及恢复流程
一:首先打开qpst software download 界面,选择backup选项连接手机进行备份,进度条走完后点击Exit完成备份二:qcn还原流程,选择restore 连接手机进行还原,待进度条走完后点击Exit后手机会自动重启,此为完整流程。...原创 2020-01-02 14:37:00 · 19037 阅读 · 1 评论 -
Android Linux Alarm 对功耗的影响
Android Linux Alarm 对功耗的影响技术标签:alarmrtcandroidlinux文章目录1、 Alarm介绍 1.1 alarm的几种类型及区别 1.2 alarm相关接口 1.3 batch——减少设备唤醒次数以节省功耗 2、alarm关键流程 2.1 Alarm关键流程分析——init 2.2 Alarm关键流程分析...转载 2020-01-02 11:19:38 · 1042 阅读 · 0 评论 -
adb push可执行文件制作教程(bat执行文件)
root权限根据不同机型修改adb push 后面路径根据需求自行修改windows系统直接粘贴如下脚本,将文本扩展名.txt改为.bat即可@echo offechoadb disable-verityadb rebootadb wait-for-deviceadb rootadb wait-for-deviceadb remountadb push SmsR...原创 2018-09-20 15:31:36 · 871 阅读 · 0 评论 -
git 生成 patch的命令
个人理解:patch就是打补丁,通过git工具把代码的差分,生成patch文件,然后通过git工具可以直接把patch文件的内容,merge到代码里面。 生成patch的命令git diff > patch //本地变更 git diff 的内容,生成patch文件git diff branchname --cach...转载 2018-08-10 17:34:51 · 182 阅读 · 0 评论 -
Android性能优化-内存泄漏的8个Case
Android性能优化-内存泄漏的8个Case1为什么要做性能优化?手机性能越来越好,不用纠结这些细微的性能?Android每一个应用都是运行的独立的Dalivk虚拟机,根据不同的手机分配的可用内存可能只有(32M、64M等),所谓的4GB、6GB运行内存其实对于我们的应用不是可以任意索取 详情:http://10.158.0.33/bbs/forum.php?mod=viewthread&...原创 2018-05-23 11:14:47 · 177 阅读 · 0 评论 -
JNI在Android源码中的使用案例
什么是JNI,怎么使用JNI——Java Native Interface,它是Java平台的一个特性(并不是Android系统特有的)。其实主要是定义了一些JNI函数,让开发者可以通过调用这些函数实现Java代码调用C/C++的代码,C/C++的代码也可以调用Java的代码,这样就可以发挥各个语言的特点了。那么怎么使用JNI呢,一般情况下我们首先是将写好的C/C++代码编译成对应平台的动态库(w...原创 2018-05-08 16:18:53 · 868 阅读 · 0 评论 -
将源码中的应用独立流程
源码中的应用有时候我们需要将其独立出来达到一定的开发目的,下面以camera为例来讲解一下独立的过程Camera 应用独立为什么独立Android N 使用了 Ninja 编译系统,旨在加快编译速度,但是对内存要求也变高,编译过程中会占用大量内存,这就导致在编译服务器上,会出现多人同时编译抢占内存资源的情况,这种情况下单模块的编译时间可能从几分钟增至半小时以上。UI 任务增加,UI 的微调需要多次...原创 2018-05-14 17:12:04 · 145 阅读 · 1 评论 -
AIDL在Android源码中的使用
一:AIDL,Android Interface definition language的缩写,它是一种android内部进程通信接口的描述语言,通过它我们可以定义进程间的通信接口。最近看了下AIDL在Android系统中的用法,在网上看到很多初学的朋友不太明白AIDL的实际作用,android提供了很多进程间通信的组件,像action、broadcast、contentprovide都可以实现进...原创 2018-05-07 17:20:35 · 1350 阅读 · 0 评论 -
Android中使用字体库的方法
今天来讲解一下导入字体库的方法1、首先拿到字体库放到assets下2、在代码中使用Typeface mTypeface;mTypeface = Typeface.createFromAsset(getAssets(), "fonts/RobotoThin.ttf");mTimerView.setTypeface(mTypeface);如果用的地方比较多的话可以考虑自定义控件添加自定义属性1、...原创 2018-05-18 17:18:51 · 1767 阅读 · 0 评论 -
在Google开机向导的后面定制几页自己的向导界面
GMS中的setupwazird给用户留了专门的接口可以让用户在后面自定义几页自己的向导界面今天就讲解一下具体的实现方式 <activity android:name="com.android.contoryselect.CountrySelectActivity" android:configChanges="orientation|screenSize|k...原创 2020-05-20 17:08:36 · 369 阅读 · 0 评论 -
android6.0及7.0设置默认输入法方式
因项目需求需要在首次开机的时候安装一个输入法然后并把它设置为默认输入法本次主要讲的是在安装输入法之后如何设置输入法为默认输入法:1、首先安装apk是需要时间的,我们要了解什么时候输入法是安装好的。我们应用在安装成功之后系统会发送一个广播:android.intent.action.PACKAGE_ADDED那么这样我们就可以写一个广播接收器来接收这个广播,然后通过intent得到被安装应用的包名。...原创 2018-03-23 15:30:57 · 1891 阅读 · 0 评论 -
Android中父View和子view的点击事件处理问题探讨
在处理二级菜单和下拉栏顶部的几个按钮冲突的时候参考了一下魅族的手机处理方法:当二级菜单显示的时候除了点击二级菜单的地方可以响应外,点击其他区域会先收回二级菜单然后才能做其他的操作。为了实现这一方式我的思路是:1、首先判断当前二级菜单是否处于显示的转态2、根据二级菜单的显示与否来通过其他区域的父控件截取子控件的触摸事件,做收回二级菜单操作第二个步骤就使用到了父控件和子控件之间的触摸事件的流程,具体资...原创 2018-03-13 14:51:49 · 2005 阅读 · 2 评论 -
在代码中通过LayoutParams动态调整子View的大小报ClassCastException错误
在代码中通过LayoutParams动态调整子View的大小报ClassCastException错误在调整下拉栏二级菜单位置的时候想使用LayoutParams动态改变二级菜单距离顶部的距离,下面是在QSDetail中首次写的代码这个默认使用的是LinearLayout的LayoutParamspublic class QSDetail extends LinearLayout {private...原创 2018-03-06 16:26:21 · 201 阅读 · 0 评论 -
make、git、grep、find、adb的常用命令集锦
make:mmma frameworks/base/services/ -j16 相关联的包一起编译make update-api 更新系统APImake clean-SystemUI -j8 clean一个模块CP:cp <files path> <to path>git:Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小...原创 2018-03-31 08:37:17 · 2447 阅读 · 0 评论 -
自定义刻度尺进度条总结
应项目需要我这边要定义一个播放录音的控件,效果如图:这边先讲一下具体的初版思路吧1、首先我的思路是复杂的问题简单化,先把这个控件拆分为:上面的刻度和下面的进度条2、刻度可以根据录音的具体时间来画,下面的进度可以继承SeekBar来实现3、然后将两个控件的组合在一起放在一个自定义的Relativelayout中,组合成一个控件先上一下效果动图下面是上代码时间:一:首先来画刻度尺的部分刻度尺的部分是比...原创 2018-04-18 11:04:25 · 1860 阅读 · 0 评论 -
Android Shape的使用
说明在Android开发中,使用shape可以很方便的帮我们画出想要的背景,相对于png图片来说,使用shape可以减少安装包的大小,而且能够更好的适配不同的手机。使用先贴出官网上的说明:<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/r...原创 2018-04-09 16:55:54 · 123 阅读 · 0 评论 -
Android 自定义view实现水波纹效果
转自:http://blog.csdn.net/tianjian4592/article/details/44222565今天主要分享水波纹效果:1.标准正余弦水波纹;2.非标准圆形液柱水波纹;虽说都是水波纹,但两者在实现上差异是比较大的,一个通过正余弦函数模拟水波纹效果,另外一个会运用到图像的混合模式(PorterDuffXfermode);先看效果: ...转载 2018-04-18 10:48:01 · 570 阅读 · 0 评论 -
RadioButton修改样式使用总结
应项目需求需要做下面的带数字的按钮,选中的时候背景图和字体颜色都可以改变但是我略微想一下RadioButton完全符合这个需求呀。下图前面三个是RadioButton , 后面的那个是CheckBox.但是经过我的测试RadioButton是不符合要求的,因为它在单独使用的情况下只能从非check的状态改变到check的状态,反过来则不行。于是我有想到了CheckBox,发现这个才是完全符合标准的...原创 2018-04-19 11:16:27 · 5687 阅读 · 0 评论 -
录屏功能之悬浮窗口
最近要做录屏功能看了魅族及小米的录屏效果打算对比做一个首先我将任务分为两步:1、实现悬浮的窗口来操作和显示录屏的信息2、二实现录屏功能这次只讲解悬浮的窗口,下次再讲解录屏的功能下面是我做的demo效果图1、首先悬浮框是需要权限的(这个权限在5.0上应用是可以使用的,5.0之后的使用这个权限是不能使用的,这个录屏功能我是要加在下拉栏中的所以权限问题可以解决了)<uses-permission ...原创 2018-04-19 17:06:24 · 2483 阅读 · 2 评论 -
如何将SVG转换成VectorDrawable XML资源
转载自:https://blog.csdn.net/lupengfei1009/article/details/51079123首先给介绍一个网站,可谓是牛B闪闪:阿里巴巴矢量图标,有了它,麻麻再也不担心我没有图标了。如下图: 任意点击一个分组,可以见到如下各种详细的图标,我们可以根据自己的需求,调整不同的大小,然后下载图标。 当我们点击下载的时候,可以根据需要选择一种图标的颜色;但是我们会发现,...转载 2018-04-24 09:49:14 · 7207 阅读 · 1 评论 -
Android开发中dp,sp和px之间的转换
文章转载自:https://blog.csdn.net/student9128/article/details/53932470众所周知,在Android开发中dp和px,sp和px之间的转换时必不可少的,下面将转换的代码记录下来:public class DisplayUtils { /** * convert px to its equivalent dp * &...转载 2018-04-24 10:05:55 · 127 阅读 · 0 评论 -
Android源码中单独导入模块的方法
源码中单独导入模块的方法:1、首先在源码同级的目录下创建一个自己模块的目录2、在这个目录下面放入脚本文件import.sh3、运行脚本文件4、使用studio导入创建的文件夹下面是import.sh的具体内容SOURCE_TOP_DIR=/mnt/admn/tianyajun/8.1-A14CURRENT_DIR=`pwd`unset ez_LinkDirez_LinkDir=( \ ......原创 2018-04-24 10:39:00 · 134 阅读 · 0 评论 -
android5.0以后不能使用隐式intent启动service
转载自:https://www.cnblogs.com/xiaoxiaing/p/6278996.htmlandroid5.0以后不能使用隐式intent :需要指定Intent的ComponentName信息:intent.setComponent(xxx),或指定Intent的setPackage("包名"),如果两者都没有指定的话将会报以上错误。尤其在framework层启动APP层的ser...转载 2018-04-25 18:48:29 · 553 阅读 · 0 评论 -
RecyclerView在SystemUI中使用的经典案例
话说RecyclerView比较强大,而且在我负责的模块SystemUI中也使用到了这个控件所以就结合源码学习一下,一举两得!首先先看一下SystemUI中RecyclerView的使用效果,如图:这个界面的整体布局是在自定义控件QSCustomizer.java中的构造方法中加载的LayoutInflater.from(getContext()).inflate(R.layout.qs_cust...原创 2018-05-10 15:54:40 · 354 阅读 · 0 评论 -
Android中判断一个Service是否处于运行转态
参考文档:https://blog.csdn.net/ss8860524/article/details/70844559今天在项目中需要判断某个服务是否在后台运行,因此写了一个工具类方便大家调用,话不多说,上代码。/** * 判断服务是否开启 * * @return */public static boolean isServiceRunning(Context context, St...原创 2018-04-26 16:28:00 · 7879 阅读 · 0 评论 -
Android 中clipToPadding 和 clipChildren区别和作用
Android 关于 clipToPadding和clipChildren区别和作用对于这两个属性那也是很神奇,但是平常见的不多,SystemUI使用了这个属性所以学习了一下:1.对于clipToPadding默认是true,这个属性一般都是具有滑动功能的viewgrounp对象才会用到(viewpager和listview等自定义的可滑动的控件也可以使用)他的意思就是对padding进行裁剪,默...原创 2018-03-02 17:10:16 · 570 阅读 · 0 评论