自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(969)
  • 资源 (34)
  • 收藏
  • 关注

转载 组件化封装思想实战Android App总结九浏览大图

一、准备工作1、如何实现图片的手势缩放?自定义imageview,在imageview中重写它的onTouchEvent()方法,在onTouchEvent()方法中计算出缩放比,根据计算出来的matrix达到手势的缩放。但是这样会非常地复杂,因为需要考虑嵌套viewpager等带来的一系列问题,所以尽量避免自己开发。2、photoview基本上的大图开发都是使用photov...

2019-04-12 15:46:49 100

转载 组件化封装思想实战Android App总结十公共模块之社交分享功能

一、准备1、①其实Android系统已经为我们提供了一个分享功能,通过发送一个隐式的intent,intent类型叫share,带入我们想要分享的数据,就会遍历系统中所有可以分享的应用,实现数据的分享。第二种就是接入想要分享的平台,接入对应平台的jar包,调用对应的api,完成对应的分享。这两种方式各有什么优缺点呢?采用系统的intent的缺点是无法自定义我们的UI,所以如果调用系统的...

2019-04-12 15:46:41 717

转载 组件化封装思想实战Android APP总结一

1、fragment的切换有多少种方式,有区别吗?真正意义上有三种。①remove()-->add()和replace()②hide()与show()③detach()与detach()单独执行remove()再执行add()方法与直接执行replace()方法是同一种方式replace():相当于先remove(),再add()。如果栈中是空的,则相当于什么也没有remov...

2019-04-12 15:46:33 410

转载 组件化封装思想实战Android App总结十一详情页面开发

一、1、2、3、5、二、列表详情----列表项开发1、初始化界面并查找控件,加载loading动画2、发送请求,接收数据,并更新UI添加头和尾3、填充数据注:如果布局中存在多种相同的ImageView、TextView,可以将其定义成一个数组,后面可以通过数组的遍历方便...

2019-04-12 15:46:26 200

转载 组件化封装思想实战Android App总结十二App公共模块之实时推送组件

一、准备1、2、①比较好用。其它的推送使用逻辑也是类似的。②模仿。3、二、搭建极光推送环境1、2、拷贝文件到libs文件夹下,拷贝完成后需要编译一下,否则可能找不到.so文件和jar包3、拷贝权限4、拷贝配置5、拷贝receiver。跳转的时候需要定义的receive...

2019-04-12 15:46:20 463

转载 组件化封装思想实战Android App总结七App公共模块之视频SDK模块开发六API层讲解及封装

一、1、需要封装的内容只封装这些东西,需要对它再进行一层封装吗?其实业务逻辑层包含了许多自己的逻辑,有很多的方法和逻辑是不需要调用者知道的,所以通过API层再对它进行包装给外部而隐藏掉外部不关心的方法或者接口,这样对调用者来说也省去了学习的成本。2、3、友盟的外观模式下图是友盟统计下的各个模块。友盟统计下有很多个子模块,如果每个模块都有一个文档教你如何去使用,...

2019-04-12 15:45:59 239

转载 组件化封装思想实战Android App总结七App公共模块之视频SDK模块开发五小屏到全屏

一、1、思维导图两个方案中都提到了复用播放器,那么该如何复用呢?思路就是将下图中添加到Root Container中的customvideoview移除出来,添加到Dialog root Container中。即完成下图所示的内容,这样便完成了customvideoview的复用。2、3、FullToSmallListene...

2019-04-12 15:45:51 179

转载 组件化封装思想实战Android App总结七App公共模块之视频SDK模块开发三业务逻辑封装概述

一、回顾1、开发步骤2、开发流程首先实现入口方法load(),第一步一定是去加载,load()会出现两种情况,load()失败会进入stop(),stop()在完成清空工作以后,会根据次数去重新load(),直到load()到规定的次数为止。而load成功会进入到onPrepared()方法中,在onPrepared()方法中可以根据条件判断播放器是否要resume...

