自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(133)
  • 资源 (4)
  • 问答 (1)
  • 收藏
  • 关注

原创 输出数组中所有三个数相加为0的解

思路:数组先排序这时候{ -4, -1, -1, 0, 1, 2 }看一下规则,取左等于0,右等于数组大小-4 -1 2 计算和就是-3,这时候要想和为0,左开始向右移动一格-1 -1 2这时候刚好是0,但是并没有结束,结束的条件这里取左和右间隔于是左右各前进一步,左-1 0 1 结束,因为到了左右间隔

2017-09-09 17:48:00 1435

原创 setContentVIew学习

1.setContentView(int id) 2.Window是一个抽象出来区域的概念,意思是这个区域可以添加很多view 那么抽象类的实现是谁,这里是PhoneWindow 3初始化Activity有一个attach方法 mWindow = new PhoneWindow(this, window, activityConfigCallback); 4原来就是PhoneWindo

2017-08-30 21:42:05 303

原创 Activity怎么创建

直接继承Activity就好了。 我这里找了源码看看怎么创建的 scheduleLaunchActivity sendMessage(H.LAUNCH_ACTIVITY, r); handleLaunchActivity(r, null, “LAUNCH_ACTIVITY”); Activity a = performLaunchActivity(r, customIntent);

2017-08-28 21:23:57 569

原创 ActivityThread启动源码解析

https://github.com/android/platform_frameworks_base/blob/master/core/java/android/app/ActivityThread.java 1.启动,走attach ActivityThread thread = new ActivityThread(); thread.attach(false); 2

2017-08-28 20:58:00 502

原创 ApplicationThread 代理启动

ApplicationThread ActivityThread 这2个类经常出现在AMS框架里面,但是他们都不是线程 ActivityThread 是主线程的逻辑类,但是本身不是线程。 查看源码。有一个main函数。启动主线程轮询。这样也就是同一个线程,也就是充当主线程的作用了。ApplicationThread充当的作用是Binder机制,他继承的类就可以看出来。是ActivityThr

2017-08-26 17:04:33 1124

原创 aidl原理解析

