自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

有酒平步上青天

我亦无他 惟手熟尔

  • 博客(174)
  • 资源 (25)
  • 收藏
  • 关注

原创 React Native 版本的商米打印 Demo

React Native 版本的商米打印 DemoReact Native 集成商米打印模块。快速集成import SunmiPrintModule from './SunmiPrintModule';SunmiPrintModule.xxx项目地址:https://github.com/chuwuwang/sunmi-rn-print-demoAPI1. initPrinter()初始化商米打印机。参数None返回值Promiseresolve(): 包含一个 S

2021-10-19 11:27:18 745

原创 二分搜索

查找搜索在我们平时的开发中,用到的还是挺多的,所以对于一般的搜索算法,我们也是需要了解一下的。问题:查找指定元素的位置 public int binarySearch(int[] array, int target) { // O(Log2N) O(1) if (array == null || array.length == 0) return -1; ...

2018-03-30 21:27:10 1234

原创 链表的合并

对于链表的操作,还有几个是比较常用的,比如:将两个已排序的链表合并成一个长的排序链表;在已排序的链表中插入一个元素;对一个无序链表根据给定的某个值,进行分区。现在,我们就来看看这三个问题。问题:如何将两个排序链表合并成一个长排序链表分析:有两个链表curr1,curr2,构建一个新的链表 dummy,遍历 curr1 和 curr2,比较 curr1 和 curr2,谁小移动谁,用 c...

2018-03-25 22:20:43 2989

原创 学习目标

前沿技术插件化、热更新、进程保活、MVP/MVVM组件化、启动优化、Kotlin、技术点障碍Android基础:Fragment、Service、Binder、Activity、Broadcast、WebView安全漏洞异步消息处理机制:Handler、AsyncTask、IntentService、HandlerThreadView相关技术:View的渲染喝绘制、事件分发、Li...

2018-03-23 16:30:19 1197

原创 集体拍照

集体拍照排序今天一朋友面试,遇到一个算法题,我正好看到了,就来解一下,不是最优解,先记录一下吧。要求如下:每排人数为N/K(向下取整),多出来的人数全部站在最后一排后排所有人的个子都不比前排任何人矮每排中最高者站中间(中间位置为m/2+1,其中m为该排人数,除法向下取整)每排其他人以中间人为轴,按身高非增序,先右后左交替入队站在中间人的两侧(例如5人身高为190、188、186...

2018-03-13 20:52:57 1324

原创 谈一谈对Activity的理解

一、Activity的生命周期Activity的基本生命周期如下代码 所示:public class MyActivity extends Activity { protected void onCreate(Bundle savedInstanceState); protected void onStart(); protected voi...

2018-02-24 11:17:52 542

翻译 Develop>Training(20)---执行网络操作

官方链接:https://developer.android.com/training/basics/network-ops/index.html 这节课讲解了网络连接参与一些基础的任务,监测网络连接(包括网络改变),让用户可以控制App的网络使用情况。这节课也描述了怎样解析和使用XML数据。 这节课包含了一个应用程序的例子,介绍了怎样执行常见的网络操作。 你可以在GitHub上

2018-01-25 15:49:32 506

原创 2017年书单

实体书《第一行代码-第二版》这是Android大牛郭霖的第二本书了,买的还是郭神的签名版。对于我这种Android开发来说,可以收藏了(‘_’)。相比较与《第一行代码》,本书增加了一些Android 6.0的新特性,像动态申请权限,低功耗,包括一些Material Design设计原则,开发工具由Eclipse切换为Android Studio,其中的许多知识点还是值得一览的。当然,如果要看一些深入

2018-01-03 22:00:42 1849

原创 ubuntu 16.04 设置root用户初始密码

安装ubuntu成功后,都是普通用户权限,并没有最高root权限,如果需要使用root权限的时候,通常都会在命令前面加上 sudo 。有的时候感觉很麻烦…我们一般使用su命令来直接切换到root用户的,但是如果没有给root设置初始密码,就会抛出 su : Authentication failure 这样的问题。所以,我们只要给root用户设置一个初始密码就好了。输入 sudo passwd 命令

2017-06-24 16:08:40 63634

原创 Java 8 Stream API

1.创建Stream流(Stream) 到底是什么呢?是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列。集合讲的是数据,流讲的是计算。Stream遵循“做什么,而不是怎么去做”的原则。Stream与集合的区别:Stream 自己不会存储元素。元素可能被存储在底层的集合中,或者根据需要产生出来。Stream 不会改变源对象。相反,他们会返回一个持有结果的新Stream。Stream 操

2017-04-23 18:53:35 836

原创 Java 内存分配策略

参考来源于深入理解Android虚拟机一书。1. Java 虚拟机栈 VM Stack 栈中的数据是以栈帧(Stack Frame)的格式存在的,虚拟机在执行每一个方法的调用时都会创建一个栈帧的数据结构,栈帧包括了方法的局部变量表(输入参数、输出参数、方法内的变量)、栈操作(记录出栈、入栈的操作)、动态链接、方法、类文件等一些额外的附加信息。局部变量表中存放了编译期的基本数据类型(boolean、

2017-04-11 20:58:14 736

原创 Java 8 Lambda表达式

Java 8 出来很久了,正好在看RXJava,据说学习了lambda和stream api,可以能快速的理解RXJava,于是就来看看Java 8的新特性。 为什么使用 Lambda 表达式?Lambda表达式是一个匿名函数,是一段可以传递的代码,因此它可以被执行一次或多次。可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。以前我们编写一个匿名内部类:

2017-04-10 00:12:49 697

原创 IntentService源码分析

IntentService是Service类的子类,用来处理异步请求。客户端可以通过startService(Intent)方法传递请求给IntentService。IntentService在onCreate()函数中通过HandlerThread单独开启一个线程来处理所有Intent请求对象(通过startService的方式发送过来的)所对应的任务,这样以免事务处理阻塞主线程。执行完所一个In

2017-03-29 00:39:41 508

原创 Python编写打飞机小游戏

这是一个简单的打飞机的游戏,运行main.py即可!最近在学python,总要写一定小项目练练手的。所以就写了个仿微信打飞机的小游戏,有参照网上开源的项目的~后续功能正在完善中…效果图代码实现本项目是基于pygame模块的,所以如果要运行程序,需要安装pygame模块。resources包下存放一些资源文件,包括音频和图片。主体代码在main.py文件中,model.py为一些项目中用到的模型。代

2017-03-23 22:13:16 5229

翻译 Develop>Training(19)---设备连接无线网

官方链接:https://developer.android.com/training/connect-devices-wirelessly/index.html 除了使用云通讯,android无线API也能够让处在同一个局域网的设备相互通讯,甚至设备可以不再网络上,但是在物理附近上。此外,网络服务发现(NSD)能够进一步的允许一个应用程序寻找附近运行服务的设备,在它们是能够通信的。把这

2017-03-11 21:40:43 825

翻译 Develop>Training(18)---添加动画

2017年,好好的整理一下自己所学的知识,温故而知新,可以为师矣~以前的博客写的很零散,希望以后写的条理性更强些。不管做什么,都得有个规范。对于求学方面,每天一小步,坚持前进。 官方链接:https://developer.android.com/training/animation/index.html 动画能够添加微妙的视觉线索,通知用户怎样进入你的app,从app的交互界面来改善

2017-01-19 23:28:43 1021

原创 ListView的下拉刷新和上拉加载

我们公司以前有道面试题,让开发人员当场写一个ListView的下拉刷新和上拉加载,时间2个小时左右,允许有微量Bug。自己想一想,也不知道能不能写的出来,所有今天有时间,参考了网上的一些资料,先写一个练手下。先看下效果图:实现原理ListView有一个addHeaderView()和addFooterView()方法,就是添加一个头布局和一个脚布局。主要通过这两个方法来实现。初始化的时候,添加头布

2016-12-11 21:17:36 615

原创 Android 5.0 Usb调试拦截分析及修改

当我们调试安卓机器时,第一次插上usb线,会弹出一个授权的对话框,(前提是打开了usb调试功能)点击确认,才会允许调试.如果我们想机器默认就可以调试该怎么做呢?如果我们想动态拦截,需要用户输入帐号密码,才确认是否可以调试,该怎么做呢?或者只是单纯的想改变这个不好看的UI,又该怎么做呢?分析的源码基于android 5.0.2_r1前面所说的情况1,想在默认情况下就允许usb调试,需要修改源码下的/b

2016-11-17 22:35:34 3896 6

原创 ListView和ScrollView的下拉和上拉的回弹效果

Android中是没有下拉和上拉的回弹效果的,但是有滚动到顶部和底部的光影效果,由EdgeEffect类来操作的。但是我们发现QQ,微信,支付宝等在下拉和上拉的都有一定的回弹效果,用户操作起来感觉蛮流畅的~源码链接:https://github.com/chuwuwang/ZhouTools效果最近仿照着写来一个ListView和ScrollView的相同效果,用起来也是蛮方便的,先看下效果。原理在

2016-11-13 23:29:05 5459 2

原创 Android Dialog 弹出 居右、居左、居中

Dialog或者Avtivity以Dialog形式弹出后,一般弹出默认是居中的。但是,我们有时需要它从右边弹出,一直居右。或者从左边弹出,一直居左。修改纯Dialog的弹出位置:Dialog dialog = getDialog();Window window = dialog == null ? null : dialog.getWindow();if (dialog != null && w

2016-11-08 20:00:58 11842

翻译 Android 7.0 Nougat(牛轧糖)---对开发者来说

android 7.0出来了。让你的app准备迎接最新的android版本吧,支持节省电量和内存,这样新的系统行为。使用多窗口UI、直接恢复通知以及其他操作来扩展你的app。android 7.0介绍了各种各样的新功能给用户和开发者, 本文重点介绍面向开发者的一些新功能。确保检查android 7.0的行为变化,了解有关平台的变化可能会影响你的app。如果要了解更多的关于用户的新功能,

2016-11-05 22:00:20 7700

原创 Android双屏驱动Service架构实现

做程序员苦逼的地方就在于,当公司决定做什么的时候,是不会跟你商量的,只会跟你说,xxx,这个可能需要你来实现一下。fuck,我还没有想好实现思路了。Android双屏显示,可能会和别的双屏机制不同,大多数情况下是一个android系统,分主副屏而已。我司的硬件是两个android系统,两个屏幕,内部通过一根usb直连(这根usb连接线很稳定,代工厂和我们讲的,坑~)。双屏运行两个独立的android

2016-10-23 21:17:00 3727 6

原创 仿钉钉联系人详情界面--Material Design的使用

最近无意中看到钉钉这个App,发现联系人详情这个界面的效果还是蛮好看的。正好最近在看Material Design,所以想看看可不可用Android系统原生的来实现这种效果。先看效果图:这是有一个推滑的特效的,在钉钉上有一个头像联动的效果,这个暂时没有实现,有点区别。主要特点: 1.名字大小的缩放 2.圆形头像的固定 3.背景的模糊效果 4.下面详情的推滑效果以上的效果都是用Material

2016-09-05 21:20:37 6067 3

翻译 Develop -- Training(十七) -- 动画视图的使用场景和转换

一个用户界面经常被改变是由于用户输入和其他事件。例如,一个活动界面包含了一个表单,用户可以在表单中搜索,当用户提交它并在表单中显示搜索结果列表。在这些情况下提供了视觉的连续性,在用户界面上有不同层次视图的动画变化。这些动画给用户反馈他们的操作事件和帮助他们怎样使用这个app。android包括转换框架,使你能够很容易的在两个视图层级之间进行动画改变。这个框架动画的视图可以在运行时刻改变他们

2016-08-29 21:53:45 1154

原创 PackageInstaller 5.0源码分析静默安装与静默卸载

现在市面上各大手机的应用市场,都有静默安装和卸载的功能。当然,个人认为,这是一个流氓行为,可能你会莫名其妙的就安装了一堆应用。像360手机助手、豌豆荚之类的,虽然很像静默安装,其实不是。他们一是通过获取root权限,用pm install命令来静默安装apk的;二是通过智能安装服务,也就是Android中的无障碍服务,模拟点击事件来安装应用。现在我们只分析Android中的静默安装和卸载,也就是Pa

2016-08-26 18:40:23 4994 3

原创 Linux 压缩和解压 zip命令

zip的压缩格式包应用场景还是很多的,在Linux和windows上都适用。压缩zip文件 zip -r 要生成的压缩文件名称.zip 目录1 目录2 文件1 文件2解压zip文件 unzip 要解压的文件.zip – 解压到当前目录下 unzip -o -d 要解压到的目录 被解压的文件.zip

2016-08-23 10:16:39 777

原创 <<App研发录:架构设计、Crash分析和竞品技术分析>>读书笔记

研发录者,有友荐之,遂买观之,颇有感触。大惊呼:书之甚好。吾之开发,一二年也。所览书而略有一二,得此书,如获一宝。故焚香沐浴,静坐以观之。然不知时也,东方微白。吾起而立,精神抖数,飘飘乎策车而劳之。兢兢业业,不敢怠荒。劳回而身疲,心有所系。捧书续观,书中所叙,乃为精品,著书者包建强有言,精而读,细而品,做于心,十年一剑,花艳群芳。每览此书兴感之由,总有所悟, 学而用之,才有所惜。藏之,藏之。

2016-08-13 11:27:19 885

原创 探究Android 关于Activity调用finish()方法后的内存释放情况

公司一直在做自己的硬件产品,但是运行内存只有512M,所有一旦后台的驻留应用过多,前台的应用就会很卡断。当然,原因有很多,我们产品的cpu有瓶颈,计算过慢,导致卡断。后台的常驻服务和应用过多,像QQ,微信,360,豌豆荚之类的。运行内存不足,内存管理机制就开始起作用,其中又涉及到swap分区等linux的相关知识…其实我们做应用层的,正常情况下,只需要关心自己的app是否会内容泄露,当设备内存不足时

2016-07-24 22:22:56 16084 1

翻译 Develop -- Training(十六) -- 显示绘图和OpenGL ES

Android framework提供了许多标准的工具,来创建有吸引力的、功能丰富的用户图形界面。但是,如果你想要更多的控制权,比如在应用程序的屏幕上绘图,或者冒险进入三维图形,你需要使用不同的工具。通过Android framework提供的OpenGL ES的API提供了一套显示高端的工具,动画图像超出你的想象,许多Android设备的图像处理单元得到了加速(GPUs)。这节课主要开发一个Ope

2016-07-24 00:06:46 1812

原创 ListView去除默认的点击效果和分割线

Android ListView去除默认的分割线android:divider="@null"去除默认的黄色的点击效果android:listSelector="@android:color/transparent"

2016-07-22 15:48:44 2437

原创 Java集合类库 LinkedList 源码解析

基于JDK 1.7,和ArrayList进行比较分析Java已经有了ArrayList,用来存放元素,对元素的操作都很方便。为什么还会有LinkedList呢?我们都知道ArrayList获取元素很快,但是插入一个元素很慢,因为ArrayList底层维护的是一个数组,往数组中的某个位置插入一个元素,是很消耗资源的。而LinkedList插入元素很快,获取任意位置的元素却很慢。这是为什么呢?底层又是怎

2016-07-16 17:16:38 2635 1

原创 Java集合类库 ArrayList 源码解析

集合类库是Java的一个重大突破,方便了我们对大数据的操作。其中 Arrays 和 Collections 工具类可以帮助我们快速操作集合类库。ArrayList的继承结构图继承自 AbstractList 抽象类,在上层是 AbstractCollection 抽象类,直接去 AbstractCollection 类去看看。AbstractCollection 类主要实现了 Collection

2016-07-10 01:18:08 2969

原创 <<从0到1 开启商业与未来的秘密>>读书笔记

第一次有了从思想上颠覆的感觉,反主流思维?我在想,是不是创业者的思维方式都和普通人不同的,他们都能看到事物不同寻常的一面。从0到1,从无到创新,从常规到颠覆,打破现有的局面,开创新的环境格局,从而建立新的市场结构。开创者享受创新红利,从而获得丰厚的回报,在这个利基市场里面,他是规则的缔造者,他享受绝对的垄断地位。但同时,他又向外部发出一个信号,我们的竞争很激烈,我们占据的市场很少,我们的资源消耗很大

2016-07-04 01:19:08 1741

翻译 Develop -- Training(十五) -- 显示高效位图

学习怎样使用常见的技术处理并加载一个 Bitmap 对象,保持用户界面(UI)组件的响应,并且避免超过应用程序的内存限制。如果你不小心的话,Bitmap 可以快速的消耗内存预算,主要会导致应用程序崩溃由于一个可怕的异常:java.lang.OutofMemoryError: bitmap size exceeds VM budget.下面有很多原因,为什么在你的应用程序加载 Bitmap 的时候会很

2016-06-30 00:38:11 4122 1

原创 <<设计模式-可复用面向对象软件的基础>>读书笔记

设计模式有多重要,每个做开发的人都清楚。弄清楚设计模式很难,能熟练运用就更难了。读别人的代码是 一件很享受的事情,因为可以挑比人代码的不足,从而产生优越感。但是,如果你突然发现别人的代码写的特别好,有好多东西看不明白。找不到具体实现,找不到调用位置的时候,你会很尴尬的。人家代码封装的太好了,我们需要学习了,来学习他的代码,学习他的抽象思维。起初,我写代码,都是连在一起的,一个类我写过一万多行的,一

2016-06-25 21:55:07 1877 2

翻译 Develop -- Training(十四) -- 打印内容

Android 用户经常在他们的设备上查看完整的内容,但是有时候在一个屏幕上不能完全地显示某个人的一些信息。能够打印信息从你的 Android 应用程序给用户看见较大的内容从你的应用程序或者分享其他人的应用程序,但不使用你的应用程序。打印也允许他们创建一个快照信息,而不依赖于有一个设备、足够的电池电量、或者一个无线网连接。在 Android 4.4 或者更高,该框架提供了打印图片和文档的服务,直接从

2016-06-19 03:23:33 5089 2

原创 Android 修改开机动画(bootanimation)

Android 系统自带的开机动画,是一个白色的 “android” 文字在闪动。我们可以修改这一动画,换成自己喜欢的动画。修改开机动画当然,修改开机动画我们得有 root 权限。(前提,必须)一般的做法是替换 Android 设备 system/media/bootanimation.zip 文件。1.首先通过 adb push 命令将文件上传到 sdcard 的根目录下。2.然后通过 adb s

2016-06-06 20:58:36 22375 4

原创 DrawerLayout + NavigationView 侧滑菜单,ViewPager + Fragment 快速构建主界面

安卓的 Material Design 添加了不少的新控件,可以帮助我们快速开发。比如侧滑菜单、浮动按钮、导航条(不是以前蛋疼的ActionBar)、菜单条,还自带了不少特效,当然只要从API 17以上才有效果。有的是19,有的是21。所以,如果要做兼容的话,也是比较蛋疼的。但好在目前的趋势是,4.4一下的手机也是越来越少了,最好都是5.0的就好了。以前的各种开源大神写的依赖库,虽然很好用,但是没用

2016-06-06 01:08:25 4533

原创 Android Material Design 一些属性详解

android:windowTranslucentStatus:状态栏是否半透明。如果是true的话,你会发现你的Toolbar陷入到状态栏里面了,所以为了预留空间,需要下面的属性。"android:windowTranslucentStatus">trueandroid:fitsSystemWindows:基于系统界面(比如状态栏)调整View的布局,如果是true的话,它就会给系统界面

2016-06-01 23:09:56 810

原创 <<沿途的向阳花>>读书笔记

十个做技术的,九个身体都不是很好。程序员真的不是一个轻松的职业,枯燥、无聊、常人不懂的思维,但我们就是因为喜欢,一头扎进去了,无法自拔。我喜欢写代码时的那种感觉,出bug时的那种焦躁,项目上线时的那种喜悦,遇到黑科技时的那种激动,当然还有身体上的颓废。 以前上大学的时候,曾说男人不抽烟不喝酒,生活不如一条狗。括弧、单身狗不算。自从开始码代码了,彻底不喝酒了,这五六年的烟,是真不好戒。身体真是越

2016-05-29 02:16:39 988

google官方动画示例源码

google官方动画示例源码。

2017-01-18

DrawerLayout侧滑菜单,ViewPager + Fragment 快速构建主界面

DrawerLayout + NavigationView 侧滑菜单,ViewPager + Fragment 快速构建主界面的demo。http://blog.csdn.net/u012301841/article/details/51592814

2016-12-20

静默安装测试的demo

静默安装测试的demo,可以测试静默安装。

2016-08-26

android 静默安装代码

android 静默安装代码,根据源码改造,实现自己的静默安装。

2016-08-26

google官方加载图片处理demo

google官方加载图片处理demo

2016-06-29

google官方加载图片demo

google官方加载图片demo

2016-06-28

Android 开机动画

Android 开机动画,bootanimation.zip

2016-06-06

android 系统程序源码

android 系统程序源码中的androidManifest文件集合。

2016-03-18

Fiddler抓包工具

Fiddler,抓包工具,获取服务器的请求数据。

2016-01-28

Android JS桥交互

Android JS桥交互("Uncaught ReferenceError: xxx is not defined or xxx has no method")代码例子

2015-11-18

Retrofit 2.0使用详解的例子

Retrofit 2.0使用详解,配合OkHttp、Gson,Android最强网络请求框架

2015-11-06

Retrofit+OkHttp+Gson+okhttp-urlconnection-2.5.0

Retrofit+OkHttp+Gson+okhttp-urlconnection-2.5.0,okio-1.6.0

2015-11-06

Activity左边滑出,右边滑入的动画切换的例子

Activity左边滑出,右边滑入的动画切换的demo,链接:http://blog.csdn.net/u012301841/article/details/46920809

2015-07-17

今日资讯(一款实现浏览实事的资讯平台app)

一款实现浏览实事的资讯平台app,http://blog.csdn.net/u012301841/article/details/46687447的代码实例。

2015-06-30

android消息机制EventBus

EventBus是基于Otto的消息发送机制,经过开源大神们的封装,已经越来越好用了。

2015-02-25

localService

退出应用app后,消息来了,会突破锁屏,点亮屏幕的demo。

2014-12-12

dom.sax.pull解析

Java解析XML的三种方式 Ø Android中,解析Xml数据的三种方式: Ø 1、DOM(org.w3c.dom) Ø “文档对象模型”方式,解析完的Xml将生成一个树状结构的对象。 Ø 2、SAX(org.xml.sax) Ø SimpleAPI for XML,以事件的形式通知程序,对Xml进行解析。 Ø 3、XMLPULL(org.xmlpull.v1) Ø 类似于SAX方式,程序以“拉取”的方式对Xml进行解析。

2014-08-24

android音乐播放器

这是个最简单的音乐播放器,只涉及到一些MediaPlayer类的使用。

2014-07-24

Android学习之笔记---Animation的使用

Animation从总体来说可以分为两类: Tweened Animations:该类提供了旋转,移动,伸展,淡入淡出等效果 Frame-By-Frame Animations:该类可以创建一个Drawable序列,这些Drawable可以按照指定的事件间隔一个一个显示,和动画片差不多。

2014-07-21

共享数据的测试

共享数据,ContentProvider类的代码测试

2014-07-10

ContentProvider共享数据的使用

ContentProvider共享数据的使用。存储数据的代码。

2014-07-10

SQLite Developer

这个操作sqlite数据库的一个小型插件,安装上就可以使用了。

2014-07-09

SQLite数据库存储数据代码

SQLiteDatabase还专门提供了对应于添加、删除、更新、查询的操作方法: insert()、delete()、update()和query() 。

2014-07-09

安卓小程序_拨打电话

安卓小程序_拨打电话,实现2个模拟器之间的互相拨打电话。

2014-07-02

空空如也

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

TA关注的人

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