- 博客(103)
- 资源 (50)
- 收藏
- 关注
原创 AOP之Javassist应用于自动实现EventBus解读(三)
解读demo:https://github.com/north2016/T-MVP一.前言javassist是一个操作class文件即class字节码的动态类库;在打包过程中,用来检查、”动态”修改以及创建 Java类。其功能与jdk自带的反射功能类似,但比反射功能更强大。为了方便看,我将javassist的demo剥离出来二.原理gradle从1.5开始,gradle插件包含了一个叫Transf...
2018-05-31 19:58:30 691
原创 【无标题】
op outputqueuewp waitqueueanim animUIthreadinputreader 收集event事件 提供给inputdispatcherinputdispatcher 分发事件vsyncsf 信号到了之后 拿应用buffer去合成 buffer减1应用buffer在surfaceflinger下找到应用包名看buffer条cpu0-3小核 看clockfrequencylimits 点击看value 1804800为大约1.8G的小核 2200000为2.2G内
2022-02-27 21:34:01 124
原创 【无标题】
、synchronized把代码块声明为 synchronized,有两个重要后果,通常是指该代码具有 原子性(atomicity)和 可见性(visibility)。1.1 原子性原子性意味着个时刻,只有一个线程能够执行一段代码,这段代码通过一个monitor object保护。从而防止多个线程在更新共享状态时相互冲突。1.2 可见性可见性则更为微妙,它要对付内存缓存和编译器优化的各种反常行为。它必须确保释放锁之前对共享数据做出的更改对于随后获得该锁的另一个线程是可见的 。作用:如果没有同步机
2022-02-27 21:33:41 296
原创 Android之Gradle的理解
一.前言Gradle作为Android官方指定的插件脚本,有必要去了解了解。这里说说作者在学习过程中遇到难以理解的知识点。这里强烈推荐以下三部曲1.groovy学习2.gradle学习3.来龙去脉一定要先去认真拜读这三篇,结合android项目去学习,相信掌握的也差不多了,存在的疑惑点兴许从我这篇文章能找到你想要的答案。二.自定义任务Gradle中的Task要么是由不同的Plugin引入的,要么是...
2018-06-01 18:55:54 1502
原创 AOP之AspectJ在android中的解读(二)
一 前言 在没有接触AOP切面编程时,总觉得它是一门特神奇的,特遥不可及的技术,直到公司做无埋,用hook所有监听器的直男方式,遇到无底洞的大坑之后,才痛定思痛执着了解AOP切面编程。 对于AOP切面编程的意义,最主要是找到切入点,接下来了解AspectJ框架的一些基本核心概念。 既然是一个框架,那么就要遵循它的规则二 核心概念 <1> Join Point ...
2018-05-22 20:30:17 1385
原创 AOP之注解处理器APT在Android中的FinderView实际详解 (一)
一 前言 android中现今流行的各大框架,比如ButterFly、eventBus、OrmLite、Retrofit等都使用注解,注解是什 么呢?注解就是元数据,可以理解为属性、方法、类等的一个说明,具体详解可百度,也可移步我的另一篇注解原理详解。一下就以ButterFly为例,解读徒手打造一个FinderView的框架。 获取注解的元数据的方式有以下两种: ...
2018-05-19 17:45:48 597
原创 android之一篇史上最适合最全面的JNI入门教程
前言: 一定要下载demo,动手动脑,结合本篇博客来跑demo,否则看了也还是不会;写代码还是要勤动手才能掌握,否则里边的坑也只是想当然demo一.基础知识 JNI:是java和c/c++交互的桥梁;有必要去弄明白整个开发流程;jni的效率比java要快,所以一些好性能的都会通过走底层来调用java 用途:用的比较多的是视频、美颜、相机、地图等涉及底层以
2018-02-05 22:02:55 4129
原创 android虚拟机原理---运行流程概述
前言Android中,系统通过init进程创建出来的zygote进程,为每个应用创建一个进程和复制一个虚拟机实例,而每个应用都运行在一个DVM或AVM实例中;而且每个进程或线程都对应linux中的一个进程或线程一JVM、DalvikVM、ArtVM区别Jvm(java虚拟机):标准的虚拟机,java文件编译生成标准的多个java字节码(.class)文件,并打包成ja文件,
2018-01-29 11:49:28 12139
原创 android之仿豆瓣写日志
先来看看某帮的效果图:所说的也是类似的效果图 图1是正常编辑文本以及插入图片时的状态图,图2是长按拖动图片位置的状态难点剖析控件拖动:主要用gitHub上的开源控件DragListView 控件地址 这里不再做讲解RecycleView中光标是如何定位在指定的控件如何解决部分机型识别不了键盘中的删除键、回车键如何将图片插入相应的位置如何实现并发上传图片逻辑讲解正常输入文本:当按下回车
2017-09-19 15:28:05 1427 2
原创 android之超级简单的下拉回弹--仿QQ个人主页
先看效果: 效果不错吧!进入主题之前,先了解ImageView的scaleType的center_crop,网络上说的已经很清楚了 : 以下抄自网络:android:scaleType=”centerCrop” 以填满整个ImageView为目的,将原图的中心对准ImageView的中心,等比例放大原图,直到填满ImageView为止(指的是ImageView的宽和高都要填满),原图超过I
2017-02-27 19:45:24 4050
原创 android之AIDL跨进程通信详解
背景一直以来都只是听说AIDL是跨进程的,但都由于项目中也没涉及到,所以也从来都没彻底去了解过,最近空闲下来去了解插件化开发原理,看着看着正好涉及到Ibinder以及android用到的AIDL,于是乎按图索骥一条条来探索到底是个怎么回事儿,按照读者推荐,我们就先从AIDL使用以及原理开始挖掘。前言对于跨进程,我们都知道android底层是linux,所以进程管理也是linux系统的那一套,即进程
2017-02-23 18:18:53 7633
原创 android的hook技术之hook所有view的监听器
这里先声明一下,由于这篇文章早已有人写过,但是并非盗取他的成果,这里的雷同确实有些偶然。。。这是做到一半的时候一个同事跟我说网上有,于是乎我看了他的思路以及demo,基本跟我差不多,只是他的代码写的可能更好一些,但是并没有做优化以及各种场景并没有想到,只是单纯的hook技术而已,以下是作者的文章链接http://www.jianshu.com/p/3f15352e4221如有雷同,纯属
2017-01-13 11:49:03 10333 3
原创 android之滑动悬浮tab&无限循环的viewPager
效果图如下:虽然listview现在已经过时,而且这种效果也满地都是,但是因为自己项目的原因还是自己写一个,而且也想整合都涉及的优化知识点,所以还是值得写一写,当作练练手,也算是一种提升吧一:知识点 1、属性动画的实现view的移动,让其悬浮在顶部 2、HorizontalScrollview计算宽度实现选中tab居中 3、Fragmen
2017-01-10 15:12:03 4738 1
原创 android&java注解详解
通过拜读《java编程思想》中的注解篇,谈谈自己对注解中的理解!学习android经常会用到注解,但是对于注解也是半懵逼状态,至于它是怎么来的,怎么起作用是什么都不知道;比如熟悉的@Override,@Deprecated……等等只知道是注解,以及其起到的作用,至于它是或不是java中的语法,怎么由来怎么读取的其实是没探究的。本文起到一个抛砖引玉的作用,探索注解的由来以及如何自定义自己的注解
2016-12-03 18:26:45 1369
原创 android之listview悬浮topBar
虽然listview是过去式,但由于项目中还是有用listview,百度一番都是scrollview中的悬浮bar,没有看到有listview的悬浮bar,所以自己写一个悬浮bar;参照夏大神的scrollview的悬浮demohttp://blog.csdn.net/xiaanming/article/details/17761431效果如下:自定义的Listview和s
2016-11-23 19:52:14 484
原创 android studio插件开发
之前写过一篇java项目的自动化删除lint到的无用资源,由于使用起来每次都得运行java项目,虽然也不麻烦,但是android studio支持插件开发,于是就想通过插件开发达到一键永逸,使用起来也很方便;正好同事也感兴趣所以一起研究插件开发,这也是我们android开发人员进阶的一项重要技能。毕竟有很多重复性工作,可以使用插件这玩意代替人工,效率也会大大的提高。。。比如前边有几篇用java写的
2016-11-21 12:19:45 1225
原创 android之多层module依赖改成依赖aar
这里只谈aar多层依赖关系!!实用性与复杂性留给读者自行判断。毕竟人无完人,方案也不是全都完美无缺的嘛1、背景 由于公司有两个项目组,想将这两个项目组的某些功能模块相互使用,比如A项目组要使用B项目组的个人中心,B项目组怎么办呢,我们的办法是将个人中心独立成一个lib的module单独提供给A项目组;ok,这也已经满足了。然后过了段时间A项目组又发现B项目组的朋友圈模块不错,又想将
2016-11-03 16:52:02 12191 3
原创 android之LayoutInflater以及setFactory源码解读
android之LayoutInflater以及setFactory源码解读
2016-10-29 18:52:24 1752
原创 android之换肤原理解读
如下是解读demo的链接,自行下载https://github.com/fengjundev/Android-Skin-Loader由于是开源的,而且对于想了解换肤功能的童鞋这个demo实在是通俗易懂,原理也很清晰,所以忍不住想要记录一下,题外话:附上一篇换肤技术总结的博客,这是一篇动态换肤与本地换肤(传统的theme)换肤优劣势的详细比较,需要的童鞋,可以详细拜读,至少知道来源
2016-10-22 17:21:59 4971
原创 andorid之app抽离module及自动化加载全部资源
一、来源: 随着公司的发展,项目越来越大以及项目组之间要公用代码,那么最好的方式将其它项目组所需要的功能抽离成一个module公共库,直接提供给他们用,这时候就会遇到重复性移动java类以及layout等等引用到的所需要的资源如drawable、layout、style、string、color、selector之类的,这如果手动移动很枯燥,也很耗时,主要是耗时,尤其是项目越大牵扯越多,资
2016-10-21 16:58:26 1472
原创 java泛型初探
1.泛型的理解java的一个高级用法就是泛型类,基本很多框架都会用泛型去搭建,比如Gson。。。。。泛型真是个好东西,可说是海纳百川了。。。所以作为一个android开发更有必要掌握这个东东泛型可以设计为一个共有的功能返回不同的类型泛型可说是一种对类型的约束,也可以说是一种对类型的容纳、扩展。。。我也说不好,纯粹是个人的理解约束:指的泛型要是有具体的类型,那么这个就是对泛型类的一种
2016-10-11 20:36:41 356
原创 android之as自动化删除无用资源为apk瘦身
随着项目越来越大,一些无用的资源越来越多,有必要为apk瘦身了,网上一顿乱拔,有欢喜也有泪水,唉,要么是搭建python环境太复杂,要么是没有适用于android studio项目的自动化删除无用资源的。。。头痛的要死,手动一个个删除吧又不符合一个程序员懒惰的高雅气质,于是乎结合现有的,自己写一个自动删除的java demo,有不对的地方忘大家不吝赐教。。。使用也比较简单。。。。注:一定要是j
2016-10-09 20:29:28 5597
原创 android之自定义viewGroup仿scrollView详解
相信学了安卓的朋友都知道自定义viewGroup离不开重写onmeasure()和onLayout(),开始讲解代码之前,先来看看与这两个方法相关知识: 一、onMeasure() :这是测量自身的宽高和子view的宽高方法,测量涉及的知识点除了宽高之外,还有三种模式 (1) 三种模式如下: 1、MeasureSpec.EXACTLY:
2016-07-21 17:53:30 4465
原创 android之surfaceView详解--自定义surfaceView和用于视频surfaceview
android之surfaceView详解--自定义surfaceView和用于视频surfaceview,mediaPlayer详解
2016-07-13 17:02:29 15734
原创 android之属性动画和布局动画详解
1、属性动画是什么不废话,不懂的可以百度一下参考郭霖大神的动画详解篇;这里仅仅提供一个demo说说用法,抛砖引玉,代码的注释写的已经很详细,不再多说废话,一下提供的是一个基础的demo,讲解的是objectAnimator的基础用法,如平移、旋转、缩放、渐变以及动画的集合;至于objectAnimator(必须的有set get方法)和valueAnimator的详细区别也可参考郭霖大神的动画详解
2016-07-11 16:14:16 2537
原创 android之自定义带文本的圆角进度条
自定义圆角进度条以及颜色渐变的进度条先上图,给个直观印象一、先来看看渐变的圆角 private void init(AttributeSet attrs) { mRadius = (int) ((getScreenSize(context).x * 0.6f) / 2);//屏幕的1/4 initPaint(); }
2016-05-26 11:02:36 2146
原创 android之文本前面或后面多标签
之前写过一篇图文混排的,算法就是通过计算文本宽及行数,在换行的时候截取文本剩余的部分显示在图片下边,代码下载:demo今天这边是工作共常用到的,标签在前或在最后显示,比如帖子前边显示多个标签表示精华帖、优秀帖、解决标签等;其实主要是重写DynamicDrawableSpan,以及通过设置SpanableStringBuilder,来显示的。先上图代码如下:主要是
2016-05-24 15:54:58 3374 1
原创 android之事件分发的细节说明
1、在dispatchTouchEvent()中,当前action(down、move、up)返回true才会执行后边的action,若dispatchTouchEvent()直接return false,则后边的action不会得到执行 如:当用户按下 down时,dispatchTouchEvent() return false,则后边的move和up操作则不会执行,
2016-05-03 22:20:49 392
原创 android之绘制相关类
1、surface类,该类用于描述一个绘制平面,其内部仅仅包含了该平面的大小、在屏幕的位置以及一段屏幕缓冲内存区。但在java端,不能直接访问这段内存,同时也不能通过该类直接设置该平面的大小和位置,只能通过surfaceHolder类。 一般情况下Surface是有viewRoot类创建,但sdk没有开发接口,所以开发者无法通过ViewRoot直接创建Surface,而是通过surface
2016-04-27 10:13:28 426
原创 android之多渠道打包---秒打秒打
链接参考地址: https://github.com/HongQiQu/AndroidMultiChannelBuildTool, http://www.cnblogs.com/ct2011/p/4152323.html,https://github.com/HongQiQu/AndroidMultiChannelBuildTool1、首先安装Python(安装和测试步骤自己补脑,
2016-03-25 17:13:32 1024
原创 android之通过clip自定义progress进度条样式
xml: <clip android:clipOrientation="vertical" android:drawable="@drawable/security_scaned_safe" android:gravity="bottom" /> package com.exam
2016-03-17 12:28:33 1595
原创 android之标签icon在文本多行背后或首次位置显示
private void drawImageViewDone(int width, int height) { try { textWidth = content_top_tv.getTextSize(); paint.setTextSize(textWidth); // 一行字体的高度 int lineHeight = content_top_tv.getLine
2016-03-11 16:34:53 708
原创 android只title背景色随着滚动渐变颜色
scrollView.setScrollViewListener(new ScrollViewListener() { @Override public void onScrollChanged(MallHomePageScrollView scrollView, int x, int y, int oldx, int oldy) { float scale = (f
2016-03-11 16:31:05 1590
原创 android之自定义自己的log的格式
// 类名:包括包名 private static String className; // 方法名 private static String methodName; // 打印的行号 private static int lineNumber; // 仅仅是类名 private static String fileName; /** * be used for : 获取方
2016-03-07 15:40:38 721
原创 android之animation-list+图片实现的粘稠的加载动画效果
Tween动画详解:http://blog.csdn.net/feng88724/article/details/6318430用animation-list+图片实现的粘稠的加载动画效果:一:progressbar的动画加载AnimationDrawable animation = new AnimationDrawable(); for (int
2016-02-02 17:57:31 2040
原创 android之浮动title
Activity定义使用的相关的属性:/** 活动精选距离屏幕的坐标 */ private int[] locationActive = new int[2]; /** title标题距离屏幕的坐标 */ private int locationTitleY; /** 是否手指向上滑动(startY>MoveY) */ private boolean isMoveUp; /** 是
2016-01-28 20:42:19 916
原创 android之仿微信双击放大字体及滑动冲突,文本显示不全
xml:在scrollview中要使用android:fillViewport="true" ,否则由于scrollview嵌套的布局使用了gravity="ceter"会出现文本显示不全以及底部还有很大的空白<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_w
2016-01-26 17:04:37 1874
android之APP抽离Module及自动化移动全部资源
2016-10-21
android之属性动画和布局动画demo
2016-07-11
android圆角进度条及色环
2016-05-26
lalalamamaHelpAppDEMO.zip
2019-10-27
oppo/vivo自动点击弹窗安装app
2018-07-30
android studio插件自动化删除lint-result.xml资源Demo
2016-11-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人