写一个aidlaidl就会想到Binder机制,想到CS通信。 定义接口 ITest{int saySomething(String content);}aidl原理 对于客户端,本身持有服务的代理,不会真正去实现,也就是客户端如果说话,不会自己做,而是持有的代理去做这件事class Proxy implements ITest{ Binder mRemote; public Proxy

2017-08-26 16:34:36 327

原创 欢迎使用CSDN-markdown编辑器

首先是对AMS持有的对象代理C:客户端App所在进程 S: AMS服务所在进程IActivityManager 接口public abstract class ActivityManagerNative {static public IActivityManager asInterface(IBinder obj) { return IActivityManager.Stub.asInte

2017-08-26 16:17:46 210

原创 欢迎使用CSDN-markdown编辑器

如果之前没有接触,可以尝试一下,对于安卓打包啊,插件配置啊还是挺重要的。 现在网上很多开源的组件啊很多都需要配置各种参数。这里指的是安卓啊。 比如安卓热修复,插件,还有组件都需要gradle配置,而gradle基于groovy 是一种DSL语言。所以掌握这个还是比较重要,虽然你工作很少用吧。一开始我也不是很熟悉,不过这里零基础,所以总是写一个helloworld吧 新建一个安卓项目,找到gr

2017-07-29 11:28:16 215

原创 Integer中127和128

int m=127; Integer i=m; Integer i2=m; System.out.println(i==i2); m=128; i=m; i2=m; System.out.println(i.equals(i2)); m=127; i=new Integer(127); i2=new Integer(1

2017-07-02 20:09:21 666

原创 欢迎使用CSDN-markdown编辑器

静态方法能不能重写重写的理解静态方法重写非静态方法重写非静态方法依赖类的访问。既然依赖类就得new一个实例,也就是成员方法。这种依赖实例的具体对象是父类对象还是子类对象,如果是子类对象则 调用方法就是子类重写的方法public class A {public static void main(String args[]){ A a=new AA(); System.out.println(a

2017-07-02 19:38:34 192

原创 HashMap之快速失败避免读写同时进行

HashMap是线程不安全的。那么面对读写同时进行会怎么样呢,JDK面对明显的脏数据如何避免,走进科学为你揭晓传说中的快速失败机制是什么样子

2017-04-09 20:23:09 3750 1

原创 快速失败原理

一般面试都有一些线程题目,大致是某某集合和某某集合什么区别,比如Hashmap .HashTable,ConcurrentHashMap有什么区别很多网上答案都说线程安全,一个线程不安全。那么这里不是讨论什么叫线程安全,只是讨论线程不安全怎么办。以HashMap为例,它不安全,什么叫不安全。简单理解就是多线程读写可能是脏数据,比如你在A线程读,B线程写了一个新数据,而A线程却不知道。可

2017-04-09 18:33:48 1646

原创 java.util.ConcurrentModificationException

需求: 在一组列表中,如果符合条件,将标志为true,否则为falsepublic static void main(String args[]) { HashMap map = new HashMap(); map.put("0", "1"); map.put("1", "x"); map.put("2", "x"); Iterator i = map.keyS

2017-04-09 17:20:06 209

原创 常见byte[]->DexFile整理一下

http://blog.csdn.net/sbsujjbcy/article/details/53381663http://blog.csdn.net/sbsujjbcy/article/details/533816635.0以下 libdvm.sohttp://bbs.pediy.com/thread-197274.htmdexFileParse5

2017-03-19 16:02:20 395

原创 一点一点学类加载器--BaseClassLoader加载器基于6.0代码

首先上目录:E:\android-6.0.0_r1\art\runtime\native\dalvik_system_DexFile.ccE:\android-6.0.0_r1\libcore\dalvik\src\main\java\dalvik\system\DexClassLoader.javaE:\android-6.0.0_r1\libcore\dalvik\src\

2017-03-18 20:42:20 584

原创 地址

http://blog.csdn.net/jiangwei0910410003/article/details/48104455http://blog.csdn.net/zzx410527/article/details/51673908https://testerhome.com/topics/4480http://www.jianshu.com/p/

2017-03-07 23:23:57 324

原创 K线别人的家的总结

http://m.blog.csdn.net/article/details?id=53126565https://yq.aliyun.com/articles/63739http://www.cnblogs.com/wytings/p/5097460.htmlhttp://www.jianshu.com/p/0ae907caae6chttp://m.blog.csdn

2017-02-11 17:15:48 439

原创 K线绘制准备

http://data.gtimg.cn/flashdata/hushen/daily/16/sz300033.jshttp://tieba.baidu.com/p/4910671421http://m.blog.csdn.net/article/details?id=53126565package com.example.myapplicationznview;imp

2017-02-11 17:03:31 725

原创 K线投射到安卓屏幕计算方法

K线的坐标 安卓的坐标那么给定一个真实的价格对应安卓屏幕的坐标Y求 法假设max 最大值  min 最小值 topMargin 上面留白  bottomMargin 下面留白int getY(int input){int realDrawHeight=getHeight()-topMargin-bottomMargin;return

2017-02-11 15:57:00 323

原创 hook+android动态代理

动态代理可以理解为动态替换,干一件事 多种方法先抽象干的事情再具体方法原来的,也可以是  新的,可以 新的替换 旧的

2016-12-29 21:18:30 303

原创 加载第三方apk的资源文件,

Class class_AssetManager = Class.forName("android.content.res.AssetManager");    Object assetMag = class_AssetManager.newInstance();    Method method_addAssetPath = class_AssetManager     

2016-12-29 19:33:45 312

原创 安卓插件化几个模块学习

AndroidDynamicLoaderAltas技术OpenAltasDroidPluginHotFix如果单纯的学习而不是项目应用,主要是如下几个模块,1.加载资源文件2加载类代码3.加载Activity4加载so文件

2016-12-28 20:16:40 242

原创 ctrl键看android studio java源码

AndroidStudio中源代码查看linux是在 /home/name/ 都在用户目录配置即可在Android开发中,我们有时渴望知道一些系统API的详细信息,以便更好的理解其实现原理、使用方法、注意事项等等,这时就用到今天说的这些小技巧了。 本人使用的IDE环境是Android Studio,版本2.1.2,相信其他版本与此配置一样。 以Context为例,按着Ctr

2016-12-15 14:03:03 2034

原创 多线程数据改变导致可见性问题整理

这里也是一个比较好玩的话题:梳理:当一个线程访问数据,是串行的,也就是第一次改变数据,第二次访问肯定是拿到改变后的数据。而多线程就没有这么好的命运了。当A改变数据,B去拿的时候可能数据源根本没有变化,错误以为没有改变。JAVA并发编程实战举了一个例子。当A尝试改变一个数据,同时改变状态为已经改变的状态。B检查状态改变做相应的处理。当简单的多线程甚至是加锁处理发现效果

2016-12-04 20:47:52 387

原创 合理加锁保持线程代码安全且保证性能

线程安全保证最好的办法是加锁,然而对于盲目的加锁直接导致安全访问数据,但是代价确实经常的加减锁。让性能变得差劲。所以这里需要权衡加锁的范围,也就是安全与性能的较量。public class Down extends Thread{ static DownloadEntity downloadEntity=new DownloadEntity(); public st

2016-12-04 20:05:50 747

原创 重学多线程开发,学习并发思路

在安卓开发,多线程并不多,更多时候在于三种线程,UI线程,数据库写线程,网络线程。三种线程也很少并发同时工作。所以读写保护之类也不是特别重要和显眼。可能更多的是耗时线程与UI线程使用Handler通信机制。然而由于现在需要维护一份安卓多线程下载代码模块,下载是常见的多线程并发读写加断点续传,里面是写的一个下载模块,各种网络原因和弱网环境加特殊通道等等。让这份代码现有能力无法弄明白,所以

2016-12-04 19:50:35 240

原创 收藏夹

https://github.com/Gracker/Rss-IThttps://www.douban.com/note/568217703/

2016-11-27 18:39:13 210

原创 Cache-Control学习

Cache-Control指定了请求和响应遵循的缓存机制

2016-11-16 16:35:16 252

原创 framework奔溃思考

安卓bug尤其是crash,一旦测出来肯定得改。这种遗留bug让人痛苦不堪,下面就framework框架bug导致思考一下人生。改bug很多时候想复现,但是框架层bug一般都是这样的java.lang.NullPointerException: java.lang.NullPointerException at android.view.ViewGroup.dispat

2016-10-23 14:16:31 306

原创 安卓neic泄漏-工具使用介绍

拿到内存文件看看,手动http://www.2cto.com/kf/201512/455421.htmlandroid studio自动检测 http://blog.csdn.net/u010944680/article/details/51721532leakcanacy 自动app检测http://www.liaohuqiu.net/cn/posts/l

2016-10-13 01:34:38 298

原创 安卓内存泄漏(三) 泄漏场景

模糊感觉,感觉什么Handler。Context内存泄漏一开始各种handler,后来感觉都不敢用,感觉都是内存泄漏梳理1 Handler内部类导致内存泄漏handler里面控制消息,消息在队列里面,如果设置10s才去处理。则消息一直在队列里面。那这个10s时间handler无法销毁。内部类持有外部类引用。内部类所以注意吧。外部类如果Activity,是

2016-10-13 01:28:12 258

原创 内存泄漏学习(二)工具介绍

工具都是固定的,android studio+MAT。android studio这里当然是开发工具,因为eclipse用的比较少。它作用是拿到内存 文件虽然可以用于解析工具,但是详细分析最好是MAT另外它直接dump的文件无法解析,需要去Capture右键生成标准文件。作为解析工具还是简要说说。1怎么看内存泄漏,点击一个按钮,观察Memory发现变大,点击一下

2016-10-13 01:10:25 194

原创 安卓内存泄漏学习(-)--内存泄漏介绍与回收算法简介

内存泄漏不是安卓独有的,不过这里以安卓为例子,打算学习一下安卓里面的内存泄漏,算是性能调优的学习吧。什么是内存泄漏指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,失去了对该段内存的控制,因而造成了内存的浪费。 通俗易懂的讲就是开发人员,用new这个关键词可以产生大量对象,这些对象无法销毁。

2016-10-13 00:50:12 248

原创 JPEG JPG

简述  JPEG是一个压缩标准,又可分为标准JPEG、渐进式JPEG及JPEG2000三种:  ①标准JPEG:以24位颜色存储单个光栅图像,是与平台无关的格式,支持最高级别的压缩,不过,这种压缩是有损耗的。此类型图片在网页下载时只能由上而下依序显示图片,直到图片资料全部下载完毕,才能看到全貌。  ②渐进式JPEG:渐进式JPG为标准JPG的改良格式,支持交错,可以在网页下载时,先

2016-09-20 21:59:42 755

原创 图像概念

图像领域的术语还真是多,不仔细学习学习还真搞不清楚。先一个个介绍下吧:               1、RGB                  这个大部分都知道,“人类眼睛的色觉,具有特殊的特性,早在上世纪初,Young(1809)和Helmholtz(1824)就提出了视觉的三原色学说,即:视网膜存在三种视锥细胞,分别含有对红、绿、蓝三种光线敏感的视色素,当一定波长的光线作用于视网膜时

2016-09-20 21:58:38 347

原创 H264->YUV

int p;        unsigned char *DisplayBuf;        DisplayBuf = (unsigned char *)malloc(sizeof(unsigned char)*(3 * 1280 * 720));             consumed_bytes= avcodec_decode_video(c, picture, &got_pi

2016-09-20 21:55:47 408

原创 播放PCM

众所周知,Android 的 MediaPlayer包含了Audio和video的播放功能,在Android的界面上,Music和Video两个应用程序都是调用 MediaPlayer实现的。MediaPlayer在底层是基于OpenCore(PacketVideo)的库实现的,为了构建一个 MediaPlayer程序,上层还包含了进程间通讯等内容,这种进程间通讯的基础是Android基本库中的B

2016-09-20 21:53:31 1790

原创 h.264 FROM avi

为了提高H264的保存效率,抛弃了FFmpeg库的avi封装,直接才源码的方式封装avi文件,源码来源于网络,经改造回馈网络。废话不多说,直接上干货。[cpp] view plain copy print?/*  * avi_writer.h  */    #ifndef AVI_UIILS_WRITER_H_  #def

2016-09-20 21:51:15 315

原创 AVI

AVI(Audio Video Interleaved的缩写)是一种RIFF(Resource Interchange File Format的缩写)文件格式,多用于音视频捕捉、编辑、回放等应用程序中。通常情况下,一个AVI文件可以包含多个不同类型的媒体流(典型的情况下有一个音频流和一个视频流),不过含有单一音频流或单一视频流的AVI文件也是合法的。AVI可以算是Windows操作系统上最基本的、

2016-09-20 21:49:59 269

原创 avi

最近在做视频文件的解析,需要将视频文件中封装的视频与音频解析出来,然后用自己的解码器解码。这个过程专业点叫做叫做Demultiplex,视频播放器中负责这部分的叫做Demuxer。我们平时看到的各种格式视频,比如:avi,mp4,mkv等相当于一种容器,里面包含了音视频,字幕的信息以及数据,Demuxer的工作就是解析视频文件,取出里面的音视频或者字幕送到指定的解码器解码。我刚开始接触的a

2016-09-20 21:49:09 907 1

简单安卓折线条界面

安卓折现图属于自定义view

2016-07-14

c语言实现链表

c语言实现链表,链表是数据结构第一课,希望对你有帮助 实现链表

2015-05-01

原始套接字发送iCMP自定义头部版本

原始套接字发送iCMP自定义头部版本 ICMP发包,头部改改改 ping的实现 下载吧

2015-04-26

git for linux

git for linux 如果你的电脑老版本,了,源不能用了 下载方便,直接使用

2015-03-27

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

TA关注的人

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