自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

幸福的小金火

愿与你一同成长

  • 博客(107)
  • 资源 (7)
  • 收藏
  • 关注

原创 android motionevent事件分发 复习

decorview的dispatch事件发给acvitity,activity回到到decorview中,viewgroup1.requestDisallowInterceptTouchEvent 设置mGroupFlags&FLAG_DISALLOW_INTERCEPT的值2. private TouchTarget mFirstTouchTarget;dispatchTouchEvent{ if(action_down){ 清除mG...

2020-07-10 20:41:22 203

原创 bitmap转透明

/ 获得图片的ARGB值。

2023-12-14 11:54:02 150

转载 面向对象程序设计(OOP)的三大基本特征(定义、特性、优缺点、java中的表现形式及应用)和五大基本原则

一、面向对象程序设计(OOP)的三大基本特征(定义、特性、优缺点、java中的表现形式、应用)1.封装封装的定义​ 通俗的说:普通人对计算机进行应用操作,只需知道如何在计算机上连网,如何浏览网页,下载东西等。不需要知道网络的具体底层搭建,计算机的基本结构组成(这些可以看作被封装)。​ 对于编程来说:将对象的属性(状态)和方法(行为)封装成一个类。而这个类可以有很多对象。举例:人这个类(class),可以有很多不同的人(每个人即为每个对象),而人都有相同的属性描述词(身高,体重),也有相同的行为描述

2022-02-21 14:24:10 4232

原创 Android序列化 Serializable Parcelable

序列化定义:将一个类对象转换成可存储、可传输状态的过程。序列化有两个过程:1、序列化:将对象编码成字节流(serializing)2、反序列化:从字节流编码中重新构建对象(deserializing)。对象序列化后,可以在进程内/进程间、网络间进行传输,也可以做本地持久化存储。为什么要序列化: 系统底层并不认识对象,数据传输是以字节序列形式传递,以进程间通信为例,需要将对象转化为字节序列(字节序列中包括该对象的类型,成员信息等),然后在目标进程里通过反序列化字节序列,将字节序列转换成对象。序列

2021-04-13 18:39:38 206

转载 mvvm理解

原文https://tech.meituan.com/2016/11/11/android-mvvm.htmlMVCView:XML布局文件。Model:实体模型(数据的获取、存储、数据状态变化)。Controller:对应于Activity,处理数据、业务和UI。MVP**View: **对应于Activity和XML,负责View的绘制以及与用户的交互。 **Model: **依然是实体模型。 **Presenter: **负责完成View与Model间的交互和业务逻辑。...

2021-04-13 18:27:17 189

原创 android 7.1 toast crash问题 BadTokenException,和解决方式

具体问题可以查看https://www.jianshu.com/p/ccfc5fa3130c说一下我得解决方式当 Build.VERSION.SDK_INT == Build.VERSION_CODES.N_MR1时自定义一个toast然后通过反射,替换并代理handler,添加try catch保护try { if (sTnField == null) { sTnField = Toast.class.getDeclaredField("mTN"); ...

2021-04-13 15:30:27 418

原创 动画

属性动画原理:监听Vsync信号,每次信号一来就回调ValueAnimator的doAnimationFrame方法 通过Interpolator和Evaluator计算出当前动画的百分比和具体数值 调用PropertyValuesHolder的setAnimatedValue方法,去反射调用setXX,从而实现动态改变view的属性链接:https://juejin.cn/post/68449037087282298951. Animation中主要定义了动画的一些属性比如开始时间、.

2021-04-13 10:44:46 95

原创 FutureTask,Callable,Thread,RunnableAdapter关系

thread的真正执行体是runnable,一般使用可以new Thread(new Runnable)就可以而FutureTask<V> implements RunnableFuture<V>, 并且interface RunnableFuture<V> extends Runnable, Future<V> 。因此futtureTask通过实现Future可以获取状态。 并且因为实现了Runnable,也可以new Thread(new Fut.

2021-02-23 10:56:13 387

原创 https 7.0以上抓包问题

官方文档:https://developer.android.com/training/articles/security-config其他:解决 Charles 抓 https 请求显示 <UnKnow>https://www.cnblogs.com/xiaozi/p/9229615.html解决 Android 7.0 以上无法抓包的问题https://www.jianshu.com/p/392362115090上述这个解决方案在实际测试中有问题,release.

2020-09-14 13:55:50 210

原创 Surfaceview 初步讲解及其打洞概述

surfaceview集成view,但是有独立的绘图表面,surface,surfacecontroller。先上代码我们知道,每一个view都有数据自己的绘图层级,activity创建的时候,就会创建phonewindow,其中activity的view都在一个层级层级上绘制,并且跟随vsync信号进行刷新(具体不细说)。然而surfaceview的刷新控制,虽然是view,但是不再基于vsync信号,而是基于具体控制的播放器。draw和dispatchdraw并没有做任何明显的绘制,当.

2020-08-05 15:07:14 906

原创 android cpu 检测

cpu检测命令有两种 :第一种(推荐,android profile采用这种方式):adb shell top ,如果需要过滤包,可以使用adb shell top |findstr 包名>adb shell top -hUsage: top [ -m max_procs ] [ -n iterations ] [ -d delay ] [ -s sort_column ] [-t ] [ -h ]-m num Maximum number of processes to dis.

2020-08-04 15:05:29 1395

原创 View绘制 - draw调用顺序 复习

https://mp.csdn.net/console/editor/html/107717062viewrootimpl中在draw时调用drawsoftware,https://mp.csdn.net/console/editor/html/107717062在drawSoftware中会调用mView.Draw因为draw是callsuper的,最后肯定走View的draw在view的draw中会调用ondraw和dispatchdrawondraw没什么好说的

2020-07-31 17:08:42 198

转载 android studio 查看gradlew dependence

第一种方法在terminal里输入/gradlew app:dependencies通过依赖树具体排查, 找到问题根源,排除掉./gradlew dependencies -q --configuration compile其中app换成你想要看依赖的module的名称第二种方法在工程的build.gradle中追加这段代码subprojects {

2017-08-08 18:53:47 6355

转载 android studio如何查看 e.printStackTrace()

android studio如何查看 e.printStackTrace()

2017-08-04 10:30:46 5164

原创 文件名大小写改动 Git 无法提交问题

Git 忽略文件名大小写,因此上传的文件夹如果大小写有问题,本地改动是无法提交的如何改动?1. git config –get core.ignorecase或者 git config core.ignorecase 查看当前是否开启 ignore大小写2.可跳过第一步,直接 git config core.ignorecase false3.可以提交了

2017-08-04 10:19:50 3953

转载 Android实现https网络通信之添加指定信任证书/信任所有证书

当Android客户端访问https网站,默认情况下,受证书信任限制,无法访问,可以有两种解决方法来实现:1、将要访问的https网站的ca证书添加到客户端信任证书列表中,此种方式为谷歌推荐,安全性高。2、将客户端设置为信任所有证书,也就是说不验证服务器证书,此种方式实现简单,但是安全性低,不推荐使用。直接上代码,分别实现两种方式的访问。1、客户端添

2016-11-04 18:22:47 2448 2

转载 Git SSH Key 生成步骤

Git SSH Key 生成步骤

2016-08-25 13:54:03 495

转载 Android自动开关机实现

Android自动开关机实现关于android自动关机,网上有很多应用程序和例子。 相对于自动开机来说,自动关机可以在应用层通过设置alarm来实现。而自动开机,网上的介绍就比较少了,因为它需要底层rtc时钟的支持。前段时间根据客户需求实现了自动开关机。在这里分享一下。1. 简介我的实现是在设置程序里面增加一个接口,让用户设置自动开关机,这个自动开关机的设置可以参照闹钟的设置。

2016-05-30 11:40:12 671

原创 Android之permission权限列表

属性说明android.permission.ACCESS_CHECKIN_PROPERTIES允许读写访问 "properties"表在checkin数据库中,改值可以修改上传android.permission.ACCESS_COARSE_LOCATION通过WiFi或移动基站的方式获取用户粗略的经纬度信息,定位精度大概误差在30~150

2016-05-26 20:20:54 814

转载 浅析android应用增量升级

  很久没有更新博客了,真是堕落啊,几次想提起笔,却总是被各种琐事耽搁,以后会多写文章记录点滴。背景        随着android应用体积的不断增大,以及应用版本发布的不断更迭,用户的升级成了一个问题,google也意识到不断更新应用对用户流量的损耗,在Google I/O 上提及的 Smart App update,即应用增量升级,或者叫做差分升级的做法,并在新版本的Goog

2016-03-17 17:48:10 373

转载 Android spannableStringBuilder用法整理

spannableStringBuilder 用法详解: SpannableString ss = new SpannableString("红色打电话斜体删除线绿色下划线图片:.");           //用颜色标记文本         ss.setSpan(new ForegroundColorSpan(Color.RED), 0, 2,                

2016-03-13 19:28:16 458

转载 Android Context简介

目录(?)[+]1. Context基本概念1.1 Context是什么?    1) Context是一个抽象类,其通用实现在ContextImpl类中。    2) Context:是一个访问application环境全局信息的接口,通过它可以访问application的资源和相关的类,其主要功能如下:        • 启动Activity

2016-03-08 21:41:44 481

转载 android ViewDragHelper详解

2013年谷歌i/o大会上介绍了两个新的layout: SlidingPaneLayout和DrawerLayout,现在这俩个类被广泛的运用,其实研究他们的源码你会发现这两个类都运用了ViewDragHelper来处理拖动。ViewDragHelper是framework中不为人知却非常有用的一个工具。ViewDragHelper解决了android中手势处理过于复杂的问题,在DrawerL

2016-03-06 22:48:20 471

转载 Android Service解析

学习android有一段时间了,在没有好的师傅带领下,入门时总是碰到这样那样的新概念、新知识,而这些知识虽说能看得明白,却没有深得它的精髓。就好比有一双好看的鞋子,我只知道它很好看,穿起来挺舒服的,但是却不了解为什么穿起来舒服,它是由什么材料组合成的,怎么穿才能更舒服有效。不过开始学习android虽然开头困难重重,但是我坚信大家只要有耐心,有决心不间断地学习下去,总能有大丰收的时候。打个比方,你

2016-03-01 21:14:29 317

转载 java 常用算法和时间复杂度

排序一直以来都是让我很头疼的事,以前上《数据结构》打酱油去了,整个学期下来才勉强能写出个冒泡排序。由于下半年要准备工作了,也知道排序算法的重要性(据说是面试必问的知识点),所以又花了点时间重新研究了一下。  排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲的排序都是属于内排序。

2016-03-01 10:12:51 6262

原创 java 数据结构和存储方式

Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMap通常linked开头的都是双向链。ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直

2016-03-01 09:54:33 3848

转载 Android App 线上热修复方案

Android App 线上热修复方案热修复一词恐怕最早应用在微软。为了巩固其windows系统和office的市场占有率,微软开发并维护了一套线上修复方案,用于修复漏洞及特定问题(LDR),避免延续到发版解决(GDR),详见HotFix维基词条。天猫android面临同样的问题,尤其对于双十一来讲。提早发出去的包,如果出现客户端的问题,实在是干着急,覆水难收。因此线上修复方案迫在

2016-02-29 18:22:37 459

转载 Android binder机制驱动层学习

前言:Read the fucking Source Code.这段时间,大概花了两个星期(期间还偷懒了好几天),深入学习了一下Android的Binder驱动。话说上半年在看Mediaplay的源码时,就遇到过很多的IPC,当时也没有深入的去了解这块内容。这次为了对Android有一个系统级别的了解,所以较为深入的学习了一番。主要参考的内容包括:csdn的android 红人老罗

2016-02-29 17:13:52 726

转载 android中Webview与javascript的交互(互相调用)

最近做android项目中遇到要在webview中做与js交互相关的东东,涉及到js中调用android本地的方法,于是查了资料整理了一下android和js互相调用的过程。如下demo,demo的主要实现过程如下:通过加载本地的html文件(里面有js脚本),实现android本地方法和js中的交互。第一步:mainfest.xml中加入网络权限[java]

2016-02-29 14:52:23 523

转载 android framework初步理解

一、FrameWork整体运行框架说明:          1.Activity的创建会创建PhoneWindow,PhoneWindow会创建DocerView,DocerView会创建View和ViewGroup。2.应用程序在Activity中添加和删除窗口,是通过调用WindowManager类的addView和RemoveView函数达成,具体实现是通过桥接模式实

2016-02-28 00:17:40 1014

转载 Android为什么选择binder,及Binder设计与实现初步讲解

Android为什么选择binderBinder (Android技术内幕):  在上面这些可供选择的方式中,Android使用得最多也最被认可的还是Binder机制。为什么会选择Binder来作为进程之间的通信机制呢?因为Binder更加简洁和快速,消耗的内存资源更小吗?不错,这些也正是Binder的优点。  当然,也还有很多其他原因,比如传统的进程间通信

2016-02-27 21:32:37 515

转载 Android ContentProvider源码分析

转自 http://blog.csdn.net/u010961631/一、前言        ContentProvider作为Android四大组件之一,承担着数据存储的作用,本文用一个最典型的删除(delete)操作,按照Android源码,从应用层的getContentResolver()入手,一步步的分析到ContentProvider内部,最终到达SQLite的操

2016-02-27 20:52:18 1448

转载 监听Android系统Log

转载请注明出处,原文网址:http://blog.csdn.net/m_changgong/article/details/7661940作者:张燕广实现原理:1)执行logcat命令;2)在service中把监听到的log内容通过广播发送出去;3)Client端接收广播,获取log内容;4)注意,添加读取log的权限为什么要监听Log?通过分析

2016-02-26 22:06:22 2509

转载 Android Process 详解

Android基础之Process进程默认情况下,同一个应用程序中的所有组件运行在同一个进程中,而且绝大多数的应用程序也都是这样的。但是,如果我们想要控制让某个特定的组件属于某个进程,我们可以在manifest文件中进行配置。在每种组件元素(activity、service、receiver、provider)的manifest条目中,都支持一个“android:process

2016-02-26 17:46:59 596

原创 android 如何查看android-support-v4.jar 或v7源码

想查看android-support-v4.jar的源码的时候你会发现悲剧了,看不了,那是因为我们没关联android-support-v4.jar的源码,接下来就教大家怎么关联android-support-v4.jar的源码Android SDK在extras目录中同样提供了support包的源码这是我的D:\adt-bundle-windows-x86_64-2014

2016-02-26 14:58:03 3198

转载 Android SwipeRefreshLayout下拉刷新与上拉加载+滑动删除

SwipeRefreshLayout–Google官方提出的下拉刷新控件,广泛应用在各种APP中。一直想弄一个既能支持下拉刷新,又能够上拉加载,同时还能实现类似于QQ的滑动删除效果。上网找了很多资料,最后达到了下面的效果:参考资料: SwipeRefreshLayout的上拉加载与下拉刷新:http://blog.csdn.net/u012036813/article/de

2016-02-26 14:20:58 1679

转载 Android SwipeRefreshLayout下拉刷新与上拉加载+滑动删除

SwipeRefreshLayout–Google官方提出的下拉刷新控件,广泛应用在各种APP中。一直想弄一个既能支持下拉刷新,又能够上拉加载,同时还能实现类似于QQ的滑动删除效果。上网找了很多资料,最后达到了下面的效果:参考资料: SwipeRefreshLayout的上拉加载与下拉刷新:http://blog.csdn.net/u012036813/articl

2016-02-26 14:10:40 2481

转载 Android - View绘图原理总结

Android系统的视图结构的设计也采用了组合模式,即View作为所有图形的基类,Viewgroup对View继承扩展为视图容器类,由此就得到了视图部分的基本结构--树形结构View定义了绘图的基本操作基本操作由三个函数完成:measure()、layout()、draw(),其内部又分别包含了onMeasure()、onLayout()、onDraw()三个子方法。具体操

2016-02-25 15:14:01 339

转载 React Native疑难点,问题深坑最强总结

文章主要总结了在使用React Native开发过程中遇到的疑难杂症,问题深坑。各种问题的解决方案在不断更新中~如果有各位童鞋已经遇到并且解决掉的问题方案,也希望可以提供给我。React Native技术交流1群:282693535  大家可以加群进行交流或者关注我的微信订阅号:codedev123Mac和Windows安装搭建React Native环境教程如下: Mac O

2016-02-24 09:58:14 5091

转载 Kmeans算法介绍及其实现

1.基本Kmeans算法[1][cpp] view plain copy print?选择K个点作为初始质心  repeat      将每个点指派到最近的质心,形成K个簇      重新计算每个簇的质心  until 簇不发生变化或达到最大迭代次数  选择K个点作为初始质心repeat 将每个点指派到最近的质心,形成K个簇 重新计算每

2016-02-23 18:14:18 1105

自定义popupwindow,仿spinner

自定义的popupwindow,其实也可以自定义linerlayout实现,而且个人觉得效果不如自定义linerlayout效果好。

2015-11-02

popupwindow项目使用案例

popupwindow项目使用案例,欢迎大家指正

2015-11-02

spinner简单使用

spinner简单使用,适合新手学习,补习勿喷

2015-11-02

获取短信内容

获取短信内容(最新一条短信),根据需要自行修改,详解参见我的博客http://blog.csdn.net/daogepiqian

2015-08-12

J2EE教程pdf

J2EE 教程第一章J2EE基础第二章HTML与JavaScript第三章JSP第四章Servlet第五章JDBC课程总结

2013-11-03

机器学习pdf

机器学习 pdf 可供学习

2012-12-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除