2019-04-12 15:45:39 241

转载 组件化封装思想实战Android App总结七App公共模块之视频SDK模块开发二实现视频播放器

一、视频播放一般从load()开始,加载视频,第一步肯定是需要loadUrl()。loadUrl()有两种结果,一种是mediaplayer为我们发送了就绪事件,此时会回调onPrepareed(),在onPrepared()中回调我们正常的处理逻辑。另一种就是error,也就是加载失败了。通常情况下加载失败后会重试,会清空播放器然后重新load()一次,如果load()失败后...

2019-04-12 15:45:33 593

转载 组件化封装思想实战Android App总结七App公共模块之视频SDK模块开发一

一、几个问题1、如何自定义一个视频播放器?Android提供了很多方式,有videoview,有mediaplayer,有surfaceview等等,或者可以使用开源的等等。2、什么是sdk,为什么要将其封装为一个sdk?直接实现一个播放器不就可以了吗?sdk全称是software development kit,也就是软件开发包,常见的就是Android sdk,如果没有An...

2019-04-12 15:45:26 756

转载 组件化封装思想实战Android App总结二App公共模块之网络请求组件之Charles简介

Charles简介一款全平台的网络请求调试工具简单、易学、功能强大自动将json/xml格式化,非常适合移动端程序员Charles常用功能http/https请求拦截,查看请求相关信息请求地址映射(Map),主要用于接口调试请求相关参数设置,如模拟慢网、超时等情况...

2019-04-12 15:45:20 199

转载 组件化封装思想实战Android App总结六App公共模块之二维码扫描组件

一、功能概述1、思维导图2、如何实现扫描功能?可以使用谷歌的ZXING或者其它第三方库3、如何自定义扫描界面?其实扫描界面就是一个Activity,既然是一个Activity,那么就可以控制它所要显示的一些按钮、一些view等等。4、扫描功能是否可以封装为一个组件呢?如果是为了公司内所有的app都去使用,那么就可以封装为一个组件。公司内部是可以完成...

2019-04-12 15:45:13 477

转载 组件化封装思想实战Android App总结四首页列表开发与测试二

一、多图Item开发1、在CourseAdapter中的getView()方法中添加一个CARD_MULTI_PIC的case分支,加载viewholder,并初始化viewholder并根据item类型,将数据与item进行绑定。注:动态创建imageview并动态添加到布局张红时,创建imageview,然后给imageview添加各种各样的属性。在添加属性时,使...

2019-04-12 15:45:06 130

转载 组件化封装思想实战Android App总结四首页列表开发与测试一

一、如何在ListView中使用一个二维的数据结构?在listview中不能直接使用二维的数据结构,所以需要将二维的数据结构转化为一维的数据结构二、如何让ViewPager实现无限循环滑动?第一种思路是自定义一个ViewPager,重写里面的一些方法,比如当滑动到最后一页的时候我们重新滑动到第一页,从而实现循环滑动。但是这种思路有一个不好的地方就是首先需要重定义viewpager...

2019-04-12 15:44:57 268

转载 组件化封装思想实战Android App总结三App公共模块之图片加载组件

一、本章要实现的功能二、universeimageloader配置简单,使用方便高度的可定制性强大的图片缓存机制首先看一下bitmap是否在内存缓存中,如果在,则直接显示。如果bitmap不在内存缓存中,而在硬盘缓存中,则会先走到Decode image这一步,然后再一步一步往下走,处理完以后,进行图片的预处理,然后再放到内存缓存中,接着显示。如果图片既不在...

2019-04-12 15:44:51 455

转载 组件化封装思想实战Android App总结二App公共模块之网络请求组件二

一、网络请求组件Response封装1、listener包中的两个类接口DisposeDataListener。在callback中定义了两个方法,一个是onSuccess()一个是onFailure(),而这个接口中又定义了两个重名的方法,是为什么?首先第一点,如果直接使用okhttp的callback中的方法的话,万一有一天okhttp觉得这两个方法的名字起得不太好,想重新修改名字...

