自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (3)
  • 收藏
  • 关注

原创 Android值得关注的学习网站

这次博客主要记载自己会去关注的一些比较好的学习网站。

2016-06-05 16:10:43 506

原创 热修复探究(三)

这里继续看源代码会发现很多知识,比如可运行的module对应插件类为AppPlugin,参数类为AppExtension,这个就是用来读取android闭包里面的数据的类,对应的lib的module对应的插件类为LibraryPlugin,参数类为LibraryExtension。这里有个知识点必须了解,一般的 Java 项目中有一组 task 用于协同处理并最终生成一个输出。

2016-08-10 00:50:36 480

原创 Jenkins自动打包配置

当时也是花费了不少时间来配置Jenkins自动打包的问题,觉得还是需要记录一下。 1.安装Jenkins,这个很简单,不需要多说。 2.下载Git Plugin,Gradle Plugin,Android Emulator Plugin(这个可以配置SDK路径,觉得这个插件挺好), Email Extension Plugin 邮件提醒插件,自带的邮件提醒插件确实太弱。

2016-08-04 00:48:55 14422

原创 热修复探究(二)

这次继续介绍热修复相关的知识,前一篇文章有提到这篇会讲补丁文件生成和CLASS_ISPREVERIFIED问题的相关操作,那其实这个两个实现现在主流的实现方式是通过groovy编写Gradle插件来实现的,所以呢,很有必要研究一下gradle和groovy相关的知识。不过我不会介绍groovy语言以及怎么使用Android Studio来开发Gradle的脚本这两个方面的知识,但是我会推荐几篇文章。

2016-08-02 23:56:32 474

原创 热修复探究(一)

这次博客会分两篇,这篇介绍各个Android版本是怎么反射加载生成的patch文件的,下篇会详细的分析class对比和patch的生成。

2016-07-27 23:15:56 2131 1

原创 github下fork后如何同步源库的新更新内容?

