自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

changwilling的博客

android学习日记

  • 博客(129)
  • 收藏
  • 关注

原创 个人云盘NextCloud部署方案

1.简述 使用开源软件Nextcloud实现,总体部署是使用Dokcer+Nextcloud+mysql。2.部署方案####2.1 安装Docker依次执行以下命令:(1)yum安装docker yum install -y docker(2) 启动Docker及设置Docker自启动 systemctl start docker systemctl enable do...

2020-02-25 21:20:20 579

原创 Android应用使用Replugin实现插件化

        我们在开发Android应用中,会存在App越来越大,越来越管理的情况。各模块之间耦合度高、编译效率慢、项目冲突不断等问题不断困扰着我们。但是组件化开发和插件化开发提供给我们更好的解决方案。今天我来介绍下插件化开发的一个框架Replugin。Replugin的2.1.5版本已经适配Android P(9.0),是一个非常好用的框架。       首先,我们要从github上查找...

2018-11-16 13:07:02 1329

原创 关于个人开发者上线Android-App步骤浅谈

到目前来说,很多应用平台都不支持个人开发者在应用商店上线app了,一些游戏类型以及一些主题敏感的app很难在一些渠道获得审核通过。这对于app开发者尤其是个人开发者来说,绝对不是一个福音。很多个人开发者是非常希望自己做的好玩的东西可以更广泛的与别人分享,共同推进好玩的产品和应用一步一步发展的。下面我着重介绍下个人开发者如何快速在应用商店(以应用宝为例)中上线自己的app产品。       应用

2017-09-04 14:20:03 14303 2

转载 微信Tinker热修补的快速集成详细步骤

热修补相信大家都清楚是用来做啥的,这里不啰嗦了。要集成Tinker首先就是去看看他们的文档,当然微信从来不讲详细Tinker官方说明:Git地址Ok,下面是我集成的理解,希望能帮助大家少躺坑。。。。1.导包app的gradle文件中加入代码:[java] view plain copy

2017-05-03 13:38:18 367

转载 是时候客观评价Retrofit了,Retrofit这几点你必须明白!

Tamic/CSDN 尊重原创:http://blog.csdn.net/sk719887916/article/details/53613263是时候客观评价下Retrofit了,retrofit客观存在的问题的你必须要知道!在用retrofit开发很久的朋友或多或少采了巨坑,阅读源码和实践后发现并不是我们认为的那么灵活!无耻的广告又来了:导读:R

2016-12-16 17:36:21 4212

转载 android面试

和大多数的面经不同,我不是大牛,手头也没有3,4个 sp 的 offer 求比较,我只是一个非211,985的本科应届毕业生,想分享一下自己坎坷的求职历程,来给更多求职路上迷茫的应届生一些鼓励,特别是本科应届生。另外还要特别感谢北邮信安研二的赵翔,研三信安的吴博还有清华的金辉,虽然只是做了短短一两个月的同事,但是在之后一直尽其所能的帮助鼓励我。还有研三信安的胡相铎,非常感谢这位大神在技术学习上对我

2016-11-18 17:28:10 645

转载 RxAndroid学习

RxJava的简单使用基本上也了解了,其实还有一个比较好玩的就是java8才有的lambda了。lambda在android studio下的环境搭建下载java8  下面就来搭建下这个环境了,因为android不支持java8,所以需要用到一个开源库, retolambda,点这里。具体怎么使用基本上都有,这里简单地介绍下,首先就是下载java8了:下载java8,点

2016-11-11 15:07:07 288

原创 Android应用使用QQ进行第三方登录的一些问题

一、导入jar包,使用QQ开发者平台的SDKs,注意要导入两个包compile files('libs/open_sdk_r5756.jar')compile files('libs/mta-sdk-1.6.2.jar')二、使用登录的API//实例化mTencentmTencent=Tencent.createInstance(QQLOGIN_APPID,this.getAp

2016-10-24 17:47:06 5193 1

原创 Web应用设置统一错误友好界面

为应用设置统一的错误友好界面,一般在web.xml中设置如下代码:    404  /404.jsp      500  /500.jsp  但是设置后发现,浏览器不能正常跳转404.jsp或500.jsp,这是因为用户的浏览器设置问题,出错之后,浏览器会给出一个统一的错误界面,为了能够显示自己的错误友好界面,需要在404.jsp及500.jsp中加

2016-08-10 09:51:00 1911

原创 字节(byte)、二进制、字节流、字符流相关概念分析

1.字节:    字(Byte)节是长度单位。位(bit)也是长度单位。因为计算机通信和存储的时候都是以010101这样的二进制数据为基础的,这儿的一个0和1占的地方就叫bit(位),即一个二进制位。1Byte=8bit1KB=1024B1MB=1024KB(2的十次方)2.二进制 二进制数有两个特点:它由两个基本字符0,1组成,二进制数运算规律是逢二进一。 为区别