2019-04-12 15:44:39 774

转载 组件化封装思想实战Android App总结二App公共模块之网络请求组件一

网络请求学习目标:在项目中创建一个sdk的module,然后开发步骤:一、利用okhttp提供的api去发送最基本的请求创建一个OkHttpClient,创建一个Request,通过OkHttpClient将request发送出去,然后在onFailure()和onResponse()回调中进行处理。这样就可以通过OkHttp发送一个最简单的网络请求了。但是在...

2019-04-12 15:44:33 876

转载 组件化封装思想实战Android APP总结一之首页框架搭建

一、Application1、它是整个程序的入口2、初始化工作3、为整个应用的其它模块提供一个上下文环境注:通常以单例的形式构建对象,因为oncreate()方法只会被执行一次,所以只需要在onCreate()初始化实例对象即可二、Fragment1、所有的fragment没有直接继承Fragment,而是继承BaseFragment,base...

2019-04-12 15:44:27 355

转载 组件化封装思想实战Android App总结十三项目适配Android 6.0权限系统

一、适配Android 6.01、为什么要适配6.0呢?因为Android 6.0推出了新的权限机制。在以前需要申请Android权限的时候,只需要在mainfest中申请所需要的权限即可,在安装的时候,默认会授予我们相应的权限。但是在6.0以后,权限不仅仅需要在mainfest中进行注册,而且还需要在用到的时候,动态地向用户进行申请。如果用户授予我们对应的权限了,才可以去走正常的逻辑,如...

2019-04-12 15:44:13 199

转载 组件化封装思想实战Android App总结十四多渠道打包

一、1、①渠道是运营的一个专有名词,其实就是一个应用市场。一个渠道就对应一个应用市场。②多渠道打包就是为每个渠道都打一个对应的包,它是如何区分每个包是属于不同的渠道,也就是属于不同的应用市场的呢?原理就在mainfest中。在mainfest中定义metadata,打包时完成对metadata对应值的替换,这样每个包对应的metadata就是不同的值。就可以根据对应值区分每个渠道对...

2019-04-12 15:44:06 501

转载 Android通用框架设计与完整电商APP开发一项目框架设计与模块分解

一、项目架构设计与模块分解项目首先会有一个核心module,然后会有多个功能module,在功能module之上会有具体项目module,这个具体项目module包括,也就是类型为application的module,这个module包含项目基础元的一些信息,比如说包名、applicationId以及一些特有的信息,比如一些第三方平台需要的applicationId、appSecrete等都会...

2019-04-12 15:43:51 1151 1

转载 Android通用框架设计与完整电商APP开发二项目初始化

一、项目基础1、创建项目修改完成后2、修改具体项目的module名字3、创建annotationmodule,一定要选择javalibrary。因为它的注解里面会使用很多标准的Java sdk的注解类,这个时候Android liabrary是找不到这些类的module名字,并取消勾选create .gitignore file..g...

2019-04-12 15:43:43 1335

转载 Android通用框架设计与完整电商APP开发三框架主配置入口的设计与实践一之项目架构初始化

一、项目架构初始化1、我们的应用只有一个activity,它里面是多个fragment进行切换的,这样的好处是应用会非常顺滑,并且一个activity也可以进行很多全局的处理。在类前加上final字段,说明不允许继承和修改该类。应用一般的做法是创建一个类,继承Application,在onCreate()方法中进行初始化,然后在application属性中将name属性标上,这是通常的一个...

2019-04-12 15:43:37 385

转载 Android通用框架设计与完整电商APP开发三框架主配置入口的设计与实践二之字体图标库集成与封装

