- 博客(51)
- 资源 (35)
- 问答 (1)
- 收藏
- 关注
原创 潘多拉-视频播放器,一个轻量的视频播放器
这是一个Android开发工具库系列开源项目,不包含任何隐私信息的搜集,完全可以通过国内应用市场隐私合规的检测,现在开源,供广大Android开发程序员同胞使用,欢迎大家一起来进行维护我也是个萌新程序员,项目有什么地方不足,请多多指教,哈哈。
2022-12-28 21:26:04 2590 3
原创 增量更新热修复与插件化
增量更新原理: 通过在网上下载差异包,下载下来之后,与旧的APK进行融合,合成新的Apk文件,因此,不需要下载新的完整的APK,节省了用户的流量差异包大小:旧的APK13M,新的APK15M,差异包大于2M左右优点:节省用户流量,节省下载时间 缺点:需要对每个旧的版本生成差异包,比较耗费工作量, 如果用户安装的不是官方版本,那就没有办法使用差分包增量更新工具:http://www.daemon
2017-08-13 22:23:07 403
转载 Java与js的互调
原文链接:http://blog.csdn.net/klabcxy36897/article/details/51082296 Android提供了一个很强大的WebView控件用来处理Web网页,而在网页中,JavaScript又是一个很举足轻重的脚本。本文将介绍如何实现Java代码和javascript代码的相互调用。 如何实现 实现Java和js交互十分便捷。通常只需要以下几步。 1.
2017-08-07 19:28:00 383
原创 开源框架合集
自定义控件 uCrop SystemBarTint BiliBili弹幕 WheelPicter roundImageView bottomBar pulltoReflush MaterialDialog 工具类相关 RetrofitUtils RxJavaUtils Gson py4j 网页解析 jsoup 内存泄漏检测工具 leakcanary https:/
2017-08-06 18:11:47 348
原创 Android5.0 6.0 7.0新特性
原文链接:http://blog.csdn.net/haovip123/article/details/54618642 背景 Android5.0(Android Lollipop)是谷歌公司2014年10月发布的全新安卓系统,至今已经两年多。然而由于国产手机对安卓ROM的深度定制或修改,以及手机厂商、芯片制造商、运营商之间错综复杂的关系,我们更新最新安卓版本往往需要1年左右时间的等待。201
2017-08-06 17:05:04 722
原创 AndroidAnnotations框架
官网 https://github.com/androidannotations/androidannotations 如何配置环境视频教程http://www.imooc.com/video/8305下载jar包,添加依赖 @EActivity(R.layout.translate) // Sets content view to R.layout.translate public cla
2017-08-06 17:04:29 234
原创 Dagger2的使用
1.解耦原因 • 组合关系:Activity中还有业务的引用 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
2017-08-06 17:04:05 185
原创 MVC和MVP
http://blog.csdn.net/yanbober/article/details/45645115 MVC MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重
2017-08-06 17:03:18 318
原创 Android——事务
http://blog.csdn.net/qq_16103331/article/details/50843947设置回滚,当出现异常的时候,让数据回到最初的状态代码分析: 首先调用SQLiteDatabase的beginTransaction()方法来开启一个事务,然后在一个异常捕获的代码块去执行具体的数据库操作,当所有的操作都完成后,调用 setTransactionSuccessful()
2017-08-06 17:02:52 251
原创 Android中的Bundle的具体使用
http://txlong-onz.iteye.com/blog/934960】一、API文档说明 1.介绍 用于不同Activity之间的数据传递 1.重要方法 clear():清除此Bundle映射中的所有保存的数据。 clone():克隆当前Bundle containsKey(String key):返回指定key的值 getSt
2017-08-06 17:02:28 587
原创 Retrofit的简单使用
http://blog.csdn.net/bitian123/article/details/51899716 官网 https://square.github.io/retrofit/ Retrofit与okhttp共同出自于Square公司,retrofit就是对okhttp做了一层封装。把网络请求都交给给了Okhttp,我们只需要通过简单的配置就能使用retrofit来进行网络请求了,其
2017-08-06 17:02:03 360
原创 Framework层(应用框架层)
什么是FrameworkFramework层为我们开发应用程序提供了非常多的API,我们通过调用特殊的API构造我们的APP,满足我们业务上的需求。写APP的人都知道,学习Android开发的第一步就是去学习各种各样的API,什么Activity,Service,Notification等。这些都是framework提供给我们的,那么我就详细的讲讲Framework到底在整个Android架构中扮演
2017-08-06 17:01:39 4229
原创 常见的错误码
404表示文件或资源未找到 java WEB常见的错误代码 1、1xx-信息提示:这些状态代码表示临时的响应。客户端在收到常规响应之前,应准备接收一个或多个1xx响应。 100-继续。 101-切换协议。 2、2xx-成功:这类状态代码表明服务器成功地接受了客户端请求。 200-确定。客户端请求已成功。 201-已创建。 202-已接受。 203-非权威性信息。 204-无内容。
2017-08-03 23:03:00 391
原创 Handler机制和AsyncTask
一、Handler机制Handler是什么为什么要用Handler Android在设计开发的时候,就封装了一套消息创建、传递、处理机制,如果不遵循这样的机制来更新UI,就会抛出异常信息 Handler、Looper、messagequeue的关系在应用创建时,存在一个ActivityThread线程,在这个线程中会调用PrepareMainLooper,然后调用prepare方法来创建Loop
2017-08-03 23:02:35 256
原创 Android中常用的第三方框架
Eventbus EventBus的三要素 ● Event:事件,可以是任意类型的对象。 ● Subscriber:事件订阅者,在EventBus3.0之前消息处理的方法只能限定于onEvent、onEventMainThread、onEventBackgroundThread和onEventAsync,他们分别代表四种线程模型。而在EventBus3.0之后,事件处理的方法可以随便
2017-08-03 23:02:02 206
原创 Android中常见的优化技术
内存优化(1)避免创建不必要的对象 就像世界上没有免费的午餐,世界上也没有免费的对象。虽然gc为每个线程都建立了临时对象池,可以使创建对象的代价变得小一些,但是分配内存永远都比不分配内存的代价大。如果你在用户界面循环中分配对象内存,就会引发周期性的垃圾回收,用户就会觉得界面像打嗝一样一顿一顿的。所以,除非必要,应尽量避免不必要对象的实例 (2) 静态方法代替虚拟方法(静态方法是使用公共内存空间的
2017-08-03 23:01:23 394
原创 Android进程间通信、线程间通信、组件间通信
一、进程间通信的方式(1)概述 由于应用程序之间不能共享内存。在不同应用程序之间交互数据(跨进程通讯),在Android SDK中提供了4种用于跨进程通讯的方式。这4种方式正好对应于android系统中4种应用程序组件Activity、Content Provider、Broadcast和Service。其中Activity可以跨进程调用其他应用程序的Activity;Content Provid
2017-08-03 23:00:40 342
原创 Android多渠道打包
一、Android Studio+gradle的方式打包(一)在androidmanifest.xml中定义mate-data标签 二、第三方服务打包这种方式就是使用第三方的服务,比如360,百度,友盟等,其原理也是通过修改androidManifest.xml中的mate-data标签内容,然后执行N次打包签名的操作实现多渠道打包的。这里就不在做具体解释说明,免得又做广告的嫌疑,O(∩_∩)O哈
2017-08-03 23:00:01 191
原创 Touch事件的传递机制
TouchEventTouchEvent 分三种事件:down、move、up。 其中move事件在一个操作中(这里说的一个操作就是用户与屏幕的交互,即由down到up的动作序列)可能会发生多次。 但是,我们认为一个动作序列会包含以上三种事件,因此,在事件处理中就是要处理好这个过程,而最重要的就是down事件,这是一个动作序列的起始,没有down谈不上后面的事件了。 所以,我们把消耗dow
2017-08-03 22:59:12 312
原创 安全退出Activity的六种方式
一、容器式建立一个全局容器,每开启一个Activity就在这个容器中添加一个,等到要退出应用的是否,遍历这个容器,推出每个Activity二、广播式每创建一个一个Activity就注册一个广播接收者,当需要退出的时候,就发送一个特定的广播,让所有的Activity结束掉三、进程式通过直接杀死进程来达到退出应用的目的,但是有些国产机可能失效,只能退出部分的Activity(如:小米note)四、RS优
2017-08-03 22:58:36 3199
原创 Android常见的图片处理的开源框架
注意:第三方图片处理框架内部都已经封装了LruCatch,用来处理大图的加载,避免了OOM异常,使用了线程池来管理线程,避免了开启多个线程造成的资源的浪费,对于更新UI,内部也已经封装了Handler来进行线程间通信,将数据发送到UI线程来进行更新UI线程1、Glide:默认使用Hurlconnection加载图片,一个比较轻量级的图片加载框架,通过配合图片加载库的使用,可以做出多种图片加载特效:如
2017-08-03 22:57:57 1611
原创 Android常见的设计模式
单例设计模式(1)懒汉式 1. package 创建型单例模式懒汉式; 2. 3. /* 4. * 单例模式: 5. * 饿汉式:类一加载就创建对象 6. * 懒汉式:用的时候,才去创建对象 7. * 面试题:单例模式的思想是什么?倾斜一个代码体现 8. * 开发使用:恶汉式(是不会出问题的单例模式) 9.
2017-08-03 22:57:08 274
原创 沉浸式状态栏
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = getWindow(); window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
2017-07-17 20:35:37 144
原创 QQ侧滑删除
QQ侧滑删除需要使用的框架compile “com.daimajia.swipelayout:library:1.2.0@aar”布局文件<?xml version="1.0" encoding="utf-8"?><com.daimajia.swipe.SwipeLayout xmlns:android="http://schemas.android.com/apk/res/android"an
2017-06-15 15:17:25 358
原创 仿今日头条订阅频道
仿今日头条订阅频道源码:http://download.csdn.net/detail/qq_32890771/9865071布局文件<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://sc
2017-06-08 21:22:44 444
原创 仿淘宝商品列表切换
仿淘宝商品列表切换源码:http://download.csdn.net/detail/qq_32890771/9864526布局文件<?xml version="1.0" encoding="utf-8"?><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://sch
2017-06-08 13:51:12 1257
原创 利用属性动画实现优酷菜单
利用属性动画实现优酷菜单布局文件<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="fill_parent"android:layout_height="fill_
2017-06-08 10:40:23 252
原创 轮播图片的展示
轮播图片的展示实现逻辑创建XML布局文件,使用ViewPager完成轮播图片初始化ViewPager控件,然后为控件设置适配器,创建出来的适配器实现里面的四个方法四个方法分别是getCount isViewFromObject instantiateItem destroyItem在onCreat方法中,加载图片资源,将图片ID存在集合中,使图片能够在页面中显示,(图片之所以能够在
2017-05-31 08:45:51 345
原创 QQ侧滑菜单的实现
QQ侧滑菜单的实现实现逻辑先写出菜单页面和主页面的布局创建一个类,继承RelativeLayout,实现里面的onLayout在主布局文件中添加子空间在onLayout里面获取子控件的宽和高,并对子控件的位置进行绘制给子布局设置滑动事件,分别在手指落下\移动\抬起的时候,获取手指的位置在手指移动的过程中,对菜单页面的移动距离进行限制,防止菜单页面跑出指定的页面在手指抬起的时候,判定一下
2017-05-29 17:12:00 390
原创 AndroidStudio添加依赖的代码
compile ‘se.emilsjolander:stickylistheaders:2.7.0’ 2.
2017-05-28 20:31:41 517
原创 模拟滑动解锁界面
模拟滑动解锁界面实现逻辑自定义一个view继承view类,实现里面的方法在构造方法中加载出图片资源.在onMeasure中获取背景的宽和高作为自定义控件的宽和高在onDraw方法中绘制出滑块,在控件的布局文件中设置控件的背景图片设置滑块的触摸事件,分别算出当手指按下屏幕.移动,离开屏幕时滑块的位置在移动的过程中,对滑块的位置进行限定,使滑块的位置不能超过指定的区域在手指离开屏幕的事件中判
2017-05-28 19:22:13 745
原创 仿美团外卖菜单界面的实现
仿美团外卖菜单界面的实现布局文件总布局<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activi
2017-05-28 09:10:30 8975
原创 自定义可滑动的按钮
自定义实现可滑动的按钮实现逻辑创建一个类继承view类,实现里面的onMeasure() onDraw()方法在 onMeasure() 中需要调用setMeasuredDimension(viewWidth,viewheight),用来绘制按钮的位置区域需要加载按钮的背景和滑块资源 并且转化为bitmap对象获取背景图片的宽和高作为自定义控件的宽和高获取滑块的宽度,用来调整按钮的开和
2017-05-27 19:44:38 419
原创 下拉展示条目
下拉展示条目布局文件<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_main
2017-05-27 15:41:58 224
原创 StickyListHeaders实现电话本列表效果
StickyListHeaders实现电话本列表效果效果展示https://raw.githubusercontent.com/emilsjolander/StickyListHeaders/master/demo.gif布局文件与listview使用方式一样,可以在布局文件中直接进行使用核心代码oncreat方法在oncreat方法中初始化控件,并为控件设置数据适配器StickyListHead
2017-05-27 09:02:22 357
原创 混淆文件列表(后续更新中)
-keep class butterknife.* { ; } -dontwarn butterknife.internal.** -keep class *$$ViewInjector { ; } -keepclasseswithmembernames class * { @butterknife.* ; } -keepclasseswithmembernames clas
2017-05-26 10:28:00 205
原创 使用动画实现10-0的倒计时
利用动画实现10-0的倒计时布局文件<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activ
2017-05-21 14:55:12 394
原创 自定义对话框
自定义对话框布局文件<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main
2017-05-21 12:27:29 205
原创 输入框自动提示的实现
输入框自动提示的实现布局文件<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_
2017-05-21 11:32:48 437
原创 对话框的几种实现方式
对话框的几种实现方式布局文件<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_ma
2017-05-21 11:31:39 859
JAVA编译中文乱码,求各位大神解答
2016-03-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人