
Android
文章平均质量分 53
cch___
这个作者很懒,什么都没留下…
展开
-
Developer 路径
dumpsys使用 Logcat 写入和查看日https://developer.android.com/studio/debug/am-logcat#memory-logsAndroid Profiler原创 2021-10-08 14:44:26 · 194 阅读 · 0 评论 -
gradle 使用 exclude 解决jar包冲突
1. 查看冲突的jar包;一眼能看出来的跳到第二步; 遇到隐藏比较深的就比较难受了,肉眼完全看不出来,此时使用以下命令查看:gradlew -q app:dependencies 查看依赖树;比如:Duplicate class androidx.dynamicanimation.animation.DynamicAnimation$OnAnimationUpdateListener found in modules classes.jar (androidx.dynamicanimation.原创 2021-03-31 16:40:33 · 28255 阅读 · 2 评论 -
dagger2 使用无法自动生成dagger + component 等问题集錦
一、dagger2 使用无法自动生成dagger + component 问题一般两种方法进行注册:方法一:实体类Product 构造方法:class Product @Inject constructor() { fun showPro(): String { return "shb##@@" }}桥梁 component:@Componentinterface ProductComponent { fun inject(mai...转载 2021-03-29 22:46:59 · 1074 阅读 · 0 评论 -
Android.bp 语法浅析
随着 android 工程越来越大,包含的 module 越来越多,以 makefile 组织的项目编译花费的时间越来越多。Google 在 7.0 引入了 ninja 是 Google 的一名程序员推出的注重速度的构建工具,一般在 Unix/Linux 上的程序通过 make/makefile 来构建编译,而 Ninja 通过将编译任务并行组织,大大提高了构建速度。7.0 的时候 android 项目还是有大部分是由 makefile 来组织的,因此 Google 引入了 kati 将 makefil转载 2021-01-22 16:45:22 · 5290 阅读 · 0 评论 -
2021-01-16
您从Android获取的hprof文件具有android特定的格式。 你应该把hprof文件从Android OS转换成标准的hprof格式。 为此,您可以使用位于AndroidSDK/tools/hprof-conv。例如: hprof-conv android.hprof androidxxx.hprof 然后在Memory Analyzer中打开mat.hprof。编辑:hprof-conv可能位于AndroidSDK/platform-tools/在一些捆绑。如果您使用的是E.原创 2021-01-16 15:16:31 · 118 阅读 · 0 评论 -
Dagger 2 基本用法
1.Dagger2是什么?Dagger2是一个依赖注入(Dependency Injection)框架。什么又是依赖注入呢?借别人的话来说,就是“目标类中所依赖的其他类的初始化过程,不是通过在目标类中编码的方式完成,而是通过其他手段把已经初始化好的实例自动注入到目标类中”。再换种方式来说,就是把类实例的初始化过程都挪至一个地方统一管理,具体需要哪个实例时,就从这个地方取出(注入到目标类中)。他的主要作用,就是对象的管理,其目的是为了降低程序耦合。2.基本的概念我...翻译 2020-07-08 15:41:50 · 1987 阅读 · 1 评论 -
烧写 pixel 最新版本
最新版本地址:https://developer.android.com/preview/download#flashtooladb 获取及替换:https://developer.android.com/studio/releases/platform-tools烧写方法:https://developers.google.com/android/images#instructions1. 打开开发者模式,去掉锁。2. adb reboot bootloader;3. fa原创 2020-06-04 11:57:54 · 428 阅读 · 0 评论 -
Android运行环境Dalvik模式和ART模式的区别对比
Android系统是以Linux系统为底层构建的,开源的Android系统需要配置到不同硬件配置的设备上,为了降低应用的开发难度,在Linux底层之上构筑了一个名为"Dalvik"的虚拟机,名为虚拟机,实际是一种应用编译模式,Android4.4开始引入的ART模式是一种全新的应用编译模式,Android5.0彻底从Dalvik转换到ART。1、介绍:Dalvik模式:Dalvi...转载 2019-11-14 15:58:49 · 824 阅读 · 0 评论 -
Android获取窗口可视区域大小: getWindowVisibleDisplayFrame()
getWindowVisibleDisplayFrame()方法getWindowVisibleDisplayFrame()是View类下的一个方法,从方法的名字就可以看出,它是用来获取当前窗口可视区域大小的。此方法的原型为public void getWindowVisibleDisplayFrame(Rect outRect);1它接受一个Rect对象作为参数,执行过...原创 2019-10-26 15:14:09 · 761 阅读 · 0 评论 -
Android 文字绘制中的 FontMetrics 和 drawText()
在绘制文字的时候,不可避免的用到 FontMetrics 类和 Canvas#drawText() 方法,这里详细介绍下。FontMetrics先看下面这张图:FontMetrics Lines图中有五条线,自上而下分别是:top line: 文字可绘制区域最顶部的线; ascent line: 系统推荐的,文字可绘制区域顶部的线; baseline: 文字绘制的...转载 2019-10-25 09:36:51 · 439 阅读 · 0 评论 -
Android Studio内存大小的设置
近来在做项目的时候,因为种种原因,经常一次打开好几个AS的窗口。但是窗口开多了,问题也就来了,卡的不得了,简直让人有种想砸电脑的冲动,可错又不在电脑,迁怒与它又不太好,万一被老板发现了,又得挨批,所以只能求助度娘。首先我们看看当前AS的内存大小:在AS中打开设置,搜索Show memoryshow memory.jpg然后将Show memory indicator这个选...转载 2019-10-14 11:22:20 · 2621 阅读 · 0 评论 -
View的绘制流程分析之三 -- layout
layout - 布局确定View的最终宽高以及四个顶点的位置!接着上一篇 View的绘制流程分析之二 – measure 往下分析layout过程!在ViewRootImpl 中的performTraversals() 函数内部,执行performMeasure() 完毕之后,// Ask host how big it wants to beperform转载 2018-01-10 09:24:51 · 319 阅读 · 0 评论 -
View的绘制流程分析之四 -- draw
draw - 绘制将View绘制在屏幕上!在ViewRootImpl.java的函数performTravesals() 方法体最后,就开始了绘制流程!if (!cancelDraw && !newSurface) { if (mPendingTransitions != null && mPendingTransitions.size() >转载 2018-01-10 09:26:43 · 387 阅读 · 0 评论 -
View的绘制流程分析之二-Android对Window对象的管理机制分析
关于Window对象管理的相关类:ViewManagerWindowManagerWindowManagerImplWindowManagerGlobalViewParentViewRootImplActvityThreadWindowManagerServiceWindow是一转载 2018-01-10 09:16:40 · 414 阅读 · 0 评论 -
Android签名机制之---签名过程详解
一、前言又是过了好长时间,没写文章的双手都有点难受了。今天是圣诞节,还是得上班。因为前几天有一个之前的同事,在申请微信SDK的时候,遇到签名的问题,问了我一下,结果把我难倒了。。我说Android中的签名大家都会熟悉的,就是为了安全,不让别人修改你的apk,但是我们真正的有了解多少呢?所以准备两篇文章好好介绍一下Android中签名机制。在说道Android签名之前,我们需要了解的几个知识点1、数...转载 2018-05-03 11:41:16 · 278 阅读 · 0 评论 -
Android开发学习之View测量的内置常用方法
measureChildWithMargins代码如下 protected void measureChildWithMargins(View child, int parentWidthMeasureSpec, int widthUsed, int parentHeightMeasureSpec, int heightUsed) { fin...转载 2018-08-21 15:56:05 · 453 阅读 · 0 评论 -
View的绘制流程分析之二 -- measure
measure - 测量确定View的测量宽高上面说到 performTraversals() 函数的时候,内部调用了 performMeasure()private void performMeasure(int childWidthMeasureSpec, int childHeightMeasureSpec) { Trace.traceBegin(转载 2018-01-10 09:18:58 · 353 阅读 · 0 评论 -
Android 音频焦点(Audio Focus)
CONTENTS引子音频焦点一个简单的示例注意:引子说 Audio Focus 前先说个很简单需求:来电时暂停正在播放的音乐,电话结束时恢复播放。看到这个需求,第一反应肯定是:监听用户来电状态,作相应操作。这里不多做介绍,这样做有个不好的地方就是需要隐私权限!这样做一点也不优雅。后来搜索时看到一篇分析文章:Android来电时停止音乐播放的流程(顺便说一转载 2018-01-05 09:34:15 · 1370 阅读 · 0 评论 -
Android面试题
三金四银,又到了一年一度的跳槽季。也许有不少Android程序员开始摩拳擦掌蠢蠢欲动了。结合以往自己的经历,今天给大家总结下Android面试题,希望有帮助。Q1Activity生命周期?这几乎是个老少咸宜,永远不会过时的问题,而且极有可能是第一个问题。这个问题当然没什么好讲的啦,死记硬背是没什么用的了,关键是理解。本人就曾遇到这个问题的变种问题,问onStar转载 2017-12-05 20:57:21 · 219 阅读 · 0 评论 -
Android动画插值器之PathInterpolator浅析
PathInterpolator,一种动画插值器,以前从没听过动画插值器的同学可以去这篇android 动画的Interpolator插值器 好了,详细大家已经了解了插值器的作用和用法,那么我们开始这篇博文吧! MethodcodePathInterpolator(Path path)转载 2017-12-13 21:05:04 · 1165 阅读 · 0 评论 -
andorid O 新特性
目前android 8.0 已经发布,针对android 8.0 的适配已经提上日程。要想使用android 8.0 的新特性,就要把targetsdk提升到26。下面就讲解一下,升级sdk之后,APP需要做的事情。必须适配的新特性通知的渠道ID(ChanneId)Android 8.0 引入了通知渠道,其允许您为要显示的每种通知类型创建用户可自定义的渠道。用户界面将通知渠转载 2017-11-16 16:07:43 · 2898 阅读 · 0 评论 -
androidStudio 导工程
导工程后,ctrl + 点击资源文件不能跳转到 资源文件Frameworks detected: Android framework is detected in the project 配置即可。原创 2017-10-26 09:57:07 · 377 阅读 · 0 评论 -
Android开发进阶知识图谱
整理了一下个人认为Android高级开发进阶所需要掌握的知识点,以供以后查漏补缺,不断完善。Android系统源码学习Binder机制和AIDLActivity的启动过程进程的优先级ServiceManagerWindow和WindowManager开源框架学习OKHTTPRetrofitGlideGsonRealm多线程处理Handler原转载 2017-09-02 09:03:07 · 912 阅读 · 0 评论 -
探究android:largeHeap
在日常的Android开发中,我们必然遇到过OutOfMemoryError这样的崩溃,产生的原因无外乎两点,一是内存过小不够用,二是程序设计有误,导致不能释放内存,其中后者情况较多。在解决这个问题时,我们亦或多或少听到android:largeHeap,然而这个概念又是什么呢,它该如何使用,存在哪些问题呢。本文讲比较全面介绍Android中的largeHeap帮助各位全面深入了解这个概念。磨刀不...转载 2018-05-10 10:14:18 · 425 阅读 · 0 评论 -
加密算法
RSA算法是现今使用最广泛的公钥密码算法,也是号称地球上最安全的加密算法。在了解RSA算法之前,先熟悉下几个术语 根据密钥的使用方法,可以将密码分为对称密码和公钥密码 对称密码:加密和解密使用同一种密钥的方式 公钥密码:加密和解密使用不同的密码的方式,因此公钥密码通常也称为非对称密码。RSA的加密过程可以使用一个通式来表达密文=明文EmodN密文=明文EmodN也就是说RSA加密是对明文的E次方后...转载 2018-05-05 10:38:13 · 339 阅读 · 0 评论 -
Android 配置环境变量 win7
首先你已经成功安装Android的SDK。第一步根据图示找到环境变量窗口 第二步 看到如下图所示窗口然后单击用户变量处新建按钮,可以用绝对路径和相对路径设置两种方式先介绍相对路径设置,不废话上图,变量名:ANDROID_SDK_HOME,变量值是android-SDK-windows的路径下面我们新建一个Path变量,变量值方框里输入.;%ANDROID_S转载 2013-09-03 10:33:33 · 579 阅读 · 0 评论 -
git的冲突解决–git rebase之abort、continue、skip
(1)应用实例描述假设在github或者gitoschina上建立了一个项目,默认分支为master分支,远程master分支上c.sh文件内容:开发者A、B分别将项目拷贝到自己本地进行开发某一天,开发者B提交c.sh,并且提交成功,之后,开发者A在本地代码并没有和远程master分支的代码同步的情况下,对本地的c.sh进行了修改,修改后c.sh内容如下:修改后,开发者A...翻译 2019-08-29 09:51:54 · 13895 阅读 · 0 评论 -
Mat 用法
MATMAT工具全称为Memory Analyzer Tool,一款详细分析Java堆内存的工具,该工具非常强大,为了使用该工具,我们需要hprof文件.HPROF文件存储的是特定时间点,java进程的内存快照。有不同的格式来存储这些数据,总的来说包含了快照被触发时java对象和类在heap中的情况。由于快照只是一瞬间的事情,所以heap dump中无法包含一个对象在何时、何地(哪个方...转载 2019-06-24 21:12:47 · 1781 阅读 · 0 评论 -
Android辅助功能---全局手势放大
在Android的辅助功能中,存在一个点击三次屏幕触发屏幕放大功能。辅助功能中打开放大后效果这个功能的使用频率实在是低...但是为什么会想记录一下这个功能的实现原理。第一,在处理性能问题的时候遇到了相关代码;其次其实现的原理还是具有部分启发性质的。主要还是研究启发部分:1、如何实现手势拦截2、全局放大的原理(主要在system_server中存在双编舞者协作...转载 2018-11-27 22:03:38 · 1909 阅读 · 2 评论 -
Android辅助功能
1、前言Android的辅助功能是个比较老的API(since API 4),但是该API真正的开始发展还是在API 16~19(很多常用的方法参数都是在这几个版本逐渐加入以及完善的)版本中。辅助功能我们最常见的是在类似深度休眠,抢红包中使用,模拟点击屏幕view。此次写关于辅助功能的分享是因为在API 24、 API 26中,又增添了几个类以及几个接口。本文首先介绍关...转载 2018-11-27 21:57:44 · 2234 阅读 · 0 评论 -
快速敲log
1.设置静态常量TAG输入“logt”,然后单击回车,自动生成静态常量TAG2.输入对应的logx语句,生成相对应的log语句具体实现看下面代码:public class MainActivity extends AppCompatActivity { //1.输入“logt”,设置静态常量TAG private static final String TAG =...转载 2018-09-27 14:44:03 · 367 阅读 · 0 评论 -
双屏 截图 方案
int displayId = DisplayUtils.getInstance(mContext).getFocusedDisplayIdByReflect();IBinder displayToken = SurfaceControl.getBuiltInDisplay(DisplayUtils.getInstance(mContext).getPhysicalId(displayId))...原创 2018-09-17 16:04:36 · 2654 阅读 · 0 评论 -
申请最新的原生android beta版本
在手机端和网页端登录google账号https://www.google.com/android/beta网页上会显示你满足条件的设备,选择加入手机上检测更新,即可原创 2018-06-01 18:45:39 · 2181 阅读 · 0 评论 -
Android 属性动画:这是一篇很详细的 属性动画 总结&攻略
前言动画的使用 是 Android 开发中常用的知识本文将详细介绍 Android 动画中 属性动画的原理 & 使用动画类型关于Android动画的系列文章动画的使用,请参考文章:Android 属性动画:这是一篇很详细的 属性动画 总结&攻略Android 动画:手把手教你使用 补间动画Android 逐帧动画:关于 逐帧动画 的使用都在这里了!Android 动画:你真的会使用...转载 2018-05-29 09:30:13 · 493 阅读 · 0 评论 -
Android安全开发之Provider组件安全
1 Content Provider组件简介 ContentProvider组件是Android应用的重要组件之一,管理对数据的访问,主要用于不同的应用程序之间实现数据共享的功能。Content Provider的数据源不止包括SQLite数据库,还可以是文件数据。通过将数据储存层和应用层分离,Content Provider为各种数据源提供了一个通用的接口。 创建一个自己的Content...转载 2018-05-08 15:24:13 · 1309 阅读 · 0 评论 -
Android中Fragment子类及其PreferenceFragment的创建过程演示
Android中Fragment子类及其PreferenceFragment的创建过程演示这篇文章主要介绍了Android中Fragment子类及其PreferenceFragment的创建过程演示,PreferenceFragment用来保存Fragment的选项设置,需要的朋友可以参考下Fragment创建方式Fragment有两种使转载 2017-09-14 21:38:10 · 544 阅读 · 0 评论 -
Android图文混排实现方式详解
前言场景实现方式drawable属性Spannable使用HTML显示总结0前言在使用TextView的时候,我们经常需要在TextView中进行图文混排,比如在QQ中聊天的消息中的表情,底部tab图标等。1场景2实转载 2017-09-04 22:21:17 · 983 阅读 · 0 评论 -
bidi(双向文字)与RTL布局总结
bidi(双向文字)与RTL布局总结 BIDI 双向文字就是一个字符串中包含了两种文字,既包含从左到右的文字又包含从右到左的文字。 大多数文字都是从左到右的书写习惯,比如拉丁文字(英文字母)和汉字,少数文字是从右到左的书写方式比如阿拉伯文(ar)跟希伯来文(he)。对于需要国际化支持的web应用来说,由于阅读习惯的不同在web页面排版和布局中会给开发人员带来麻烦。转载 2017-08-16 16:18:11 · 838 阅读 · 0 评论 -
Android N App分屏模式完全解析
转载地址:http://unclechen.github.io/2016/03/12/Android-N-App%E5%88%86%E5%B1%8F%E6%A8%A1%E5%BC%8F%E5%AE%8C%E5%85%A8%E8%A7%A3%E6%9E%90-%E4%B8%8A%E7%AF%87/Android N App分屏模式完全解析(上)12 Mar 2转载 2016-10-08 09:44:50 · 4554 阅读 · 0 评论 -
Zygote进程启动流程
Zygote进程启动流程大家都知道Android系统的Zygote进程是所有的android进程的父进程,包括SystemServer和各种应用进程都是通过Zygote进程fork出来的。转载 2016-10-20 10:16:22 · 304 阅读 · 0 评论