1、项目:anddroid-iconify这是一个字体图标库,用字体来代替很多图片。Android开发经常将很多本地图标放在drawable和mipmap文件夹下,这样有一些坏处,一是可能让应用变得很大,特别是当图片很大的时候,第二就是当应用分辨率变化很大的时候,图片很难高保真,但是字体就不一样了,因为它是一个基于svg的东西,所以它伸缩的时候并不会失真。所以推荐使用字体图标库。它是一个几...

2019-04-12 15:43:30 395

转载 Android通用框架设计与完整电商APP开发三框架主配置入口的设计与实践三之框架可用性验证

1、一个比较好的习惯是第二天花一段时间看一下前面开发的代码的正确性weakhashmap的机制是当里面的键值对不再被系统引用的时候,就自行进行清除和回收,但是Configurator中的配置项是伴随着整个应用的生命周期的,这里用weakhashmap显然是不合适的。所以将其改为hashmap2、在mainactivity中的布局文件中使用fontasome中的字体...

2019-04-12 15:43:22 274

转载 retrofit网络框架源码解析

1、retrofit是一个http请求的框架,主要用于Android和java。retrofit主要用于将一个http请求变成一个java的接口,所以它使用起来非常方便。同时它又是一个http网络请求框架的封装,它只是一个网络请求框架的封装,而不是一个网络请求框架。它的工作并不是由retrofit来做的,而是由它的内核okhttp来做的。Application Layer层通过Retrof...

2019-04-12 15:43:10 177

转载 插件化总结一普通类的加载

1、2、3、4、5、6、7、8、首先无论是宿主apk还是Aar这种依赖工程,还是各个插件bundle,它们都是有自己的清单文件的。普通的Android工程,在依赖Aar也就是library工程的时候,就有了多个清单文件,所以gradle在构建最终的清单文件的时候,会将各个manifest文件merge到apk文件中。插件化会修改整个打...

2019-04-12 15:43:02 140

转载 件化总结二资源加载

1、要明白插件资源的加载,需要明白Android中提供了哪些类来完成资源的加载。如果资源有文件名,就需要通过assetManager来加载对应的文件资源。如果资源有对应的id,如图片、布局、动画等等,是会生成resourceId的,这时候通过resource这个类来完成资源的加载。加载完以后,再通过assetManager来完成资源的读写。所以,资源文件都是通过AssetManager...

2019-04-12 15:42:56 49

转载 class文件解析

1、2、3、插件化带来的结构上的改变4、5、6、7、magic:无符号4字节类型。作用是加密段,就好像文件的MD5加密一样。用来给虚拟机判断当前的class文件是否被篡改过。如果被篡改过,虚拟机就会有其它的措施去处理这个字段。minor_version:这个jdk最小可以被哪个版本的jd所加载。也就是该clas...

2019-04-12 15:42:49 156

转载 dex文件解析

1、2、3、4、5、6、7、8、9、

2019-04-12 15:42:41 574

转载 虚拟机详解一内存

1、2、3、4、5、6、7、8、9、10、11、12、新生代和老年代的区别:刚刚创建的对象会统一保存在young generation,当新生代内存不足的时候,jvm虚拟机会通过一定的算法将新生代中的对象挪到老年代中,这样新生代区就又多了一些内存空间,可以继续...

2019-04-12 15:42:34 297

转载 虚拟机详解二垃圾回收

主要包括垃圾收集算法、垃圾回收算法、触发回收时间1、引用计数算法最大的缺点是,当对象A引用B,对象B引用A时,A对象的引用+1,B对象的引用也+1,但是此时它们两个是垃圾对象了,但是不能被回收2、垃圾回收器现在使用的收集算法3、4、5、6、7、...

2019-04-12 15:42:27 60

转载 android classLoader详解

1、2、BootClassLoader:与java中bootclassloader的作用基本一样,加载Android framework层的字节码pathclassloader:与java中appclassloader作用一样,加载安装到系统中的apk的文件dexclassloader:与java中customclassloader作用基本一样,用来加载指定目录中的字...

2019-04-12 15:42:19 693

转载 http协议1.0和1.1的区别