查看远程状态给 fork 添加源库的clone地址git remote add upstream 源库的clone地址再次查看状态确认是否配置成功从上源仓库 fetch 分支和提交点,并会被存储在一个本地分支 upstream/* 而不是origin /*git fetch upstream切换到本地分支把 upstream/分支 分支合并到本地对应的分支上,这样就完成了

2016-07-23 21:33:11 2670

原创 ViewGroup事件分发

mFirstTouchTarget是TouchTarget类型的,TouchTarget里面封装了被触摸的View以及手指对应的id,该类主要用于多点触控。在第一次ACTION_DOWN的时候,明显mFirstTouchTarget是为null的。mFirstTouchTarget的两种情况。

2016-07-14 00:39:34 654

原创 View的事件分发

1. OnTouch事件执行的条件是当前的控件是Enable的,并且设置了OnTouchListener。2. OnTouch事件优先于OnTouchEvent事件,OnTouch返回true消费掉事件了,OnTouchEvent就不会执行了。3. Action_up的时候处理点击事件。4. 怎么让View不消费事件:从上面分析到让View不消费事件就是OnTouchEvent返回fasle就可以了。

2016-07-12 00:16:53 532

原创 Google 分析 SDK 之渠道统计

本次博客介绍了如何将 Google Analytics(渠道统计)添加到您的 Android 应用中去统计我们广告投放或渠道合作带来的效果,简单的理解就是了解哪些广告系列和流量来源将用户引荐到 Google Play 商店下载您的应用。如果您仅仅想了解一下 Google Analytics(分析)的工作原理,请参阅官方的示例应用。

2016-06-04 13:05:01 5777

原创 自定义View实现天气折线图效果

其实在拿到设计的一个效果,我们首先要做的就是去思考,怎么实现,就算不好实现,也要实现一个折中的两边都可以妥协的方案。由于当前是要展示10天以上的天气的情况,那么如果采用一个view绘制的形式肯定会影响到性能,那其实很快就想到了ListView,这不就是一个横向的ListView的效果么,考虑到ListView并没有横向的效果,转而就想到了RecyclerView。

2016-06-01 23:52:06 8402 4

原创 WebView与Java的交互,WebView调用Java方法的几种方式

本次主要介绍 WebView 和前端的一些交互,前端调用 Java 方法的几种方法,顺便会介绍 Java 调用 JS 的方式。按如下的顺序依次讲解 1. 前端需要注意的几个地方 2. Java 调用 JS 函数,以及传递参数给 JS 函数 3. JS 调用 Java 代码不需要 Java 函数的返回值的两种方式 4. JS 调用 Java 代码需要获取 Java 函数的返回值的两种

2016-04-25 17:19:45 7016

原创 Android Volley+OkHttp3+Gson 开源库的封装

博客将按照下面的步骤介绍Volley的重新封装: 1.OkHttp3的关于Volley的HttpStack实现 2.HttpRequest的实现和HttpListener回调监听的封装 3.Volley原始的Request的Wrap 4.各种方式的请求的重新实现 5.统一请求的实现 6.使用

2016-04-23 20:51:55 5849 4

原创 Android自定义属性为应用程序设置全局背景

关于自定义属性,我们用的比较多的时候就是在自定义view的时候了,其实自定义属性还有一些其余的妙用。1.Android里面使用自定义属性的实例可能我们在使用ToolBar的时候见过很多次的这种使用方式了。

2016-04-22 15:28:08 9615

原创 多渠道打包,生成不同包名的包

来对多渠道打包,并生成不同的包名的知识点做个总结。需要生成不同包名的原因是为了运营的ASO。方法:1.直接建立渠道的文件夹,修改Manifest里面的包名2.利用占位符当然上面两种方法各有优劣,最后说一下他们的各自的一些特点。首先来说第一种方法,步骤:1.根据需要生成多少个包名的包建立和main同级的文件夹。例如:我这里需要两个不同包名的包,那就需要建立两个不同渠道的文件夹。

2016-04-21 22:57:19 13039 5

原创 十二、Bitmap的加载和Cache

Bitmap的加载和Cache,目前比较常用的缓存策略是LruCach和DisLruCache,其中LruCache常被用作内存缓存,而DisLruCache常被用做存储缓存。 Lru是Least Recently Used即最近最少使用算法,这种算法的核心思想是,当缓存快满时,会淘汰近期最少使用的缓存目标。1.Bitmap的高效加载加载图片,BitmapFactory类提供了四类方法。

2016-03-19 17:17:38 645

原创 十一、Android的线程和线程池

除了Thread本身以外,在Android中可以扮演线程的角色还有很多,比如AsyncTask和IntentService,同时HandlerThread也是一种特殊的线程。尽管AsyncTask,IntentService以及HandlerThread的表现形式都有别于传统的线程,但是它们的本质任然是传统的线程。

2016-03-19 17:13:21 500

原创 十、Android的消息机制

从开发的角度来说,Handler是Android消息机制的上层接口,这使得在开发过程中只需要和Handler交互即可。 Handler的使用过程很简单,通过它可以轻松地将一个任务切换到Handler所在的线程中去执行。 Android的消息机制主要指Handler的运行机制,Handler的运行需要底层的MessageQueue和Looper的支撑。MessageQueue的中文翻译是消息队列

2016-03-19 17:06:04 497

原创 九、四大组件的工作过程

四大组件的运行状态Android中的四大组件除了BroadcastReceiver之外,其他三大组件都必须在Manifest里面注册,对于BroadcastReceiver来说,它既可以在Manifest里面注册,也可以通过代码来注册。 在调用方式上面,Activity,Service,BroadcastReceiver需要借助Intent,而ContentProvider则无需借助Intent。

2016-03-19 16:59:53 840

原创 八、Window

Window表示一个窗口的概念,直接使用的机会不多,在某些特殊的时候,比如需要在桌面上显示一个类似悬浮窗的东西,那么这种效果就需要Window来实现。 Window是一个抽象类,在手机上面的具体的实现是PhoneWindow。创建一个Window是很简单的事,只需要通过WindowManager即可完成。

2016-03-19 16:53:58 419

原创 七、Android动画

Android的动画可以分为3种,View动画,帧动画和属性动画,其实帧动画也属于 View动画的一种,只不过它和平移,旋转等常见的View动画在表现形式上面略有 不同而已。 属性动画通过动态地改变对象的属性从而达到动画效果。

2016-03-19 16:44:51 445

原创 六、Drawable

掌握Drawable可以做出一些特殊的效果.Drawable的内部宽高通过getIntrinsicWidth和getIntrinsicHeight这两个方法可以获取到。并不是所有的Drawable都有内部宽高,比如一张图片所形成的的Drawable,它的内部宽高就是图片的宽高,但是一个颜色所形成的的Drawable,就没有内部宽高的概念。

2016-03-19 16:37:34 308

原创 五、View的工作原理

ViewRoot和DecorViewViewRoot对应于ViewRootImpl类,它是连接WindowManager和DecorView的纽带,View的三大流程均是通过ViewRoot来完成的。在ActivityThread中,当Activity对象被创建完毕后,会将DecorView添加到Window中,同时会创建ViewRootImpl对象

2016-03-19 16:22:33 476

原创 四、View的事件体系续

使用Scroller 这里的滑动是指view内容的滑动。 当我们构造一个Scroller对象,并调用它的startScroll方法的时候,Scroller内部其实什么也没有做,只是保存了我们传递的几个参数。

2015-10-31 18:19:44 561

转载 一些关于style和attr的使用问题

对style和attr的引用如何自定义属性如何使用平台自带的属性如何继承style

2015-10-28 21:21:23 2395

原创 四、View的事件体系

View的位置由它的四个顶点来决定:top是左上角纵坐标,left是左上角横坐标,right是右下角横坐标,bottom是右下角纵坐标这些坐标都是相对View的父容器来说的,因此是相对坐标。在Android中,x轴和y轴的正方向分别为右和下。

2015-10-18 17:09:51 696

原创 三、RemoteViews

RemoteViewsRemoteViews在Android中的应用场景有两种:通知栏和桌面小部件。1.RemoteViews的应用RemoteViews在实际的开发过程中,主要用在通知栏和桌面小部件的开发中。 通知栏主要是通过NotificationManager的notify方法来实现的,它除了默认效果,还可以自定义布局。

2015-10-18 16:54:47 517

原创 二、IPC机制续(IPC方式)

IPC机制具体方式有很多,比如可以在Intent中附加Extra来传递信息,或者通过共享文件的方式来共享数据,还可以采用Binder方式来跨进程通信,另外,Content Provider天生就是支持跨进程访问的,因此,我们也可以使用它来进行IPC,另外通过网络通信也是可以实现数据传递的,所以Socket也可以实现IPC。1.使用Bundle由于Bundle实现了Parcelable接口,所以它可以

2015-10-18 16:30:42 661

原创 二、IPC机制(IPC介绍)

1.介绍IPC是Inter-Progress Communication的缩写,含义为进程间通信或者跨进程通信。是指两个进程之间进行数据交换的过程。Android里面最有特色的进程间的通信方式就是Binder,通过它可以轻松的实现进程间的通信,Android也支持Socket,通过Socket也可以实现任意两个终端之间的通信,当然一个设备上的两个进程通过Socket通信自然也是可以的。

2015-10-18 16:06:17 972

原创 一、Activity的生命周期

Activity生命周期1.onStart和onResume、onPause和onStop从描述上来看差不多,对我们来说有什么实质的不同呢?从实际的使用过程来说,onStart和onResume、onPause和onStop看起来的确差不多,这两个配对的回调分别代表不同的意义,onStart和onStop是从Activity是否可见这个角度来回调的, 而onResumeheonPause是从

2015-10-18 15:44:08 500

转载 Android文件关联之Mime Type

http://www.cnblogs.com/wanqieddy/archive/2011/08/08/2131080.html在manifest文件里->activity 添加               这样就把当前程序注册为 可以打开/查看所有类型的文件. 或者要查看jpeg, mimeType要改为: image/jpeg

2015-10-01 23:56:36 1227

原创 Android的Adapter

在实际开发的时候,Adapter

2014-11-14 14:06:32 519

Android应用程序替换背景

一个使用attr对应用程序换背景的例子

2016-04-22

Android多渠道包名替换

多渠道包名替换Demo

2016-04-21

数据结构教程第三版上机实验指导C++源程序

很难找到的资源!对每个章节的内容都有,用时请把头文件拷贝过去,然后包含进去,不想要的话,自己复制一下

2013-10-23

空空如也

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

TA关注的人

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