自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(597)
  • 资源 (69)
  • 收藏
  • 关注

原创 阿里云代理仓库地址

在天朝使用jcenter、mavenCentral及google三个远程仓库,Gradle Sync会很慢,google仓库甚至需要科学上网才能访问。USER_HOME在Windows上大约为C:/Users/liyujiang/.gradle/,在Linux上大约为/home/liyujiang/.gradle/。将本项目的gradle/init.d/init.gradle复制到USER_HOME/.gradle/下即可。

2024-03-18 16:49:27 557

原创 坐标系统库

【代码】坐标系统库。

2024-03-04 10:27:28 382 1

原创 流媒体总结

流媒体知识总结

2022-08-24 21:18:29 816 1

原创 WebRtc集锦

WebRtc集锦

2022-08-24 09:31:18 890

原创 WebRtc系列

webRtc 移动端的实现系列

2022-08-02 21:30:54 991

翻译 SDL实现YUV播放器

用SDL来实现YUV播放器主要是通过一个播放时间管理线程,每隔一段时间(比如1秒播放25帧那就每隔40毫秒)发送一个刷新事件,启动事件监听后,每次监听到刷新事件后就从YUV文件中读取一帧图片在SDT创建的窗口中进行纹理渲染展示。/*YUC播放器*/#include <stdio.h>#include <string.h>#include <SDL.h>#define BLOCK_SIZE 4096000//event message#define R

2021-09-16 20:06:45 603

转载 AAC的ADTS头解析

1. ADTS(Audio Data Transport Stream)头之于AACAAC音频文件的每一帧都由一个ADTS头和AAC ES(AAC音频数据)组成。AAC数据帧2. ADTS头分析ADTS头包含了AAC文件的采样率、通道数、帧数据长度等信息。ADTS头分为固定头信息和可变头信息两个部分,固定头信息在每个帧中的是一样的,可变头信息在各个帧中并不是固定值。ADTS头一般是7个字节((28+28)/ 8)长度,如果需要对数据进行CRC校验,则会有2个Byte的校验码,所.

2021-09-10 18:11:12 408

转载 【H264/AVC 句法和语义详解】(二):h264码流格式与NALU详解一