1、2、3、4、5、6、7、8、当我们输入完url,浏览器就向服务器发送了一个request请求,web服务器受到request请求后就会进行相应的处理,生成相应的response,然后发送回浏览器。浏览器解析服务器发回的html文档,这样就能看到平常看到的网页。request还有可能是经过代理服务器的,这样最后才到达服务器。代理服务...

2019-04-12 15:42:11 2601

转载 http协议中cookie和session的区别

1、当客户端访问一个支持cookie的网站的时候,用户就会提供包括用户名在内的个人信息,把它提交到服务器,接着服务器在向客户端回传相应的超文本的同时,也会发回这些个人信息。当然,这些信息并不是存放在reponsebody里面,而是在response header里面。当客浏览器接收到服务端响应以后,浏览器就会将这些信息存放在指定的位置,这时候客户端再向服务端发送请求的时候就会将相应的coo...

2019-04-12 15:42:04 847

转载 TCP与IP二

1、有了mac地址和ip地址之后,就可以在任意两台服务器之间进行通信。那么同一台主机许多程序都会用到网络,比如会一边浏览网络一边和朋友聊天,这时候当一个数据包从网络上发来的时候,你怎么知道它是网页浏览的内容,还是qq聊天的内容呢?也就是说我们还需要一个数据来表示网络是供哪个程序使用的。而这个参数,就叫做端口。传输层的作用就是建立一个端口到端口之间的通信。而网络层主要是建立网络层到网络层之间...

2019-04-12 15:41:57 74

原创 剑指offer1、替换空格 请实现一个函数,把字符串中的每个空格替换成" 20"。(java版)

