
android
文章平均质量分 86
qq_773961852
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android实时监测USB状态、QT实时监测USB状态
主要是通过系统发广播来获取USB连接的状态,代码很简单package com.test.socket.usb;import android.app.Activity;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.hardware.usb.UsbDevice;import android.hardware.u原创 2020-10-28 19:26:41 · 1601 阅读 · 0 评论 -
Android View绘制原理解析
概述本篇文章主要讲述View是如何在Android源码中产生的,以便于我们能够更好的去自定义一些控件,大体上是按照View绘制的流程来走步骤,在追踪源码之前我们先了解几个基础知识。来看下面的这张图:一张典型的系统View分解图,一个Activity对应一个PhoneWindow、一个DecorView,DecorView是应用窗口的根部局,其本质是一个FrameLayout,有唯一的一个子V...原创 2018-10-26 12:11:22 · 2693 阅读 · 1 评论 -
基于Binder机制之AIDL原理分析
上一篇完成了两个项目间的AIDL跨进程通讯demo(这个demo是两个应用之间的通讯,如果是一个项目之间的通讯就更简单了,反正就三要素:沟通C-S的桥梁——AIDL文件,客户端,服务端都放到一个项目就行了),没有分析任何原理,下面来分析AIDL是如何进行跨进程通讯的:在进行AIDL原理分析之前,先回忆一下Android跨进程通讯总共有几种方式:文件AIDL(基于Binder)Messen...原创 2018-11-06 18:02:37 · 512 阅读 · 0 评论 -
跨进程通讯之AIDL-----不同应用程序之间跨进程
AIDL,通俗来说就是两个Android应用要进行通信,且不能通过网络云服务器的方式进行数据交互,只能调用本地函数库的机制来实现,这时Android系统提供AIDL的机制来实现Android的跨进程通讯(用户进程之间是相对封闭的,无法直接访问数据)。我们先不管任何原理,把demo跑出来再说其他的:准备材料:一个Service、一个Client、连接S—C的桥梁(AIDL文件)第一步: 连接...原创 2018-11-05 18:09:58 · 679 阅读 · 0 评论 -
随手记
1、自定义View,onMeasure(int widthMeasureSpec,int heightMeasureSpec),这个参数是从根布局DecorView一路传递给子View的父容器对子View的期望(约束值),如果自定义控件想要像系统控件(TextView、Button)一样在任何weight、height中都能自动适配,不用开发者特殊处理的话,在此处取出widthMeasureSpe...原创 2018-11-16 15:57:20 · 313 阅读 · 0 评论 -
扫描更新媒体库---因插入、删除等等原因需要更新系统图库
做一个功能,遇到了当前的问题:调用系统相机拍照,不能在系统的图库中产生图片,1、指定图片data数据存储位置,`File file = new File(Environment.getExternalStorageDirectory(), "/water/conservation/" + System.currentTimeMillis()); if (!file.getPar...原创 2019-02-21 14:48:21 · 726 阅读 · 0 评论 -
多线程学习-----从经典模式之生产者消费者模式入手
生产者消费者模式是一个经典的多线程模式,要搞懂线程的同步异步, 生产者消费者模式出发是一个很好的学习模式,但是这个模式是面向过程开发的软件模式, 它并不是面向对象的JAVA方式...原创 2019-02-25 14:30:21 · 343 阅读 · 0 评论 -
Android studio 入门级搭建 OpenCV
要在Android Studio上搭建OpenCV,1、首先我们要去官网下载OpenCV的SDK源码:OpenCV官网地址2、点击releases选项卡,我们可以任何选择自己想要的version,当然因为这里使用的是Android端,所以选择Android的SDK进行下载3、下载好以后,解压这个包,这里主要用到的是sdk包中的java和native包4、从AS中导入module,导入的是j...原创 2019-03-20 11:17:00 · 644 阅读 · 1 评论 -
关于Serializable和Parcelable的一点浅析
第一个问题,Serializable和Parcelable是什么?  Serializable和Parcelable都是实现序列化/反序列化操作的名称,那么什么是序列化操作?从功用来说,当我们编写代码时会有这样一个需求,一个对象从Activity_A跳转到Activity_B时,需要传递一个obj类型的数据,而计算机基础告诉我们,在计算机中任何数据都是以二进制来传递的...原创 2019-05-13 09:29:27 · 199 阅读 · 0 评论 -
apk安全的一点思考
从普通开发环境来说,思考apk的安全性有以下几点1、防止二次打包: 由于android打包过程中系统只要求自签名,不强制要求第三方权威机构签名认证,所以很容易通过解析apk包,修改或者是删除其中存储签名信息的META-INF文件来进行重新签名打包,解决方案 在系统安装apk时拿到正确的签名文件,与当前签名文件做对比,是与否进行不同操作2、防止反编译:GitHub上有很多开源反编译工具...原创 2019-05-13 16:11:53 · 336 阅读 · 0 评论 -
自定义view---抽屉控件的制作
前两天有人留言问购物车模块有个需求是侧滑删除应该这么做,类似QQ消息侧滑删除,借此总结一下实现逻辑,事实上诸如动画平移的这种view位置移动效果有两种解决方案:view控件自身的移动ViewGroup移动内容,注意是移动ViewGroup的内容,而不是自身的移动对于view控件自身的移动这很好理解,View动画、属性动画就好,而ViewGroup去移动其内容,实质上是就像ScrollVi...原创 2019-06-05 17:10:16 · 522 阅读 · 0 评论 -
view动画的实现流程原理
之前去百度面试,被问到一些问题,补间动画的实现原理,属性动画的实现原理,两者的区别,为什么源码设计者要将补间动画设计成只改变位置而不改其真实属性值,这些问题如果不看源码根本无法回答,今天有时间来记录一下充实充实自己。我们来整理一下有关view动画的一下问题: ①:调用view.startAnimation()后,动画是立即执行吗? ②:假如动画持续时间 300ms,当调用了 View.star...原创 2019-06-06 17:44:06 · 1231 阅读 · 1 评论 -
属性动画实现流程原理
哈原创 2019-06-10 09:42:06 · 1531 阅读 · 0 评论 -
launcher启动Activity与应用内启动Activity
这篇文章的作用是分析launcher点击APP图标做了哪些操作?首先,提出几个问题?ActivityThread是什么,是不是线程,如何启动?ActivityClientRecord和ActivityRecord是什么?Context,ContextImpl,ContextWapper是什么?Instrumentation是什么?Application是什么,什么时候创建的,每个应用...原创 2018-09-19 11:35:38 · 1741 阅读 · 0 评论 -
handler机制
我们在面试的时候老是被问,谈谈你对多线程的理解,Handler机制知道吗,有看过源码吗?虽然我这样的学渣在心中默默说了很多。。。但是既然大佬们有求,我们不能拒绝,就乖乖理解学会它完成任务吧!!!有关多线程的理解,可以跳到这里去看看多线程的来龙去脉,下面开始从头开始聊Handler。 首先...原创 2018-09-05 21:50:45 · 246 阅读 · 0 评论 -
AS小技巧
android studio 关联源码 https://www.jianshu.com/p/55431d8c58cc原创 2018-09-05 16:10:25 · 202 阅读 · 0 评论 -
Android事件分发机制
首先我们应当心中有数,学习Android事件分发机制到底应该抓住哪些步骤?Android事件分发流程如下:(必须熟记) Android事件分发顺序:Activity(Window) -> ViewGroup -> View然后我们来看看事件分发的整体流程图其中:super 调用父类函数true 消费该事件,不再往下传递f...原创 2017-12-21 14:55:50 · 518 阅读 · 0 评论 -
Android实现电商购物车模块
前言:先上一张效果图我们分析分析由上图可知,一个功能完备的购物车至少要包括:店铺,店铺满减活动,店铺满减信息,商品,满多少免配送费,页面商品全选,同一店铺商品全选(包括反选),选中合计金额,总额,删除购物车商品,结算调起支付页面,实时修改商品数量 首先我们去实现界面,按照上图所示,可以清晰的看到稍微繁琐的就是商品列表,其他控件完全就是系统控件,这里提一点复选框CheckBox,Check...原创 2018-01-29 17:35:30 · 12867 阅读 · 7 评论 -
Android面试准备
什么是队列,集合是数组,本质是怎么实现的,hashmap的数据结构,与实现原理,二叉树(前序遍历,中序遍历,后序遍历,层序遍历),以及各种链表(什么邻接表,邻接多重表,十字链表) 懂点数据结构,设计模式和开源框架的源码,还是比较好找的 什么是队列,集合是数组,本质是怎么实现的,hashmap的数据结构,与实现原理,二叉树(前序遍历,中序遍历,后序遍历,层序遍历),以及各种链表...原创 2018-03-05 17:34:29 · 393 阅读 · 0 评论 -
Android绘制文本基本概念之- top, bottom, ascent, descent, baseline
Android绘制文本基本概念之- top, bottom, ascent, descent, baseline转载 2018-04-08 16:14:20 · 300 阅读 · 0 评论 -
日期选择器控件详解
先看一个效果图:1、2、 首先我们来分析一下,这个自定义控件是由几部分组成的?最直观的来说就是上下结构,上边一个TextView用来显示用户选择好的日期,下边是滚轮形式的年、月、日三纵列结构,其中最中间的年月日是默认选择的日期用一个矩形来表示,结构大概就是这样,那么很显然我们在自定义这个viewGroup的时候也是按照这个结构划分来实现 所以我们应该将年月日分成三部分来做,然后拼成一个...原创 2018-04-08 18:14:03 · 1590 阅读 · 1 评论 -
MPchart使用详解及详细属性(一)
MPchart使用详解及详细属性(一)转载 2018-04-09 14:53:50 · 1168 阅读 · 0 评论 -
微信支付宝支付调用SDK
使用第三方进行支付,微信支付宝的支付、微信支付的流程:①用户打开电商Android客户端下单,前端发送商品信息给后台,后台生成订单号②后台调用统一下单API,微信支付系统生成预付单,将预付单信息(prepay_id)返回给后台,后台生成带签名的支付信息(签名后的订单信息:应用iD、商户号、预支付交易会话iD、扩展字段微信官网定死的,没什么用、10位的时间戳、签名),返回给Android前端③支付信...原创 2018-05-02 10:24:40 · 1173 阅读 · 0 评论 -
Android多线程面试---谈谈你对多线程的理解+handle机制
要谈线程,就不得不引出进程的概念,在Android中一个应用程序就是一个单独的进程,一般来说,当我们运行一个应用,系统就会自动创建一个进程,并且为这个进程创建一个主线程--UI线程,这样就可以运行MainActivity,应用程序的组件默认都是运行在这个进程中,当然我们可以指定Android四大组件的运行进程,在清单文件中对应的组件通过设置属性---android:process来使组件运行在不同...原创 2018-05-16 11:46:02 · 868 阅读 · 0 评论 -
com.android.support版本冲突的解决办法
强制使用当前项目module的依赖包,舍弃乱七八糟的第三方依赖,在项目层级app层的build.gradle(最外层添加就好)中添加如下代码: configurations.all { resolutionStrategy.eachDependency { DependencyResolveDetails details -> def requested...原创 2018-06-11 10:42:33 · 4858 阅读 · 1 评论 -
Android监听APP前后台转换的两种方式
应用场景:很多时候我们需要去监听用户有没有将APPs放置在后台,比如常用的银行类APP、音视频播放类APP,那么这些APP为什么要去监听应用程序在不在前台?银行当然是为了安全,必须保证一些数据的传输一定是在前台,音视频播放APP呢,是为了更好的用户体验,用户按下home键切换到其他页面,期望是想让正在播放的电影暂停下来,而不是看不到视频页面而APP还在不停的播放,鉴于此种目的,我们需要做监听APP...原创 2018-07-02 00:32:39 · 2124 阅读 · 0 评论 -
sharedPreferences存储实现原理
有几个问题,关于SharedPreference存储(1)每次调用getSharedPreferences时都会创建一个SharedPreferences对象吗?这个对象具体是哪个类对象? 答:不是,只要name相同,就会返回同一个,SharedPreferencesImpl对象,packagePrefs存放文件name与SharedPreferencesImpl键值对,sSha...原创 2018-08-14 17:25:48 · 2959 阅读 · 0 评论 -
Glide实现原理
了解以及使用Glide最直观明显的就是这一句代码:Glide.with(this).load(URL).into(控件的实例),只要我们弄明白这条链式调用的代码都做了什么准备工作,Glide图片加载的大概框架也就清晰了,Glide.with(this).load(URL).into(mTexView);到底是如何实现将一张网络图片加载展示到ImageView上的?这里我们梳理一下Glid...原创 2018-08-08 17:32:22 · 6720 阅读 · 0 评论 -
一个APP启动另外一个APP
app_1 中 在清单文件里设置要跳转的activity 属性 <intent-filter> <action android:name="com.test.androidtasktest.ACTION_MY"/> <category android:name="android.intent.category.DEFAULT"/> &...原创 2018-08-16 14:15:49 · 294 阅读 · 0 评论 -
关于MVP
总体来说MVP就是通过一大堆接口回调拆分理清业务逻辑,从逻辑思维上达到简化代码项目的需求。M----代表Model:对应于JavaBean,处理的是业务逻辑和实体模型V-----代表View:对应于Activity,处理View的绘制和用户交互的操作P-----代表presenter:这是新加的一个中间层,负责完成view和Model的交互MVP的业务流程是,view与presen...原创 2018-08-22 16:42:33 · 166 阅读 · 0 评论 -
Android四大组件知识整理
1、Activity1.1 当系统回收Activity,应当怎么保存Activity状态? 在onSaveInstance()方法中保存Activity状态,当重新创建该实例的时候,在onCreate()方法中判断saveInstance是否为空,不为空则恢复Activity的状态...原创 2018-08-22 23:23:04 · 223 阅读 · 0 评论 -
自定义view(画一个LOL能力图表)
在介绍下列的自定义图表的时候,我们先说明一下绘图的三大要素,canvas 翻译叫画布,paint叫画笔,Path对象叫路径,一、canvas属性: ①:canvas画布本身是有一个坐标系的,它决定了view在Windows层的什么位置,其坐标原点在Windows层的左上角,不同于我们代数几何学中的笛卡尔坐标系,Windows层的向右向下移动是累加正数的也就是收,以屏幕左上角为原点原创 2018-01-10 14:43:45 · 1881 阅读 · 0 评论