![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android学习笔记
文章平均质量分 80
snail201211
这个作者很懒,什么都没留下…
展开
-
dpi 、 dip 、分辨率、屏幕尺寸、px、density 关系以及换算
转载:https://www.cnblogs.com/yaozhongxiao/archive/2014/07/14/3842908.html一、基本概念dip : Densityindependent pixels ,设备无关像素。 dp :就是dip px : 像素 dpi :dots per inch , 直接来说就是一英寸多少个像素点。常见取值 120,160,240。我一般称作像素密度,简称密度 density: 直接...转载 2020-07-07 11:20:36 · 13334 阅读 · 0 评论 -
Mac笔记本Android开发配置:
Mac笔记本Android开发配置:1.Android studio配置篇1.1皮肤配置 Android studio - > preferences - > plugins 联网搜索:Material Theme UI主题安装插件应用 修改皮肤色:Appearance & Beha...原创 2019-12-26 12:06:02 · 579 阅读 · 0 评论 -
通知报错
https://stackoverflow.com/questions/25317659/how-to-fix-android-app-remoteserviceexception-bad-notification-posted-from-pacIn my app, this kind of bug happens only during upgrading. If the resour...原创 2019-12-16 20:24:46 · 213 阅读 · 0 评论 -
Android 自定义attr Style styleable以及其应用,应用界面主题Theme使用方法
Android 自定义attr Style styleable以及其应用,应用界面主题Theme使用方法http://www.jianshu.com/p/61b79e7f88fc相信每一位从事Android开发的猿都遇到过需要自己去自定义View的需求,如果想通过xml指定一些我们自己需要的参数,就需要自己声明一个styleable,并在里面自己定义一些attr属性,这个过程相信大家...转载 2019-04-12 11:07:10 · 408 阅读 · 0 评论 -
Android.mk的用法和基础
部分是参考别人借鉴,便于自己查看学习。一个Android.mk file用来向编译系统描述你的源代码。具体来说:该文件是GNU Makefile的一小部分,会被编译系统解析一次或多次。你可以在每一个Android.mk file中定义一个或多个模块,你也可以在几个模块中使用同一个源代码文件。编译系统为你处理许多细节问题。例如,你不需要在你的Android.mk中 列出头文件和依赖文件。NDK编...原创 2019-04-12 10:52:21 · 355 阅读 · 0 评论 -
SharedPreference apply 引起的 ANR 问题
转发:作者:字节跳动技术团队链接:https://www.jianshu.com/p/9ae0f6842689来源:简书简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。项目中 ANR 率居高不下,从统计上来看排在前面的有几个都是 SharedPreference(以下简称 SP)引起的。接下来我们抽丝剥茧的来分析其产生原因及如何解决。crash 堆栈信息如...转载 2019-05-21 19:48:08 · 2743 阅读 · 0 评论 -
Android Apk反编译
apkTool:https://ibotpeaches.github.io/Apktool/操作步骤: WIN7下载附件apktool压缩包,解压得到apktool文件夹,里面包含apktool.bat和apktool.jar 启动Window命令行窗口,进入到apktool文件夹 执行如下命令:apktool>apktool d ../apk/es.apk 这里es.apk...原创 2019-04-10 16:55:01 · 323 阅读 · 0 评论 -
关于通知是否显示角标
应用发通知时,可以设置是否显示徽章:设置接口:channel.setShowBadge(true); 修改为false既不显示。411 private void createNotificationChannel() {412 Log.d(TAG, "createNotificationChannel");413 if (mNotification...原创 2019-01-03 10:20:52 · 2217 阅读 · 0 评论 -
Android9.0平台SystemUI通知显示流程
根据如上流程,如果需要对通知栏和下拉通知某包名的进行屏蔽,可以在数据地方做考虑,即NotificationData中的filterAndsort中,对不需要的包名跳过即可。...原创 2018-12-21 18:38:21 · 5461 阅读 · 1 评论 -
Aspect Oriented Programming in Android
Aspect Oriented Programming in Android转载:https://fernandocejas.com/2014/08/03/aspect-oriented-programming-in-android/03 Aug 2014Aspect-oriented programming entails breaking down prog转载 2017-09-28 13:32:43 · 274 阅读 · 0 评论 -
如何自定义绘制View
关于自定义View时代使用样式,风格,大小的资源定义不再介绍,这里注重介绍如何在onDraw(Canvas canvas)方法中去绘制所需要的VIew。主要体现在 Paint 、Canvas对象的使用:下面主要呈现一个类似手表的View的绘制:自定义View如下:package view;import com.example.testtone.M原创 2017-09-26 16:26:34 · 212 阅读 · 0 评论 -
获取缩略图
本文主要讲解说明图片和apk安装文件获取缩略图的实现方式1. 图片获取缩略图 思想: 主要根据BitmapFactory类为基础实现; 主要涉及到了 BitmapFactory.Options类对象及 BitmapFactory.decodeFile(String, Options)方法Options类用到的主要成员:1. publ原创 2017-08-02 09:19:31 · 1111 阅读 · 0 评论 -
android 8.0 新建文件管理类
谷歌在android8.0开始,新增加了sprdroido_pdk/frameworks/base/core/java/com/android/internal/content/FileSystemProvider.java/* * Copyright (C) 2017 The Android Open Source Project * * Licensed und原创 2017-07-20 14:12:02 · 1191 阅读 · 0 评论 -
android应用如何有效获取管理存储
注: 作者原创,转载请标明出处。谷歌原生没有提供有效的获取内部存储、SD卡、OTG设备文件区分,那么,怎样有效获取?一般情况:1. 通过反射调用:StorageManager.getVolumeList();2. 通过调用得到StorageVolume 列表,但是我们不能有效的区分哪一个是sd,otg,内部存储,怎么办?一般内部存储的原创 2017-06-28 15:31:32 · 717 阅读 · 0 评论 -
android 如何通过反射多层调用
public static final String ROOT_PATH = "/storage/emulated"; public final static String PHONE_STORAGE_PATH = "/storage/emulated/0"; public final static String SDCARD_STORAGE_PATH = "/原创 2017-05-22 19:49:32 · 1380 阅读 · 0 评论 -
Android O 行为变更
Android O 行为变更本文内容针对所有 API 级别的应用后台执行限制Android 后台位置限制蓝牙输入和导航无障碍功能安全性隐私性网络连接和 HTTP(S) 连接记录未捕获的异常集合的处理语言区域和国际化联系人提供程序使用情况统计方法的变更应用快捷键提醒窗口企业中的 Android针对 Android O 的应用后台执行原创 2017-05-03 15:48:46 · 360 阅读 · 0 评论 -
androidN 打印cts测试fail问题分析
第一部分 打印cts测试fail问题[CTS][7.0r3][GMS][共有]进行CTS测试,CtsPrintTestCases—android.print.cts.PrintJobTest#testStateTransitions—faigitclone gitadmin@gitsrv0原创 2017-05-03 15:36:18 · 3337 阅读 · 2 评论 -
android应用icon动态更换
1. 动态更换应用Icon原理 1 ---activity-alias在AndroidManifest.xml 中,有两个属性: // 决定应用程序最新启动的activity // 决定应用程序是否显示在程序列表原创 2017-05-03 15:30:09 · 449 阅读 · 0 评论 -
android Fresco框架使用与介绍(图片加载组件)
关于此框架的使用介绍网站:https://www.fresco-cn.org/https://www.fresco-cn.org/docs/using-other-network-layers.html优点:十分强大,使用起来非常流畅,内存管理不用愁,不用担心OOM。带加载时淡入效果,开发起来不费劲.图片加载时可在布局中直接设置加载动画等原创 2017-04-01 16:44:07 · 341 阅读 · 0 评论 -
SurfaceView的使用方法
1. 首先获取 SurfaceCiew对象: final SurfaceView surface = (SurfaceView)findViewById(R.id.show);2. 通过surface对象 获取 SurfaceHolder对象: holder = surface.getHolder();3. 一旦有了 surface和holder对象,原创 2016-09-01 19:39:19 · 310 阅读 · 0 评论 -
谷歌原生DocumentUI文件浏览的原理
相信多数想了解谷歌DocumentUI设计思想的码农都会遇到障碍,文件浏览究竟是怎么实现的,进入DocumentUI的UI层,不难发现,我们是通过查询数据库获取cursor,但是查询的哪个数据库,怎么能够查询数据库就可以把文件层级一级级浏览呢?带着这些疑问,本地通过SourceInsight工具查找了所有的ContentProvider,谷歌原生有一个抽象类DocumentsProvider。原创 2017-09-14 14:25:53 · 7464 阅读 · 0 评论 -
AndroidO 平台JNI机制的学习
第一章 JNI的含义JNI全称Java Native Interface,意指Java本地调用。JNI是一种技术,通过JNI我们可以做到如下两点:(1) Java程序中的函数可以调用到Native语言编写的函数。Java-- >c/c++(2) Native程序中的函数也可反向调用Java层的函数。c/c++ -- > Java在Android平台,JNI是上层Jav原创 2017-12-15 09:12:06 · 1039 阅读 · 0 评论 -
8.1 平台Activity启动流程
8.1 平台Activity启动流程该堆栈分为两部分:(1) launcher 点击启动App(2) App中启动其他Activity第一部分: Launcer 启动Activity1.1 执行顺序 Activity.startActivityForResult() -- > Instrumentation.execStartActivity() -- > ActivityManage...原创 2018-02-13 15:59:35 · 2155 阅读 · 0 评论 -
关于Android原生View默认焦点高亮的问题
例如:在8.1 Launcher3界面,连接蓝牙鼠标,点击Folder或者进入Allapss界面,会发现个别应用或者Folder会有背景高亮显示分析:通过本地对Launche3的代码布局进行check,并没有设置任何背景,因此,初步怀疑为谷歌原生View中在某种状态下设置了什么东东,以至于在满足某种情形下,如鼠标悬停,会有个别View背景高亮显示。下一步对谷歌原生View.java进行...原创 2018-12-13 17:22:07 · 4965 阅读 · 0 评论 -
Android View 的文档注释说明
frameworks/base/core/java/android/view/View.javaThis class represents the basic building block for user interface components. A View occupies a rectangular area on the screen and is responsible for ...原创 2018-11-23 13:01:49 · 460 阅读 · 0 评论 -
androidO 行为变更输入和导航
输入和导航随着 Android 应用出现在 Chrome 操作系统和平板电脑等其他大尺寸设备上,我们看到,用户在 Android 应用中又重新开始使用键盘导航。在 Android O 中,我们又再次使用键盘作为导航输入设备,从而为基于箭头键和 Tab 键的导航构建了一种更可靠并且可预测的模型。尤其要指出的是,我们对元素焦点行为做出以下变更: 现在,如果您没有为 View对象(前景或背...原创 2018-11-21 16:25:30 · 284 阅读 · 0 评论 -
关于launcher3中view的坐标计算含义
/** * Given a coordinate relative to the descendant, find the coordinate in a parent view's * coordinates. * * @param descendant The descendant to which the passed coordinate is relative. * @par...原创 2018-10-12 19:53:03 · 267 阅读 · 0 评论 -
Activity设置为不随系统语言变化重新onCreate,如何更新该Activity字符串显示
如果当切换系统语言后,需要更新界面的某些字符串资源显示,可以参考如下两种方法:首先可以监听切语言变化的通知,可以使用广播或者监听配置变化注册广播:<action android:name="android.intent.action.LOCALE_CHANGED" />Activity中覆写:public void onConfigurationChanged(Co...原创 2018-07-26 13:56:11 · 1875 阅读 · 0 评论 -
AndroidP 限制访问Hidden API 相关信息
Android9.0开始,谷歌启用限制非SDK API的访问,包括hide方法和类,以及通过反射机制访问等。这些变更行为提交可参考:https://android-review.googlesource.com/q/owner:dbrazdil%2540google.comEmail: dbrazdil@google.comJoined: Nov 25, 2014 关于设置模块可以访问 hide方...原创 2018-05-31 18:24:34 · 1420 阅读 · 0 评论 -
Android view自定义实例- 使用进度百分比圆形View
View的绘制流程:onMeasure() // 一般进行计算测量视图宽和高等onLayout() // 进行布局,分别size和位置给视图onDraw() // 绘制视图view我们经常遇到应用中需要显示一个进度比或使用情况占比的圆形视图,中间显示内容和进度比。实现思路:自定义一个View,使用两个Paint 画笔分别用来画圆形视图的背景和使用进度;再使用两个TextPaint...原创 2018-06-12 15:04:17 · 322 阅读 · 0 评论 -
Java File 遍历、删除、复制功能实现
import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;public class TestFile { /** * @param args */ public static void main(String[] args) { // TODO Auto-gene...原创 2018-04-27 15:14:41 · 444 阅读 · 0 评论 -
关于monkey测试通过不同入口Intent启动app引起的anr分析
问题的根本原因是monkey测试时,com.android.quicksearchbox 应用查找FileExplorer应用并启动FileExploreActivity,创建对应的 task root activity,后续在发生问题期间并未有该token的activity finish及task id 被remove行为;在这个期间monkey测试大量启动了uid 0的FileExploreA...原创 2018-03-26 16:42:21 · 1064 阅读 · 1 评论 -
View事件分发流程
App应用界面结构:1. 关于Activity的事件分发开始dispatchTouchEvent:dispatchTouchEvent: Activity - > PhoneWindow -> DecorView(继承FrameLayout(ViewGroup)) DecorView.superDispatchTouchEvent() 调用父类super.dispatch...原创 2018-03-31 18:36:52 · 180 阅读 · 0 评论 -
权限检查申请小框架
Android应用程序为了用户的安全,引入相关的权限机制,如何在应用中有效检查权限,而不需要每个地方都重复性的进行检查、请求、回调的编码呢?思路:应用中A activity进行权限检查,无权限启动一个专门的权限activity,申请权限,完成后,再启动原A activity.1. 自定义基类 RequestPermissionsActivityBase/* * Copyright (C) 201...原创 2018-03-30 08:58:29 · 245 阅读 · 0 评论 -
android之SurfaceView和SurfaceHolder用法
SurfaceView是视图(View)的继承类, SurfaceView控制这个Surface的绘制位置。surface是纵深排序(Z-ordered)的,这表明它总在自己所在窗口的后面。surfaceview提供了一个可见区域,surface的排版显示收到视图层级关系的影响,它的兄弟视图节点会在顶端显示。注意,如果surface上面有透明控件,那么它的每次变化都会引起框架重新计算它和顶转载 2016-09-01 19:12:51 · 558 阅读 · 0 评论