请实现一个函数,把字符串中的每个空格替换成"%20"。你可以假定输入字符串的长度最大是1000。注意输出字符串的长度可能大于1000。样例输入:"We are happy."输出:"We%20are%20happy."代码:class Solution { public String replaceSpaces(StringBuffer str) {...

2019-04-12 15:41:47 343

转载 剑指offer2之从尾到头打印链表,输入一个链表的头结点,按照 从尾到头 的顺序返回节点的值

输入一个链表的头结点,按照 从尾到头 的顺序返回节点的值。返回的结果用数组存储。样例输入:[2, 3, 5]返回:[5, 3, 2]从后往前打印,跟栈结构的先进后出类似,使用栈来实现/** * Definition for singly-linked list. * class ListNode { * int val; * ...

2019-04-12 15:41:37 637

原创 剑指offer3、找出数组中重复的数字

给定一个长度为 nn 的整数数组 nums,数组中所有的数字都在 0∼n−10∼n−1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。注意:如果某些数字不在 0∼n−10∼n−1 的范围内,或数组中不包含重复数字,则返回 -1;样例给定 nums = [2, 3, 5, 4, 3, 2, 6, 7]...

2019-04-12 15:41:28 119

转载 剑指offer4、不修改数组找出重复的数字

给定一个长度为 n+1n+1 的数组nums,数组中所有的数均在 1∼n1∼n 的范围内,其中 n≥1n≥1。请找出数组中任意一个重复的数,但不能修改输入的数组。样例给定 nums = [2, 3, 5, 4, 3, 2, 6, 7]。返回 2 或 3。思考题:如果只能使用 O(1)O(1) 的额外空间,该怎么做呢?class Solution { publ...

2019-04-12 15:41:15 79

Canvas的使用方法

Canvas 画几何图形,path 使用方法,通过canvas和path自定义画板

2014-12-23

自定义滑块

自定义滑块

2014-12-22

adb发送广播

adb发送系统或自定义的广播,在Android客户端接收发送的广播。

2014-12-05

安卓与pc端进行连接

android端作为服务端,pc端作为客户端,通过socket进行连接。android端作为服务端,pc端作为客户端,通过socket进行连接。android端作为服务端,pc端作为客户端,通过socket进行连接。

2014-12-04

socket连接

Android手机作为客户端,pc端为服务端,通过socket进行通讯

2014-12-03

google-gson-1.6-release

jason解析的工具类,解析json的工具类,json通过gson包解析

2014-11-26

自定义notification

自定义notification,其中包含进度条,进度条背景色随着进度的变化而变化,notification中的button可点击

2014-09-12

popuwindow

封装popuwindow,自定义listview,listview嵌套在其它滑动控件时可以完全展开,listview嵌套时显示不全

2014-07-01

ZXing所需的jar包core.jar

android开发扫描功能时所需的jar包,core.jar,有需要的可以下载

2014-02-24

蓝牙开发源码

蓝牙开发源码,有兴趣的可以下载看一下,适合初学者

2013-04-25

蓝牙打印文件

蓝牙打印文件,通过蓝牙打印的小demo,有兴趣的可以参考一下

2013-04-25

BLUETOOTH蓝牙demo

蓝牙使用的例子,一个小的demo,有兴趣的可以看一些

2013-04-25

开发文档nfc

介绍nfc开发的流程,nfc代码,nfc类,nfc权限

2013-04-23

数据库编程

这是一篇介绍基于Android数据库的sqlite文档

2013-04-23

QRCode文档

这是一篇基于Android的QRCode名片系统的研究

2013-04-23

Android网络编程之Http通信

Android网络编程之Http通信

2013-04-17

Android有效解决加载大图片时内存溢出的问题

Android有效解决加载大图片时内存溢出的问题

2013-04-17

Andriod English Resume

Android English Resume Sample

2022-02-17

nginx服务端flash播放器.zip

nginx服务端访问时的播放器、rtmp推流服务端服务器、flash player、nginx服务端访问时的播放器、rtmp推流服务端服务器、flash player、nginx服务端访问时的播放器、rtmp推流服务端服务器、flash player、

2019-12-15

multhreadplayer.rar

多线程处理视频播放、ffmpeg、

2019-11-28

opengl.rar

Android使用opengl播放.wav格式文件,transcode-1.1.7,

2019-11-28

Android ndk音频频解码.rar

音频解码、ffmpeg、ndk开发、

2019-11-23

ffmplayer.rar

ndk 、ffmpeg 、Android ndk开发、ndk 、ffmpeg 、Android ndk开发、ndk 、ffmpeg 、Android ndk开发、ndk 、ffmpeg 、Android ndk开发、ndk 、ffmpeg 、Android ndk开发、ndk 、ffmpeg 、Android ndk开发

2019-11-21

ffmpeg-2.6.9.zip

音视频文件ffmpeg、

2019-11-12

qq_voicer_change.rar

Android studio 通过ndk开发类似于qq变音 Android studio 通过ndk开发类似于qq变音 Android studio 通过ndk开发类似于qq变音

2019-11-12

drageview 拖拽排序的view

拖动并排序、拖动并排序、拖动并排序、拖动并排序、拖动并排序、拖动并排序

2018-08-14

My House我的家

虚拟现实、增强现实、混合现实 虚拟现实、增强现实、混合现实 虚拟现实、增强现实、混合现实 虚拟现实、增强现实、混合现实 虚拟现实、增强现实、混合现实

2017-09-10

AR 恐龙博物馆

AR VR MR 增强 虚拟 混合现实 http://blog.csdn.net/nicolelili1/article/details/75801686

2017-07-22

HiAR多图识别、AR、增强现实开发、虚拟现实开发

HiAR多图识别、AR、增强现实开发、虚拟现实开发 所需扫描的图片地址:http://write.blog.csdn.net/postedit/73287410

2017-06-20

vuforia、AR、虚拟现实、增强现实

利用vuforia的SDK所写的一个简易的demo

2017-06-20

xposed installer

xposed installer

2016-09-07

rxjava-string-0.20.7 .jar

rxjava、rxString、StringObservable、rx中操作字符串

2016-08-16

super user

root

2014-12-22

空空如也

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

TA关注的人

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