2016-07-29 16:12:19 18131 2

原创 android 获取手机联系人信息

做项目想要获取手机联系人相关信息,查了网上的很多方法,发现在一些手机上并不匹配,找到的联系人信息 并不完善,经过研究,最终找到一个比较不错的,大家可以参考修改,ContactBean是封装联系人的实体类,为了在android手机自己的应用上显示ContactLogi是联系人逻辑类,用于获取手机联系人信息,下面直接上代码吧:/** * 联系人实体类 * @author Administr

2016-06-23 15:19:18 587

转载 Android事件分发机制完全解析

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/90974631.区别:onTouch和onTouchEvent2.listView引入了滑动,就不能滚动3.图片轮询器里的图片使用Button而不用imageView?4.从源码分析android事件分发机制5.先执行onTouch,再执行onClick,onTo

2016-04-20 17:08:44 359

原创 使用ApplicationContext启动activity,发送广播,显示Toast

遇到的问题:      有时候我们需要在一些非Activity、service等没有Context的类中去进行启动activity,发送广播、显示Toast等操作,这时我们可以使用Application的Context,     通过获取Application的实体对象(注意Application全局单例),然后同构ApplicationInstance.getApplicationCon

2016-04-07 17:10:48 3941 1

原创 关于BroadCastReceiver无法接收到广播的问题

我们在做android项目的时候,很多时候会碰到自己写的广播接收器无法就收到发送的广播,这是很郁闷的事情。查看代码,也许是自己少写了取消注册,也许是action加入错误,但是这些都不是主要的错误,问题不大,但是如何不是这些问题呢,代码检查后发现很“完美”~!如果是没有经验的人,这就要费些周折了,我跟大家说下,你很可能是犯的以下的错误:广播接收器如果在activity中注册,则它跟随着a

2016-03-15 17:43:48 17463 1

原创 关于BaseAdapter的notifyDataSetChanged()方法无法更新list数据的研究

今天为了项目,写了一个联系人项目的Demo,在通过Xutils的DBUtils工具实现增删改差之后,想调用notifyDataSetChanged方法直接更新数据,刷新listView界面显示,但是非常遗憾的失败了,通过Debug,我发现了出现这种现象的原因:调用这个方法之后,会再调用adapter的getview方法,而这样操作的话,因为传入adapter的数据是指向的还是之前的数据,更新后的数

2016-03-03 16:32:28 2475

转载 关于android中手势操作相关类GestureDetector类的分析

用户手势检测-GestureDetector使用详解2014-09-24 11:16 13269人阅读 评论(8) 收藏 举报 分类:5、andriod开发(122) 版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]前言:今天终于可以正常上班了,阿里的百技真的真的太累了,作为队长,不仅要

2016-01-26 21:31:18 823

转载 微信小程序页面布局

一,微信小程序页面布局方式采用的是Flex布局1.Flex布局,是W3c在2009年提出的一种新的方案,可以简便,完整,响应式的实现各种页面布局。2.Flex布局提供了元素在容器中的对齐,方向以及顺序,甚至他们可以是动态的或者不确定的大小的。...

2019-04-09 11:23:14 908

转载 Android自定义View的三种实现方式

在毕设项目中多处用到自定义控件,一直打算总结一下自定义控件的实现方式,今天就来总结一下吧。在此之前学习了郭霖大神博客上面关于自定义View的几篇博文,感觉受益良多,本文中就参考了其中的一些内容。  总结来说,自定义控件的实现有三种方式,分别是:组合控件、自绘控件和继承控件。下面将分别对这三种方式进行介绍。(一)组合控件  组合控件,顾名思义就是将一些小的控件组合起来形成一个新的控件,这些小的控件多...

2018-02-28 18:01:18 1087

转载 WPF中图形表示语法详解(Path之Data属性语法)ZZ

先看显示效果: (图1) XAML(代码A): http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >   PathFigureCollection的表示方法--> Path

2018-01-17 09:03:37 339

转载 【LeetCode-面试算法经典-Java实现】【所有题目目录索引】

LeetCode算法题典  LeetCode是一个准备面试非常有用的网站,是非常值得去的地方,里面都是一些经典的面试题,这些题目在Google,Microsoft,Facebook,Yahoo等大型互联网公司面试题中出现过,并且题目分为易,中,难三等,也按专题进行了分类,做题时可以根据自己的喜好进行。本人现在正在LeetCode上进行做题练习,并且将做的过程记录下来,供自己以后复习

2017-12-29 10:12:45 367

转载 七大查找算法

阅读目录1. 顺序查找2. 二分查找3. 插值查找4. 斐波那契查找5. 树表查找6. 分块查找7. 哈希查找  查找是在大量的信息中寻找一个特定的信息元素,在计算机应用中,查找是常用的基本运算,例如编译程序中符号表的查找。本文简单概括性的介绍了常见的七种查找算法,说是七种,其实二分查找、插值查找以及斐波那契查找都可以归为一类——插值查找。插值查找和斐波那契查找是在二分查找的基础上的优

2017-12-27 11:27:41 272

转载 Android hdpi ldpi mdpi xhdpi xxhdpi适配详解

1、了解几个概念(1)分辨率。分辨率就是手机屏幕的像素点数,一般描述成屏幕的“宽×高”,安卓手机屏幕常见的分辨率有480×800、720×1280、1080×1920等。720×1280表示此屏幕在宽度方向有720个像素,在高度方向有1280个像素。(2)屏幕大小。屏幕大小是手机对角线的物理尺寸,以英寸(inch)为单位。比如某某手机为“5寸大屏手机”,就是指对角线的尺寸,5寸×2.54厘

2017-12-26 14:38:11 330

转载 WPF中的Resource:DynamicResource与StaticResource的区别

什么叫WPF的资源(Resource)?资源是保存在可执行文件中的一种不可执行数据。在WPF的资源中,几乎可以包含图像、字符串等所有的任意CLR对象,只要对象有一个默认的构造函数和独立的属性。也就是说,应用程序中非程序代码的内容,比如点阵图、颜色、字型、动画/影片档以及字符串常量值,可将它们从程序中独立出来,单独包装成"资源(Resource)"。 静态资源(Stati

2017-12-08 10:05:14 350

转载 Template、ItemsPanel、ItemContainerStyle、ItemTemplate

它代表的是一个控件的内部结构组成部分(Visual Tree)。如:Button的默认Template外面是一个边框,里面是文字描述。如果我们要把普通的文字Button改为图片按钮的话就必须要重写Button的模板,要在里面加上一个Image,即已经把Button的Template修改了。在WPF中所有继承自contentcontrol类的控件都含有此属性,(继承自FrameworkElement

2017-12-05 15:54:27 188

转载 字符串匹配的KMP算法

字符串匹配是计算机的基本任务之一。举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"?许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起头的那个K就是著名科学家Donald Knuth。这种算法不太容易理解,网上有很多解释,但读起来都很

2017-11-08 11:52:33 131

转载 8大排序算法

概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。         当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。   快速排序:是目前基于比较的内部排序中被认为是最好的方法

2017-10-31 15:56:47 201

转载 软考错题总结

1.机器字长为n位的二进制数可以用补码来表示2^n个不同的有符号定点小数。补码表示定点小数,范围是:[-1,(1-2^(-n+1))],这个范围一共有2^n个数。8位原码和反码能够表示数的范围是-127~1278位补码能够表示数的范围是-128~127补码就是二进制表示负数的一种方法,引入了补码概念,负数的补码就是反码加一,而正数不变,正数的原码反码补码是一样的。在

2017-10-30 16:50:53 627 1

转载 XPath--解析Html

导语:爬虫爬取的界面,大致分为静态界面、ajax异步加载、动态界面。静态界面直接获取HTML对象,然后使用XPath获取值最有用的路径表达式:表达式描述nodename选取此节点的所有子节点。/从根节点选取。//从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。.

2017-10-26 13:45:54 230

转载 五种典型开发周期模型(瀑布、V、原型化、螺旋、迭代)

总结一下经常可以见到的系统开发周期模型。    在过去的几年里,可以很奇葩的碰到类似于“创业项目库”这种需求非常明确,工作量十分可控,对质量要求比较低,业务建模比较easy,功能构成比较少的“面子项目”。类似于这种项目,采用传统意义上的瀑布模型就非常合适了,如果范围控制和风险控制做的比较好的话,真的如同一个瀑布一样,会“飞流直下三千尺”,直接将项目送到客户的小机上,部署运行,大家欢乐的拿到绩效

2017-10-24 10:59:43 23825 1

转载 简单聊聊Android Architecture Componets

Google IO大会进行中,本次大会Android最大的新闻当属Android O以及Kotlin被官方认可。我发现了原来还有发布官方的架构库,以及推荐使用指南,分享给大家。架构原则关注分离模型驱动UI,优先持久化模型新架构如上图所示,为新的架构模式:Activity/FragmentUI层,通常是Activity/

2017-10-24 08:50:50 215

转载 WPF Knowledge Points - 控件状态利器:VisualStateManager详解

VisualStateManager带来了什么?在WPF中我们可以用各种Trigger配合Animation,Template来实现绚丽控件的外观变换,用后台逻辑来定义和标注控件不同的状态。.Net Framework 4.o开始引入了VisualStateManager,主要为了控制控件的状态转换,和其间涉及的外观行为。从控件状态迁移层面上管理空间的外观行为,在设计级别上感觉层次更清晰,

2017-10-20 11:28:41 889

转载 WPF Template模版之DataTemplate与ControlTemplate的关系

1. DataTemplate和ControlTemplate的关系    学习过DataTemplate和ControlTemplate,你应该已经体会到,控件只是数据的行为和载体,是个抽象的概念,至于它本身长成什么样子(控件内部结构),它的数据会长成什么样子(数据显示结构)都是靠Template生成的。决定控件外观的是ControlTemplate,决定数据外观的是DataTempla

2017-10-19 13:51:26 232

转载 数据结构:堆

堆常用来实现优先队列,在这种队列中,待删除的元素为优先级最高(最低)的那个。在任何时候,任意优先元素都是可以插入到队列中去的,是计算机科学中一类特殊的数据结构的统称一、堆的定义最大(最小)堆是一棵每一个节点的键值都不小于(大于)其孩子(如果存在)的键值的树。大顶堆是一棵完全二叉树,同时也是一棵最大树。小顶堆是一棵完全完全二叉树,同时也是一棵最小树。注意:堆中任一

2017-10-16 12:12:12 162

转载 哈希表——线性探测法、链地址法、查找成功、查找不成功的平均长度

一、哈希表1、概念       哈希表(Hash Table)也叫散列表,是根据关键码值(Key Value)而直接进行访问的数据结构。它通过把关键码值映射到哈希表中的一个位置来访问记录,以加快查找的速度。这个映射函数就做散列函数,存放记录的数组叫做散列表。2、散列存储的基本思路       以数据中每个元素的关键字K为自变量,通过散列函数H(k)计算出函数值,以该

2017-10-16 10:29:57 1006 1

转载 从Dispatcher.PushFrame()说起

写在前面:本文实际上是在开发过程中解决特殊问题的一个总结。由于我并非MS员工,因此可能有讲解得不尽正确的地方,望您指出。为了您阅读方便,请对照.net源码进行阅读(源码获取方式已列出)。  相信您在使用WPF的过程中也遇到过这种问题:如果UI线程执行了非常耗时的计算并尝试在执行过程中更改UI组成中的内容,WPF界面并不会立即发生更改。对于需要给出即时信息的用户需求而言,WPF的这种延迟绘制

2017-10-11 17:38:28 409

转载 C# Show() 与 ShowDialog() Form.Show()与application.run()区别

ShowDialog()弹出模式化的窗体Show()弹出非模式化的窗体模式窗体,在关闭或隐藏前无法切换到主窗体。非模式窗体,变换焦点使不必关闭窗体总结:显示重要的信息,还是用模式窗体,如删除文件,可以确保用户正真想要删除的是该文件非模式的,窗体访问的顺序没有办法得知,比较适合显示程序的一些相关信息。   Application

2017-10-11 09:17:29 1304

转载 WPF窗体的生命周期

和所有类一样,窗口也有生存期,在第一次实例化窗口时生存期开始,然后就可以显示、激活和停用窗口,直到最终关闭窗口。1、显示窗体构造函数 Show()、ShowDialog()方法:Show()方法显示非模态窗口,这意味着应用程序所运行的模式允许用户在同一个应用程序中激活其他窗口。ShowDialog()方法显示模态窗口,这个基本和WinForm类似 当初始化窗口时,将引发 Sourc

2017-10-10 08:51:47 2539

转载 python—命名规范(转)

文件名全小写,可使用下划线包应该是简短的、小写的名字。如果下划线可以改善可读性可以加入。如mypackage。模块与包的规范同。如mymodule。类总是使用首字母大写单词串。如MyClass。内部类可以使用额外的前导下划线。  函数&方法函数名应该为小写,可以用下划线风格单词以增加可读性。如:myfunction,m

2017-09-27 11:44:50 189

转载 二分法查找时间复杂度计算

查找数据长度为N,每次查找后减半,第一次   N/2...第k次   N/2^k最坏的情况下第k次才找到,此时只剩一个数据,长度为1。即 N/2^k = 1查找次数 k=log(N)。

2017-09-26 16:07:51 4659

转载 时间复杂度和空间复杂度详解

没有挤公交来上班过,就不知道生活的压力有多大。算法的时间复杂度和空间复杂度合称为算法的复杂度。1.时间复杂度(1)时间频度 一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数

2017-09-26 15:49:04 234

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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