上一篇中,我们站在句法元素(或称语法元素)的角度,介绍了H.264的句法和语义,和句法元素的分层结构。在这篇中,我们更进一步,从比特的角度出发,来探索h264码流的组成。通过这篇的学习,我们会初步具备解析h264码流的能力,从码流中分离出NAL单元,并识别NAL类型。1. H264码流格式不过大道始于脚下,我们还是先从头介绍一下,h264的两种码流格式,它们分别为:字节流格式和RTP包格式。(1)字节流格式:这是在h264官方协议文档中规定的格式,处于文档附录B(Annex-B Byte str

2021-09-10 17:54:14 557

原创 Byte、bit 、和16进制之间的关系

bit(比特)byte(字节)一、bit(比特)计算机内存储和处理信息的最小单位是位(bit,或比特),一个比特值可以是0或1,不能再分割1bit = 一个二进制位01011110 = 表示一个8位的字(比特)表示8位的二进制数二、byte(字节)通常8个二进制位为一个字节(byte)三、换算关系8个二进制位 (bit)= 1字节(byte)四、与16进制的关系1、通常一个字节 =两个16进制位过程解析:1个16进制数 = 4个二进制数位, 2个16进制数...

2021-09-03 10:23:47 12303

原创 FFmpeg抽取音频数据

FFmpeg抽取音频数据涉及到以下几个函数:av_init_packet() 初始化一个数据表结构体(音视频流是由一个个数据包组成)av_find_best_stream() 在多媒体参数找到最好的一路流av_read_frame() 读取流中的每一个包av_packet_unref() 用于包数据不用了之后释放内存注意:下面添加ADTS头的方法只适合HE-AAC 和 LC-AAC,对于其他类型的AAC用这个方法会导致抽取的音频无法播放。关于AAC的ADTS头详解可以参考:AAC的ADTS头解析

2021-08-31 20:48:59 872

原创 FFmpeg抽取视频h264数据

从mp4文件中抽取h264数据步骤如下:1.打开mp4文件并创建一个空文件用于存储H264数据2.提取一路视频流资源3.循环读取流中所有的包(AVPacket),为每个包添加特征码和sps/pps等数据(只有关键帧前面要添加sps/pps数据,其他的只需要添加特征码),都处理完后将数据写入文件保存。ffmpeg读取mp4中的h264数据,pps及sps并不能从packet中获得,而是保存在AVCodecContext的extradata数据域中,如下所示是一个mp4文件的extradata的前面一

2021-08-31 20:36:54 2909 1

原创 FFmpeg将mp4转成flv

mp4转成flv格式文件步骤如下:1.打开输入文件,创建输入文件和输出文件的上下文环境2.遍历输入文件的每一路流,每个输入流对应创建一个输出流,将输入流中的编解码参数直接拷贝到输出流中。3.文件的写入。先写入新的多媒体文件的头。然后遍历输入文件的每一帧,对每一帧进行时间基的转换,转换好后写入新的多媒体文件。最后再多媒体文件中写入文件尾。/*将mp4转成flv格式*/#include <libavutil/timestamp.h>#include <libavform

2021-08-31 20:07:40 1709

原创 H.264基础知识总结

本文来自象棋的 <H.264系列>1.H264结构中,一个视频图像编码后的数据叫做一帧,一帧由一个片(slice)或多个片组成,一个片由一个或多个宏块(MB)组成。2.slice三种编码模式:I_slice,P_slice,B_slice3.根据H.264的不同类别,编码器会使用不同类型的帧,如I帧、P帧和B帧。I帧缺失会导致录屏,B/P帧缺失会导致卡顿I帧(帧内编码帧)是一种自带全部信息的独立帧,无需参考其它图像便可独立进行解码。视频序列中的第一个帧始终都是I帧。如果所传输

2021-08-31 14:25:45 595

翻译 【H264/AVC 句法和语义详解】(一): 句法元素分层结构

本篇隶属于文集:《H264/AVC 句法和语义详解》,查看文集全部文章,请点击文字链接从这一篇开始,我们详细的讲解H.264/AVC 比特码流的句法和语义,可以说,能够学习并掌握H.264的句法和语义,是能彻底掌握并应用H.264的关键。在前面几篇文章中,我们只是从理论层面,介绍了H.264、片、宏块、帧内预测、帧间预测。而在句法和语义中,我们就可以拿到H.264编码之后的裸流,用理论加实践的方式,一步步探索H.264的编解码实现过程。而在这篇文章里呢,我们就先从宏观的角度,来看看使用H.264

2021-08-31 13:21:32 327

原创 Windows下编译安装 FFmpeg

##前言最近我的视频课《FFmpeg音视频核心技术精讲与实战》终于与大家见面了。在学生学习的过程中不断有学生反馈一些问题,其中较多的是如何在Windows 上编译 ffmpeg。在Linux/Mac下编译 ffmpeg是非常方便的。但要在 Windows下编译 ffmpeg还真要花点时间。不过为了满足学员的要求,也方便自己不再被这类问题打扰,今天我就写一下在 Windowns下编译ffmpeg的步骤,以供大家参考。安装Cygwin在windows下安装 ffmpeg 的最好方式就是使用Cygw

2021-08-20 14:01:02 523

翻译 StarUML3.1 破解方法

地址:http://staruml.io/版本:3.1.0系统:windows安装路径:C:\Program Files\StarUML\resources要求:需要node环境原理:解压resources下的app.asar 压缩包,修改里面的配置文件(在验证的时候都返回成功),再重新打包覆盖原来的包2. 安装asar依赖cnpm install -g asar13. 解压app.asar进入到安装路径,解压出文件C:\WINDOWS\system32>cd C:\Prog

2021-06-04 14:55:24 245

翻译 史上最全的StarUML使用教程

文章目录一. 版本二. 界面说明三. 画图种类介绍1. 类图(Class Diagram)2. 用例图(Use Case Diagram)3. 时序图(Sequence Diagram)4. 组件图(Component Diagram)5. 部署图(Deployment Diagram)6. 协作图(Comunication Diagram)7. 对象图(Object Diagram)8. 活动图(Activity Diagram)StarUML是一款很全面,很好用的UML画图工具。

2021-06-04 14:28:13 1806

翻译 使用staruml绘制类图

抽象类的表示选中需要设置的类,勾选Properties->General->IsAbstract进行设置,设置完成后,类名会变成斜体抽象类的表示接口的表示在Properties->General中将Stereotype设置为interface接口的表示新增类的属性选中需要新增属性的类,点击Properties->General->Attributes的右侧按钮在Properties->General中选择Attribute...

2021-06-04 14:08:47 3420

翻译 StarUML3简明教程

StarUML(简称SU),是一种创建UML类图,生成类图和其他类型的统一建模语言(UML)图表的工具。StarUML是一个开源项目之一发展快、灵活、可扩展性强(zj).StarUML官方下载地址:http://staruml.io/download安装教程:安装步骤很简单,省略。注意:付费软件,如需破解可查看我上一篇博客《StarUML3——超好用的UML画图工具推荐》安装之后的主界面简介如图所示:2.创建工程在启动star UML时,系统会默认帮我们创建一个工程如果这个工程..

2021-06-04 13:38:27 169

翻译 android keytool的用法

1. 导入最近在开发中,笔者遇到了这样的问题:当第三方向我们系统请求pay bill业务时,我们的系统就会报错,而且错误的信息是找不到有效的证书,所以交易就被cancelled了。我们不去深究为什么会有这样的错误,笔者今天主要讲的是关于keytool的相关知识,因为了解这个,你就会知道上面的问题是为什么了。2. keytool介绍笔者查找了关于keytool的相关解释,网站上给出的定义是:keytool 是个密钥和证书管理工具。它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认

2021-05-18 19:22:37 871

翻译 Android中重启程序自己的几种方法

1.Intent intent = new Intent(this, Object.class);startActivity(intent);2. 通过ActivityManager来重新启动应用程序:ActivityManager manager = (ActivityManager)this.getSystemService(Context.ACTIVITY_SERVICE);manager.restartPackage("com.example.test");3. 通过flag

2021-02-03 19:30:12 1609

原创 自适应流媒体传输大总结

自适应流媒体传输(一)——DASH媒体内容的生成自适应流媒体传输(二)——为什么要使用fragmented MP4自适应流媒体传输(三)——和TS格式说再见自适应流媒体传输(四)——深入理解MPD自适应流媒体传输(五)——正确认识码率切换...

2021-01-02 16:04:41 569

翻译 Binder传输机制原理(二)

1 事务的传递和处理 从IPCThreadState的角度看,它的transact()函数是通过向binder驱动发出BC_TRANSACTION语义,来表达其传输意图的,而后如有必要,它会等待从binder发回的回馈,这些回馈语义常常以“BR_”开头。另一方面,当IPCThreadState作为处理命令的一方需要向发起方反馈信息的话,它会调用sendReply()函数,向binder驱动发出BC_REPLY语义。当BC_语义经由binder驱动递送到目标端时,会被binder驱动自...

2020-11-08 11:14:50 893

翻译 Binder传输机制原理(一)

1 Binder是如何做到精确打击的? 我们先问一个问题,binder机制到底是如何从代理对象找到其对应的binder实体呢?难道它有某种制导装置吗?要回答这个问题,我们只能静下心来研究binder驱动的代码。在本系列文档的初始篇中,我们曾经介绍过ProcessState,这个结构是属于应用层次的东西,仅靠它当然无法完成精确打击。其实,在binder驱动层,还有个与之相对的结构,叫做binder_proc。为了说明问题,我修改了初始篇中的示意图,得到下图:1.1 创建bind...

2020-11-08 11:12:43 1341 1

翻译 Hook技术--Activity的启动过程的拦截

Hook技术--Activity的启动过程的拦截1、寻找Hook点的原则Android中主要是依靠分析系统源码类来做到的,首先我们得找到被Hook的对象,我称之为Hook点;什么样的对象比较好Hook呢?自然是容易找到的对象。什么样的对象容易找到?静态变量和单例;在一个进程之内,静态变量和单例变量是相对不容易发生变化的,因此非常容易定位,而普通的对象则要么无法标志,要么容易改变。我们根据这个原则找到所谓的Hook点。2、寻找Hook点通常点击一个Button就开始Activity跳转了,这中

2020-09-23 22:19:13 638

翻译 Android包管理机制(二)PackageInstaller安装APK

Android包管理机制(二)PackageInstaller安装APK前言在本系列上一篇文章Android包管理机制(一)PackageInstaller的初始化中我们学习了PackageInstaller是如何初始化的,这一篇文章我们接着学习PackageInstaller是如何安装APK的。本系列文章的源码基于Android8.0。1.PackageInstaller中的处理紧接着上一篇的内容,在PackageInstallerActivity调用startInstallConfirm

2020-09-23 10:16:33 1758

翻译 Android包管理机制(一) PackageInstaller的初始化

Android包管理机制(一) PackageInstaller的初始化前言包管理机制是Android中的重要机制,是应用开发和系统开发需要掌握的知识点之一。包指的是Apk、jar和so文件等等,它们被加载到Android内存中,由一个包转变成可执行的代码,这就需要一个机制来进行包的加载、解析、管理等操作,这就是包管理机制。包管理机制由许多类一起组成,其中核心为PackageManagerService(PMS),它负责对包进行管理,如果直接讲PMS会比较难以理解,因此我们需要一个切入点,这个切入

2020-09-22 21:56:14 933

翻译 Android解析WindowManager(一)WindowManager体系

Android解析WindowManager(一)WindowManager体系前言WindowManagerService(WMS)和AMS一样,都是Android开发需要掌握的知识点,同样的,WMS也很复杂,需要多篇文章来进行讲解,为何更好的理解WMS,首先要了解WindowManager,这一篇我们来学习WindowManager体系。1.Window、WindowManager和WMSWindow我们应该很熟悉,它是一个抽象类,具体的实现类为PhoneWindow,它对View进行管

2020-09-22 10:57:36 2239

翻译 Android解析ActivityManagerService(二)ActivityTask和Activity栈管理

Android解析ActivityManagerService(二)ActivityTask和Activity栈管理前言关于AMS,原计划是只写一篇文章来介绍,但是AMS功能繁多,一篇文章的篇幅远远不够。这一篇我们接着来学习与AMS相关的ActivityTask和Activity栈管理。1.ActivityStackActivityStack是一个管理类,用来管理系统所有Activity的各种状态,其内部维护了TaskRecord的列表,因此从Activity任务栈这一角度来说,Activi

2020-09-22 10:56:01 1642

翻译 Android解析ActivityManagerService(一)AMS启动流程和AMS家族

Android解析ActivityManagerService(一)AMS启动流程和AMS家族前言此前在Android系统启动流程、应用进程以及深入四大组件这三个系列文章中,都提及到了AMS,但都没有系统的来讲解它,本文就以AMS为主来进行讲解,其中会有一些知识点与这些系列文章有所重合,这里会尽量做到详尽讲解。阅读此文章前,最好阅读相关文章中列出的系列文章,否则我不敢保证这篇文章你能看的懂。1.概述AMS是系统的引导服务,应用进程的启动、切换和调度、四大组件的启动和管理都需要AMS的支持。从

2020-09-22 10:11:38 828

翻译 Android深入四大组件(八)广播的注册、发送和接收过程

Android深入四大组件(八)广播的注册、发送和接收过程前言我们接着来学习Android四大组件中的BroadcastReceiver,广播主要就是分为注册、接收和发送过程。建议阅读此文前请先阅读Android深入理解四大组件系列的文章,知识重复的部分,本文不再赘述。1.广播的注册过程BroadcastReceiver的注册分为两种,分别是静态注册和动态注册,静态注册在应用安装时由PackageManagerService来完成注册过程,关于这一过程,我会在后续的介绍PackageMana

2020-09-21 18:06:52 428

翻译 Android深入四大组件(七)Service的绑定过程

Android深入四大组件(七)Service的绑定过程前言我们可以通过调用Context的startService来启动Service,也可以通过Context的bindService来绑定Service,建议阅读此篇文章前请阅读Android深入四大组件(二)Service的启动过程这篇文章,知识点重叠的部分,本篇文章将不再赘述。1.ContextImpl到ActivityManageService的调用过程我们可以用bindService方法来绑定Service,它的实现在Contex

2020-09-21 17:59:51 215

翻译 Android深入四大组件(六)Service的启动过程

Android深入四大组件(六)Service的启动过程前言此前我用较长的篇幅来介绍Android应用程序的启动过程(根Activity的启动过程),这一篇我们接着来分析Service的启动过程。建议阅读此篇文章前,请先阅读Android深入四大组件(一)应用程序启动过程(前篇)和Android深入四大组件(一)应用程序启动过程(后篇)这两篇文章。1.ContextImpl到ActivityManageService的调用过程要启动Service,我们会调用startService方法,它的

2020-09-21 17:43:37 100

翻译 Android深入四大组件(五)Android8.0 根Activity启动过程(二)

Android深入四大组件(五)Android8.0 根Activity启动过程(后篇)前言在几个月前我写了Android深入四大组件(一)应用程序启动过程(前篇)和Android深入四大组件(一)应用程序启动过程(后篇)这两篇文章,它们都是基于Android 7.0,当我开始阅读Android 8.0源码时发现应用程序(根Activity)启动过程照Android 7.0有了一些变化,因此又写下了本篇文章,本篇文章照此前的文章不仅流程发生变化,而且增加了一些分析,算是升级版本。由于篇幅较长,And

2020-09-21 15:25:44 132

翻译 Android深入四大组件(四)Android8.0 根Activity启动过程(一)

Android深入四大组件(四)Android8.0 根Activity启动过程(前篇)前言在几个月前我写了Android深入四大组件(一)应用程序启动过程(前篇)和Android深入四大组件(一)应用程序启动过程(后篇)这两篇文章,它们都是基于Android 7.0,当我开始阅读Android 8.0源码时发现应用程序(根Activity)启动过程照Android 7.0有了一些变化,因此又写下了本篇文章,本篇文章照此前的文章不仅流程发生变化,而且增加了一些分析,算是升级版本。由于篇幅较长,And

2020-09-21 14:21:48 240

翻译 Android深入理解Context(三)Context完全解析

Android深入理解Context(三)Context完全解析1· Context类型 我们知道,Android应用都是使用Java语言来编写的,那么大家可以思考一下,一个Android程序和一个Java程序,他们最大的区别在哪里?划分界限又是什么呢?其实简单点分析,Android程序不像Java程序一样,随便创建一个类,写个main()方法就能跑了,而是要有一个完整的Android工程环境,在这个环境下,我们有像Activity、Service、BroadcastReceiver...

2020-09-21 11:51:51 222

翻译 Android深入理解Context(二)Activity和Service的Context创建过程

Android深入理解Context(二)Activity和Service的Context创建过程前言上一篇文章我们学习了Context关联类和Application Context的创建过程,这一篇我们接着来学习Activity和Service的Context创建过程。需要注意的是,本篇的知识点会和深入理解四大组件系列的部分文章的知识点相重合。1.Activity的Context创建过程当我们在Activity中调用startActivity方法时,其实调用的是Context的startA

2020-09-21 11:46:41 477

翻译 Android深入理解Context(一)Context关联类和Application Context创建过程

Android深入理解Context(一)Context关联类和Application Context创建过程前言Context也就是上下文对象,是Android较为常用的类,但是对于Context,很多人都停留在会用的阶段,这个系列会带大家从源码角度来分析Context,从而更加深入的理解它。1.Context概述Context意为上下文或者场景,是一个应用程序环境信息的接口。在开发中我们经常会使用Context,它的使用场景总的来说分为两大类,它们分别是:使用Context调用方法

2020-09-21 11:31:47 436

翻译 Android Activity启动流程, app启动流程,APK打包流程, APK安装过程

Android Activity启动流程, app启动流程,APK打包流程, APK安装过程1.Activity启动流程 (7.0版本之前)从startActivity()开始,最终都会调用startActivityForResult()在该方法里面会调用Instrumentation.execStartActivity()执行(Instrumentation主要用来监控应用程序和系统的交互)启动,execStartActivity()方法里面有2个方法,一个是ActivityManagerNa

2020-09-20 11:10:15 406

翻译 Android应用程序启动过程(二)分析

Android应用程序启动过程(二)分析本文依据Android6.0源码,从点击Launcher图标,直至解析到MainActivity#OnCreate()被调用。Launcher简析Launcher也是个应用程序,不过是个特殊的应用。俗称“桌面”。通过PackageManagerService查询所有已安装的应用程序,并保存相应的图标、应用名称、包名和第一个要启动的类名等。源码位置:frameworks/base/core/java/android/app/LauncherActi.

2020-09-20 10:59:40 297

Android多语言方案

Android多种语言切换的最优方案

2021-01-27

DragView.7z

自定义ViewGroup实现的DragView,可以长按Item拖拽交换位置的组件源码

2021-01-27

AOP的AspectJ实现方案来做语言切换

AOP的实现有三种,IOC,JavaSisst,AspectJ。AspectJ的Demo最少,这次成功调试出一个

2020-11-27

StarUML Setup 3.0.2.7z

1.下载文件app.asar 2.安装StarUML 3.安装完成后打开文件安装目录下的resource,我的是 “C:\Program Files\StarUML\resources” 找不到的可以右键点击桌面上的StarUML,选择“打开文件所在位置”即可 4.将下载的app.asar文件替换resources目录下的app.asar文件即可

2020-11-23

TabLayout+ViewPager+Fragment复用+Gson解析本地数据

本Demo是TabLayout+ViewPager+Fragment滑动复用结构,Fragment使用了一个三级RecycleView,数据来源于Gson本地解析

2020-11-19

热门标签等自动换行的流式布局+瀑布流照片墙UI实现的优化方案

一、android 的app中经常看见热门标签等自动换行的流式布局,当上面一行的空间不够容纳新的TextView时候,才开辟下一行的空间, 如左下面作图所示,TextView的个数和包含的字符长度都是可以任意指定的。 二、整个界面会根据屏幕的宽度划分成等宽的若干列,这里我们就分成三列。每当需要添加一张图片时,会将这张图片的宽度压缩成和列一样宽,再按照同样的压缩比例对图片的高度进行压缩,然后在这三列中找出当前高度最小的一列,将图片添加到这一列中。之后每当需要添加一张新图片时,都去重复上面的操作,就会形成瀑布流格局的照片墙

2020-10-25

lib_coder.zip

工程是一个library。 算法集合: 1、电子邮件传输算法——Base64 2、验证数据完整性——消息摘要算法——用于验证数据完整性服务 3、初等数据加密——对称加密算法——用于保证数据保密性服务 4、高等数据加密——非对称加密算法——用于保证数据保密性服务 5、带密钥的消息摘要算法——数据签名算法——用于抗否认性服务( 电子商务系统应有效防止商业欺诈行为的发生,保证商业信用和行为的不可否认性,保证交易各方对已做交易无法抵赖) 6、终极武器——数字证书 7、终极装备——安全协议

2020-04-08

WindowMangerService原理与定制

wms 主要功能说明: 一 wms 的启动 二 wms 的工作方式 三 wms,ams 与 activity 间的关系 四 窗口的类型与层级 五 窗口策略 六 窗口的添加过程 七 surface 的管理 八 九 十

2019-02-25

MediaPlayer播放mp3的Demo

 Android提供了常见的音频、视频的编码、解码机制。借助于多媒体类MediaPlayer的支持,开发人员可以很方便在在应用中播放音频、视频。本篇博客主要讲解在Android平台下如何播放一个音频文件

2019-02-12

贝塞尔曲线

贝塞尔曲线 http://blog.csdn.net/heng615975867/article/details/79270525

2018-02-06

广告竖直滑动的单TextView效果

自定义TextView,单TextView ondraw 字符串 竖直滑动仿广告滑动效果

2017-08-08

使用GPU渲染分析apk性能

GPU渲染分析性能:http://blog.csdn.net/heng615975867/article/details/53423690

2016-12-01

Jenkins入门手册

网络上很多大神的博客有关于 Jenkins 的文章,有点蛋疼的是。大神们往往写的很简单,像 我这种小白级人物看着像天书。我现在写下的都是我在使用 jenkins 时的一些经验

2016-10-08

软件架构设计

本书围绕“软件架构设计”主题,从“程序员”成长的视角,深入浅出地讲述了架构师的修炼之道。从“基础篇”、到“设计过程篇”、到“模块划分专题”,本书覆盖了架构设计的关键技能项,并且对于架构设计过程中可能出现的各种问题给与了解答。 本书对于有志于成为架构师的程序员们具有非常有效的指导意义,对于已经成为架构师的同行们系统化规范架构设计也是一本很好的教材。

2016-09-08

超仿微信代码

1.注册登录部分: 1.1重写了EditText的默认的蓝色底线,变成微信的绿色 1.2 登录和注册按钮对输入框进行监听,并变色 1.3 密码明文和隐藏 2.主页 2.1全仿微信底部导航 2.2 右上角加号按钮可进入 “发起群聊”和“添加朋友“ 2.3 显示未读消息数和未读通知数 3.聊天列表页: 3.1 群聊头像是群成员头像的组合,有1.2.3.4.5种类型的头像 3.2 置顶功能。置顶后该会话item置于列表顶端,并像微信一样变底色 3.3 删除列表功能,删除该条会话记录 4.通讯录页 4.1 显示好友列表 4.2 进入还有申请通知 4.3 进入群聊列表 5.发现页(正在开发朋友圈功能.....) 6.用户详情页 6.1 资料设置(目前可更改的资料是:头像、昵称、性别) 6.2 微信号只能设置一次。 6.3 设置页(通知、声音、震动、退出登录) 7.用户申请通知 7.1按时间由近及远排序 7.2 显示申请理由 7.3 处理状态(已添加、同意) 8.查找添加用户 8.1 按用户的手机号查找用户 8.2 搜索的用户的存在显示用户资料 8.3 若该用户已经是好友,显示”发送消息“按钮 8.4 若该用户不是好友,显示添加好友,并要求输入申请理由 9.发起群聊 9.1可以在输入框内按用户昵称搜索好友 9.2 添加群聊的用户的头像可以动态显示在顶部 10.聊天页面 可以发送语音文字图片和视频(后续更新更多表情和设置聊天背景) 11聊天设置 11.1单聊:置顶聊天、免打扰、和清除聊天记录 11.2 群聊:显示群成员列表、增加群成员、删除群成员(群主可操作)、 修改群名称、置顶聊天、屏蔽清除群消息 2015.4.24更新: 1、增加最近在线功能(很多同志反映没有好友无法测试聊天)-----作者更新 2、可以和陌生人直接聊天---作者更新 3、修复位置不能发送,保存按钮监听补上了------网友更新 Change... 7980513324、聊天消息可复制、删除------网友更新 Change... 798051332 注意:为了实现陌生人聊天,逻辑上有较大改动,旧版本的不要和新版本的互相聊天,这是因为陌生人的头像昵称信息是封装在消息里面的,旧版本没有这个设置,新版本获取不到附加字段,会出问题。切记!

2016-09-05

(修改)Android 完美高仿的微信源码

本软件基本实现微信的所有UI效果 具备如下功能点: 登录 功能指引 退出对话框 设置界面 会话界面 右上角功能键 详细资料头像点击放大效果 摇一摇 摇一摇判断“shake”部分来源于网络 具体地址忘了 摇一摇的动画效果是我做的 支持真机摇一摇哦 新特点:主界面使用的是viewpager 支持手势也支持底部图标点击 (比原版微信tabhost强多了 )">本软件基本实现微信的所有UI效果 具备如下功能点: 登录 功能指引 退出对话框 设置界面 会话界面 右上角功能键 详细资料头像点击放大效果 摇一摇 摇一摇判断“shake”部分来源于网络

2016-09-05

MAC反编译APK工具包

MAC平台下的APK反编译工具,详细教程请参照http://blog.csdn.net/heng615975867/article/details/52312695

2016-08-25

httpclient-4.3.6.jar架包

eclipse引用android-async-http框架库,解决NotFound:cz.msebera.android.httpclient

2016-07-04

用SurfaceView自定义时钟

用SurfaceView自定义绘制时钟效果,attr自定义属性效果,时钟秒针每秒绘制一次,分针没分绘制一次

2016-01-27

利用SurfaceView连接随机点绘制的闪电效果

在一个透明的Activity上用SurfaceView绘制闪电,同时加上震动和音效。 在touch事件中调用闪电算法。

2016-01-21

android ant 多渠道打包&博客教程

ant多渠道打包,和博客教程 http://blog.csdn.net/likebamboo/article/details/17953259

2016-01-21

使用XIB自定义一个UIView

iPhone开发学习笔记005——使用XIB自定义一个UIView,然后将这个view添加到controller的view。

2015-01-09

IOS单例模式调试代码

ios 单例学习调试的demo

2015-01-09

Gallery层叠自动循环切换效果

定义Gallery,层叠中间放大显示,自动循环切换效果,可以作为引导页。

2014-08-05

ListView自定义滚动条,上下滚动的按钮

1、滚动条高度随listview里item数量自动控制 2、listview的item数量特殊时的bug修复

2014-03-30

SDL1.3源码

SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。目前SDL多用于开发游戏、模拟器、媒体播放器等多媒体应用领域。

2014-03-14

图片轮播(Viwepager)+(读取网络图片)+点击图片(WebView)展示

1.上面的图片不是放在本地的是通过解析服务器端JSON地址解析之后展示在ViewPager里面的。 2. 读取服务器端TXT文本里面放的JSON数据,图片地址、标题名称。 JSON变量参数名称:网页地址:mArticleUrl 。 图片地址:mPictureUrl 。标题名称:mTitle [{"mArticleUrl":"http://egov.xinjiang.gov.cn/xxgk/zwdt/tpxw/2013/230811.htm","mPictureUrl":"http://egov.xinjiang.gov.cn/webpub/articleimgs/2013_12/33287/20131209101505232.jpg","mTitle":"自治区党委决策部署谋划做好明年经济工作"}] 这一段JSON格式的数据新建一个文本然后放到服务器上面或者Ftp上面都可以,只要IP地址固定的服务器上面都行,名字随便起后缀名为比如XXX.txt 。

2014-02-14

实现第三方授权登录、分享以及获取用户资料

由于公司项目的需要,要实现在项目中使用第三方授权登录以及分享文字和图片等这样的效果,几经波折,查阅了一番资料,做了一个Demo。实现起来的效果还是不错的,不敢独享,决定写一个总结的教程,供大家互相交流、学习和参考,博主只求能和大家共同进步。希望能多多支持! 这篇文章中,我们使用到了Share SDK,它是为iOS、Android、WP8的APP提供社会化功能的一个组件,目前支持如QQ、微信、新浪微博、腾讯微博、开心网、人人网、豆瓣、网易微博、搜狐微博、facebook、twitter、google+等国内外主流社交平台。

2014-01-08

第三方授权登录、分享以及获取用户资料

由于公司项目的需要,要实现在项目中使用第三方授权登录以及分享文字和图片等这样的效果,几经波折,查阅了一番资料,做了一个Demo。实现起来的效果还是不错的,不敢独享,决定写一个总结的教程,供大家互相交流、学习和参考,博主只求能和大家共同进步。希望能多多支持! 这篇文章中,我们使用到了Share SDK,它是为iOS、Android、WP8的APP提供社会化功能的一个组件,目前支持如QQ、微信、新浪微博、腾讯微博、开心网、人人网、豆瓣、网易微博、搜狐微博、facebook、twitter、google+等国内外主流社交平台。

2014-01-08

微信滑动删除效果

微信滑动删除效果

2014-01-06

多线程多任务断点续传

多线程多任务断点续传

2014-01-02

仿IOS的list下拉刷新pullRefresh

模仿IOS的下拉刷新效果的 demo 内容可以嵌套 listView ScrollView 或者普通View 图形使用path实现 具体是 两个半弧形 加上 两条二阶贝塞尔曲线。

2013-12-30

Gragview拖拽ICon位置交换

Gragview拖拽ICon位置交换

2013-12-06

自定义漂亮的圆形进度条

对Android中实现画圆弧及圆弧效果中所实现的效果进行了修改,改为进度圆心进度条

2013-12-03

高仿百度桌面圆盘

高仿百度桌面圆盘

2013-12-01

ImageFilterForAndroid图像渲染

ImageFilterForAndroid中拥有许多丰富的图片渲染,扭曲效果

2013-11-22

Android中Scroller滑屏实现

Android中滑屏实现----如何实现触摸滑屏以及Scroller类详解

2013-11-18

google Zxing二维码条形码扫描

基于google Zxing实现二维码、条形码扫描,仿微信二维码扫描效果的实例代码

2013-11-18

Navigation Drawer(导航抽屉)模式

在2013 google IO当天,Android团的更新了Support库,新版本(V13)的Support库中新加入了几个比较重要的功能。 添加 DrawerLayout 控件,支持创建 Navigation Drawer模式。可以设置从左边划出菜单或者右边,也可以左右菜单同时存在。 添加 SlidingPaneLayout 控件来支持各种屏幕上的摘要、详情界面模式。比如 Gmail邮件列表和单个邮件详情界面。当在手机上显示的时候,邮件列表和详情界面分别为两个界面;当在平板上显示的时候,则为一个界面。 添加 ActionBarDrawerToggle 工具类,方便把 DrawerLayout 和 ActionBar 功能结合起来。

2013-11-16

android指南针

本项目是MIUI指南针的社区开源版,发起并贡献第一批代码,遵循NOTICE文件所描述的开源协议,今后为MiCode社区(www.micode.net) 拥有,并由社区发布和维护.Bug反馈和跟踪,请访问Github,https://github.com/MiCode/Compass/issues?sort=created&direction=desc&state=open 3. 功能建议和综合讨论,请访问MiCode, http://micode.net/forum-40-1.html

2013-11-14

空空如也

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

TA关注的人

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