自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 资源 (1)
  • 收藏
  • 关注

原创 reactnative 京豆

文件下载地址:https://pan.baidu.com/s/1FZNJVKqVDiP5tb9_gUYsqQ           

2018-11-05 21:31:09 275

转载 android 基础知识View (一)滑动冲突拦截和原理

    自定义View滑动冲突现象:  第一种是同向,第二种为异向,第三种为前两种的组合模式滑动冲突解决方案:首先决定x和y移动方向的长度来决定是x还是y的移动第一外部拦截法: @Override public boolean onInterceptTouchEvent(MotionEvent event) { boolean i...

2018-08-16 14:49:50 3172

原创 android 多线程理解(四) 补漏篇

多线程理解书中讲到java  threadlocal多线程安全篇各种蛋疼的异常例子。Java虚拟机

2018-08-14 18:44:29 176

原创 android 多线程理解(三) 进阶篇

EventBuslocalbrostcast生产者消费  

2018-08-14 18:42:11 286

原创 android 多线程理解(二) 高级篇

ThreadLocal AsyncTaskHandleThreadintentservicehandler  

2018-08-14 18:40:07 158

原创 android 多线程理解(一) 初始篇

主要讲: 进程线程概念,线程实现,停止线程, 进程: 程序的在一定数据结构和集合上面的运行,是操作系统调用的基本单位,简单的来说就是windows任务管理器上的exe进程查看。线程:进程可以有多个线程,是cpu高效利用的表现,是操作系统调度的最小单元,有自己的寄存器,缓存等。线程共包括以下5种状态。1. 新建状态(New)         : 线程对象被创建后,就进入了新建状态。...

2018-08-14 17:23:22 545

转载 阿里巴巴开发者手册学习笔记

命名规范:1.【推荐】资源文件需带模块前缀。 特别是插件化// Login 组件的 build.gradleandroid { resourcePrefix "login_" // 其他配置 ...}2.【推荐】layout 文件的命名方式。    Activity 的 layout 以 module_activity 开头    Fragment 的 ...

2018-08-13 11:15:30 329

翻译 android 组件化思路

模块化和组件化的区别:模块化,以业务维度,组件化以功能维度,业务的维度很多情况下会有多个模块相互调用,耦合在一起,可以理解为模块化其实是包含了多个组件化(功能点)来实现的,组件化是以更小的维度去处理的,以单个功能点去完成,比如登陆,或者咚咚聊天,分享,支付等。 组件化开发过程中需要解决的六大问题:1,独立运行和开发,提升开发效率,比如京麦咚咚的人员就全部在这个模块上开发2,数据...

2018-08-10 13:47:41 420

原创 Android9.0 新特性 8.0 新特性

9.0 特性:1.刘海模式,兼容适配刘海样子,手机内有可以直接设置刘海模式开发,不用去找多个厂家手机就可以进行兼容性适配。2.ai智能应用,动态电量控制,控制电量分配,对于近期少用的少分配3.全局夜间模式,支持夜间模式的设置。4.长图截屏功能。5.自带日历提醒震动模式6.非官方应用禁止安装,类型小米厂商。7,默认使用https,为了将所有网络流量从明文方式向加密方式迁移...

2018-08-08 20:22:50 4763

原创 (3)咚咚客户端核心设计原理分析 - 心跳篇

心跳包格式:{    "aid":"Lmk05vqk",  //每次发送消息之后   就会带上这个令牌    "from":{        "app":"im.waiter",        "clientType":"android",        "pin":"test_pgq"    },    &qu

2018-08-07 19:34:56 2552

原创 (2)咚咚客户端核心设计原理分析 - 代码流程篇 (套接字建立,发送消息流程,接收消息流程)

京麦Tcp建立连接流程:ConnectTask.run() -> connection.connect()(这里面也注册了一个连接状态的一个回调类) -》 tryToConnectOnTracker (建立连接) ——》 选址(根据TbTracker)然后 -》 realconnect -》socket.connect (真正建立连接)(initconnect 一些初始化的参数,比如 ...

2018-08-07 18:34:51 240

原创 (1)咚咚客户端核心设计原理分析 - socket篇

Socket 套接字说明:https://blog.csdn.net/carson_ho/article/details/53366856计算机网络分为五层:物理层、数据链路层、网络层、运输层、应用层端口号0~1023:分配给系统的端口号 我们不能随便使用1024~49151:登记端口号,主要是让第三方应用使用  但是必须在IANA(互联网数字分配机构)按照规定手续登记,4915...

2018-08-07 18:10:04 227

原创 项目review步骤还有项目交接总结

review 代码逻辑1.主要review 主流程,其他流程不需要,细节化小点,开发人员自己注释就好2.符合阿里巴巴 java和android开发手册3.性能方面4.控件和代码复用方面,是否有其他的项目有写到类似的代码,如果是就不用再写。5.看每个成员提交的历史,从0到1 的过程进行跟踪查看。重点:每个开发人员在每次集合合并代码的时候在learn分支上将写的代码进行说明,备注,以便将...

2018-08-07 15:20:18 3032

原创 android 性能优化 总结

16毫秒原则:Android系统每隔16ms发出VSYNC信号,触发对UI进行渲染,如果每次渲染都成功,这样就能够达到流畅的画面所需要的60fps,为了能够实现60fps,这意味着程序的大多数操作都必须在16ms内完成。超过16ms 就会出现丢针的情况,因为他要在下一个信号量开始进行绘制http://hukai.me/images/vsync_over_draw.png12fps大...

2018-08-07 15:11:06 122

原创 token session cookie的理解

Token 可以理解为就是一个令牌,原理:客户端使用用户名和密码请求登录。服务端收到请求,验证用户名和密码。验证成功后,服务端会生成一个token,然后把这个token发送给客户端。客户端收到token后把它存储起来,可以放在cookie或者Local Storage(本地存储)里。客户端每次向服务端发送请求的时候都需要带上服务端发给的token。服务端收到请求,然后去验证客户端请求里面带着to...

2018-08-07 14:43:37 415

原创 阅读项目源码流程

1.从主要类出发去学习相对应的内容,配合界面。2.打断点,弄清主要流程。3.了解一些小的utils 细节技术点,用于学习。        

2018-07-25 15:56:19 152

原创 为什么写博客 --- 因为不能30岁的时候还在看以前的老知识 因为记忆力不好 因为写了以后用的时候直接过来找

开始写  -  2018 7 7

2018-07-18 13:45:13 138

原创 工作中常用命令行和开发工具使用

常用工作命令行操作:adb shelladb pull /sdcard/Download/android-studio-ide-173.4720617-windows.exe 1.exegit config --global user.name "mahaisheng"git config --global user.email [email protected] clo...

2018-07-18 10:41:48 461

原创 reactnative 中关于小米文案的被截断的处理方案

处理方案有多种,简单的来说最好的处理方法,当然是改原生的text,但是由于是兼容性问题,在google还有iphone系列的手机没有这个问题,所以还是根据实际问题实际做兼容性适配。问题出现的现象:对于可变字体的text,截断现象特别明显截断现象一:在listView 这些里面使用text,由于text的字符串长度大小是会随着下发的数量进行相对应的改变的,从而导致截断。

2016-09-06 14:14:51 2010

原创 解决过度绘制的思路总结

过度绘制就是在同一个区域中叠加了多个控件,也就是说一个像素点上会出现多个像素的叠加,实际上呈现在我们眼前的只是最上面的一个,往往造成这种现象的原因是产品或者视觉过多繁琐的建议和交互,或者是开发人员自己不注意造成的。(一)过度绘制查看:通过打开开发者选项中的 显示GPU过度绘制(设置—更多设置–开发者选项–调试GPU过渡绘制— 显示过渡绘制区域.)来进行测试(PS:每个手机可能不一样,但是一

2016-07-27 14:39:12 6504

转载 android 自定义控件

Android自定义View实现很简单继承View,重写构造函数、onDraw,(onMeasure)等函数。如果自定义的View需要有自定义的属性,需要在values下建立attrs.xml。在其中定义你的属性。在使用到自定义View的xml布局文件中需要加入xmlns:前缀="http://schemas.android.com/apk/res/你的应用所在的包路径".

2014-09-25 21:43:11 629

转载 AsyncTask实现的原理和handle

AsyncTask实现的原理,和适用的优缺点AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程.使用的优点: 简单,快捷 过程可控使用的缺点: 在使用多个异步操作和并需要进行Ui变更时,就变得复杂起来.

2014-09-25 21:32:38 913

转载 Android基本空间

Google给了我们一张系统架构图,在这张图上我们可以看到Android的大体框架组成。从上图可以看到:Android Applications,Application Framework,Dalvik Virtual Machine,Linux。如果将Android泛化,我们可以将系统划分成两部分:但是为了研究的方便我们先看最为本质的三层,上面是Android,中间叫Dalv

2014-09-24 20:46:11 437

转载 android、Java下判断两个String是否相等 、EditText输入是否为空,限定输入数字的实现 总结

str1.equals(str2)来判断,不能用==或者!=来判断,原因:因为String是引用类型的,不是基本数据类型,所以它们的比较是使用地址和值(相当于C中的指针)来比较的,因为它们是不同的对象,有不同的地址,所以str1!=str2永远都是true。而str1==str2永远是false。如果你中想比较它们的数值是否相等就使用str1.equals(str2)。使用==或者!=是对

2014-09-22 21:47:02 424

转载 Layout_weight详解

在网上看了一些对Layout_weight的讲解,有些说的比较片面,只列举了一种情况,然后自己通过实验和一些比较好的文章总结了一下,特此记录下来,以备以后所用。Layout_weight是线性布局,也就是LinearLayout里面用到的,下面通过实验来看这个Layout_weight的特性。1.当控件的属性android:layout_width="fill_parent"时,布局文件如下:

2014-09-22 21:37:58 274

转载 android:layout_gravity 和android:gravit的区别?

android:layout_gravity 和android:gravit的区别?android:gravity是调整元素本身的内容或元素包含的子元素显示的位置,默认是显示在左侧android:layout_gravity是相对与它的父元素说的,说明元素显示在父元素的什么位置。比如说Button: android:layout_gravity 表示按钮在界面上的位

2014-09-22 21:20:35 399

转载 android:layout_margin和android:padding的分别

android:layout_margin就是设置view的上下左右边框的额外空间android:padding是设置内容相对view的边框的距离 在LinearLayout、RelativeLayout、TableLayout中,这2个属性都是设置都是有效的在FrameLayout中,android:layout_margin是无效的,因为Fram

2014-09-22 21:16:17 492

转载 强引用弱引用软引用

1、概述   在JDK1.2以前的版本中,当一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及状态,程序才能使用它。这 就像在日常生活中,从商店购买了某样物品后,如果有用,就一直保留它,否则就把它扔到垃圾箱,由清洁工人收走。一般说来,如果物品已经被扔到垃圾箱,想再 把它捡回来使用就不可能了。   但有时候情况并不这么简单,你可能会遇到类似鸡肋一样的物品

2014-09-22 21:10:34 358

转载 android 内存优化

一、 Android的内存机制    Android的程序由Java语言编写,所以Android的内存管理与Java的内存管理相似。程序员通过new为对象分配内存,所有对象在java堆内分配空间;然而对象的释放是由垃圾回收器来完成的。C/C++中的内存机制是“谁污染,谁治理”,java的就比较人性化了,给我们请了一个专门的清洁工(GC)。    那么GC怎么能够确认某一个对象是不是

2014-09-22 20:58:44 263

转载 android内存泄露的情况

android手机给应用分配的内存通常是8兆左右,如果处理内存处理不当很容易造成OutOfMemoryError,我们的产品出现最多的错误也是OutOfMemoryError的异常, 在解决这个异常时在网上发现很多关于OutOfMemoryError的原因的介绍。 OutOfMemoryError主要由以下几种情况造成: 1.数据库的cursor没有关闭。  操作Sqlite数据库

2014-09-22 20:57:39 345

转载 内存溢出和内存泄露的分别

内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。memory leak会

2014-09-22 20:54:36 315

转载 android 四种启动模式

在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作。在Android中Activity的启动模式决定了Activity的启动运行方式。  Android总Activity的启动模式分为四种:[html] view plaincopyActivity启动模式设置:       

2014-09-14 20:42:35 267

原创 gridView

本文需要添加/修改3个文件:main.xml、night_item.xml、JAVA源代码。main.xml源代码如下,本身是个GirdView,用于装载Item:[xhtml] view plaincopyprint?xml version="1.0" encoding="utf-8"?>  GridView xmlns:and

2014-09-14 20:37:40 281

转载 FragmentTransaction

FragmentManage:FragmentManager能够实现管理activity中fragment. 通过调用activity的getFragmentManager()取得它的实例.FragmentManager可以做如下一些事情:1、使用findFragmentById() (用于在activity layout中提供一个UI的fragment)或findFrag

2014-09-14 20:30:21 449

转载 webView使用深入

浏览器控件是每个开发环境都具备的,这为马甲神功提供了用武之地,windows的有webbrowser,android和ios都有webview。只是其引擎不同,相对于微软的webbrowser,android及ios的webview的引擎都是webkit,对Html5提供支持。本篇主要介绍android的webview之强大。A.    webview组件如何使用 1)  

2014-09-14 20:12:38 403

原创 创建桌面图标和删除桌面图标 android

第一步:设置文件添加权限:

2014-09-14 00:23:17 518

原创 textView 设置右图标

第一步: passstyle = (TextView) v.findViewById(R.id.passstyle);bpass = mPerferences.getBoolean("geatestpasww", false);Drawable img;if (bpass) {img = getActivity().getResources().getDrawa

2014-09-14 00:17:20 766

转载 Fragment

1.Fragment概述在一个Activity中, Fragment代表UI的一个部分或者一个行为。一个Activity可以结合多个Fragment对象,也可以在多个activity中使用相同Fragment字节码对应的不同对象。一个Fragment对象必须被嵌入在一个主Activity对象中,该Fragment的生命周期与主Activity息息相关。比如,当主Activity处于pa

2014-09-14 00:15:13 308

转载 MYSQL--事务处理

事务处理在各种管理系统中都有着广泛的应用,比如人员管理系统,很多同步数据库操作大都需要用到事务处理。比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!     删除的SQL语句delete from userinfo where ~~~delete from mail where

2014-08-29 21:26:07 289

原创 android多线程下载以及断点续传

使用多线程下载文件可以更快完成文件的下载,多线程下载文件之所以快,是因为其抢占的服务器资源多。如:假设服务器同时最多服务100个用户,在服务器中一条线程对应一个用户,100条线程在计算机中并非并发执行,而是由CPU划分时间片轮流执行,如果A应用使用了99条线程下载文件,那么相当于占用了99个用户的资源,假设一秒内CPU分配给每条线程的平均执行时间是10ms,A应用在服务器中一秒内就得到了990ms

2014-08-29 14:51:07 433

四川大学 数据结构

四川大学 历年期末考试题,可以用于自学考试,学习

2012-12-25

空空如也

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

TA关注的人

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