自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 手把手反编译apk

2020-12-09 17:44:14 166

原创 Dart基础语法归纳

定义一个函数//定义一个函数printBookName(String bookName){print('The book name is $bookName'); //输出信息到控制台}//程序执行入口main(){ var book ='第一行代码';//声明和初始化变量 printBookName(book); //调用函数}从上面的范例可以总结以下几点:单行注...

2019-08-21 23:03:58 422

原创 AndroidStudio运行第一个Flutter项目

创建新应用(1) 在AndroidStudio中选择File->New Flutter Project,或者直接“Start a new Flutter project”(2)选择Flutter application作为project类型,然后点击“Next”(3)输入项目名称(默认为flutter_app),然后点击"Next"(4)输入项目的包名,点击Finish(5)等待...

2019-08-18 13:18:47 3751 3

原创 NestedScrollView嵌套Recyclerview,定时刷新的时候导致Recyclerview抢占焦点,列表置顶了

问题原因NestedScrollView嵌套Recyclerview时,刷新Recyclerview的条目之后,发现Recyclerview会被顶上去,后来发现是因为Recyclerview抢占焦点导致的解决方案在xml布局中的NestedScrollView节点上添加 android:focusableInTouchMode=“true”在Recyclerview直属父布局上加andro...

2019-08-03 15:11:04 918

原创 自定义view合集,方便大家查找和学习

从零起步,从入门到懵逼的自定义View教程自定义控件三部曲Android 从0开始自定义控件之 View 基础知识与概念Android开发之自定义控件(一)—onMeasure详解Android自定义View的官方套路自定义控件从入门到精通自定义View新手实战-一步步实现精美的钟表界面让你的自定义View技能+1,快来学习吧!LineBreakLayout-自动换行的标签容器自...

2018-11-27 00:26:49 330

原创 AndroidStudio对Apk打包名称统一命名管理

Android3.0以下在app的build.gradle文件的android{}目录下添加android.applicationVariants.all { variant -> variant.outputs.each { output -> def outputFile = output.outputFile if (outputF...

2018-11-22 12:32:39 722

原创 解决gradle下载依赖慢的问题

修改项目根目录下的文件 build.gradle ,使用国内阿里云镜像仓库地址。buildscript { repositories { maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'} }}allprojects { repositories { m...

2018-11-20 10:47:04 3322

原创 小程序开发笔记

相关链接小程序注册先登录后,然后在设置-开发者设置中找到小程序的AppId下载小程序的开发者工具开发者工具下载后直接通过扫码登录然后可以选择小程序项目或公众号网页项目这里我们选择小程序项目,填入申请到的AppId,然后给项目取个名字,然后选择quickStart项目(项目所处文件夹为空时才有),你就得到了一个范例项目,如下所示:项目代码结构分析.json 后缀的 JSON ...

2018-11-08 22:39:29 410

原创 Android混淆之Proguard的语法总结

前言首先我们来思考这样一个问题,为什么我们需要混淆项目代码?原因很简单,作为开发者或者企业,你总不会希望自己辛辛苦苦创造出来的东西轻易的被黑客反编译或破解吧,尤其是现在很多app项目嵌入了支付的功能,如果被发现了代码漏洞,后果不堪设想,为了有效预防这个问题,Android中提供了proguard文件来对项目进行混淆。proguard的官方介绍Proguard通过移除没有用到的代码以及...

2018-11-04 18:10:37 695

原创 Android实战之Jsoup爬取简书网站首页详解

前言我们都知道,个人开发者想要独立完成一个属于自己的App,数据来源就是一个不得不考虑的问题,那么我们App的数据通常是从哪些地方获取呢?主要是从以下三个地方获取的后台服务器提供的Api接口一些网站提供的Api接口。例如:聚合数据,干货集中营,玩Android开放Api等等还有很多,这里我只是ingwei抛砖引玉。通过抓包软件对个别App做抓包操作得到的Api接口通过爬虫获取各个网...

2018-10-30 00:14:37 1475 2

原创 前端三剑客之JavaScript初体验

为什么学习JavaScript?从这两年的发展趋势来看,大前端应该是打了实锤了,而JavaScript作为web前端的主要编程语言,自然是不容小觑。HTML 定义了网页的内容,CSS 描述了网页的布局,而JavaScript 决定网页的行为。JavaScript是什么?JavaScript是一种轻量级的编程语言JavaScript 是可插入 HTML 页面的编程代码。JavaScrip...

2018-10-16 11:57:34 470

原创 前端三剑客之CSS初体验

前言如果说HTML是定义了网页的内容,那么CSS就是描述美观了网页的布局,让页面更加的舒适自然人性化了,加下来我们就来学习一下CSS吧什么是CSS?CSS 指层叠样式表样式定义如何显示 HTML 元素样式通常存储在样式表中把样式添加到 HTML 4.0 中,是为了解决内容与表现分离的问题外部样式表可以极大提高工作效率外部样式表通常存储在 CSS 文件中多个样式定义可层叠...

2018-10-15 11:49:04 541

原创 前端三剑客之HTML初体验

首先先从一段代码实例出发,看看html的结构是怎么样的<!DOCTYPE html><html><head><meta charset="utf-8"><title>这是标题</title>

2018-10-13 15:12:35 605

原创 算法初体验之算法的基本概念及定义

很多学生,学了四年的计算机专业,很多程序员,做了很长时间的编程工作,却始终搞不懂算法时间复杂度的估算,这不得不说是一件很可悲的事情。因为弄不清楚,也就不去深究自己写的代码是否效率低下了,是不是可以通过优化让计算机更加快速高效。算法的定义算法是解决特定问题求解步骤的描述,在计算机中为指令的有限序列,并且每条指令表示一个或多个操作算法的特征有穷性,确定性,可行性,输入,输出。算法...

2018-10-11 21:45:49 447

原创 Java基础知识巩固

第一个java程序public class HelloWorld{public static void main(String[] args){ System.out.println("Hello world"); }}Java 基础语法1.对象对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。2.类

2018-10-05 08:15:21 1912

原创 数据结构初体验之基本概念和专业术语

关于数据结构究竟是什么这个问题,想必很多初次接触它的朋友大都是知道有这么个东西,但是却很难准确的表达它的定义,下面我们先来了解一下下面这几个概念,或许能对你有所启发数据数据:是描述客观事物的符号,是计算机可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。数据元素数据元素:是组成数据的,有一定意义的基本单位,在计算机中通常作为整体处理。比如人类中,什么是数据元素,当然...

2018-10-04 22:58:11 262

原创 MySQL必之必会之了解SQL

什么是数据库数据库是一个以某种有组织的方式存储的数据集合。可以把其想象成是一个文件柜。此文件柜是一个存放数据的物理位置,不管数据是什么以及如何组织。误用导致混淆人们通常用数据库这个术语来代表他们使用的数据库软件。其实这样理解是不正确的。更加准确的说,数据库软件应称为DBMS(数据库管理系统)。数据库是通过DBMS创建和操纵的容器。数据库可以是保存在硬设备上的文件,也可以不是。在很大程度...

2018-04-29 20:39:03 318

原创 TCP/IP协议概述

引言 TCP/IP起源于60年代末美国政府资助的一个分组交换网络研究项目,到90年代已发展为计算机之间最常使用的组网形式.分层 网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能,一个协议族,比如TCP/IP,是一组不同层次上的多个协议的组合。TCP/IP通常被认为是一个四层协议系统,如图1-1所示。链路层,别名数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对

2018-04-29 16:03:25 3244

原创 浅谈android系统架构及其应用开发特色

android系统架构 为了让你能更好的地理解android系统是怎样工作的,我们先来看一下它的系统架构。Android大致可以分为四层架构: Linux内核层,系统运行库层,应用框架层和应用层。1. Linux内核层 Android系统是基于Linux内核的,这一层为Android设备的各种硬件提供了底层的驱动,如显示驱动,音频驱动,照相机驱动,蓝牙驱动,Wi-Fi驱动,电源管理等。2

2018-03-11 17:34:13 2562

原创 Android源码中的单例模式

前言 在Android系统中,我们经常会通过Context获取系统级别的服务,如WindowsManager,ActivityManagerService等,更常用的是一个LayoutInflater的类,这些服务会在合适的时候以单例的形式注册在系统中,在我们需要的时候就通过Context的getSystemService(String name)获取。我们以LayoutInflater为例来说

2018-03-10 18:20:32 423

原创 android项目构建之gradle的配置(含范例代码)

gradle的定义 Gradle 是一个基于Ant和Maven概念的项目自动化建构工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,这比我们的ANT使用XML构建配置要灵活的多。在编写配置时,你可以像编程一样灵活,Gradle是基于Groovy的DSL语言,完全兼容JAVA。gradle的相关文件 gradle的相关文件分别是根目录下的 build.gradle、se

2018-02-21 17:39:26 1052

原创 android项目构建之公共父类MyApplication,BaseActivity,BaseFragment

自从开始参加了工作之后,貌似已经很长时间没有写博客了,其中最主要的原因还是因为前些阵子要赶项目经常加班疏忽了,还好现在正值春节期间,我就可以好好整理一下自己的知识体系了。什么是Application  Application和Activity,Service一样是android框架的一个系统组件,当android程序启动时系统会创建一个 application对象,用来存储系统的一些信息。通常

2018-02-19 16:35:59 1151

原创 整理AndroidStudio常用快捷方式

Alt+回车 导入包,自动修正 Ctrl+N 查找类 Ctrl+Shift+N 查找文件 Ctrl+Alt+L 格式化代码 Ctrl+Alt+O 优化导入的类和包 Alt+Insert 生成代码(如get,set方法,构造函数等) Ctrl+E或者Alt+Shift+C 最近更改的代码 Ctrl+R 替换文本 Ctrl+F 查找文本 Ct

2017-11-24 13:51:14 334

原创 Android运行时权限方案全解析

Android权限适配方案(一) 6.0之前的版本权限处理方案 第一步: 在AndroidManifest中申明所需要的所有权限 第二步: 在用户安装App时,展示所有需要授权的程序 第三步: 用户同意授权即可安装App,反之则无法安装app(二) 6.0版本的权限处理方案 6.0这个版本开始出现了动态申请权限这个概念 为什么会出现这个概念呢?首先我们就必须

2017-11-17 18:24:12 440

原创 Android样式开发之shape篇

一个应用,应该保持一套统一的样式,包括Button、EditText、ProgressBar、Toast、Checkbox等各种控件的样式,还包括控件间隔、文字大小和颜色、阴影等等。web的样式用css来定义,而android的样式主要则是通过shape、selector、layer-list、level-list、style、theme等组合实现。我将用一系列文章,循序渐进地讲解样式的每个方面该...

2017-10-22 13:55:41 451

原创 GreenDao3.2的基本使用入门

本篇文章包括以下内容:前言 GreenDao3.2的简介 GreenDao3.2的配置 GreenDao3.2的使用 结语前言GreenDao是一款操作数据库的神器,经过了2.0版本的升级后,已经被广泛的开发者使用。确实是很好用,入门简单,可以剩去了数据库的建表操作和数据库SQL的编写,博主用了一次之后爱不释手,和以前的数据库操作一大堆的代码将它缩成了一句话,舒服Gre...

2017-10-21 11:36:23 378

原创 Android中解析json数据的三种方式

Json简介 JAVAScript Object Notation是一种轻量级的数据交换格式 具有良好的可读和便于快速编写的特性。 业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持) JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为。 – Json.org JSON作为数据是目前网络中主流的数据传输格式之一,应用十

2017-10-17 08:50:08 7065

原创 Java注解之Retention、Documented、Inherited的简单使用

Retention注解 Retention(保留)注解说明,这种类型的注解会被保留到那个阶段. 有三个值: 1.RetentionPolicy.SOURCE —— 这种类型的Annotations只在源代码级别保留,编译时就会被忽略 2.RetentionPolicy.CLASS —— 这种类型的Annotations编译时被保留,在class文件中存在,但JVM将会忽略 3.

2017-10-16 22:35:07 853 1

原创 InputStream,InputStreamReader和Reader之间的区别与关系

InputStream:得到的是字节输入流,InputStream.read(“filename”)之后,得到字节流 Reader:读取的是字符流 InputStreamReader:从字节到字符的桥梁 InputStreamReader(InputStream.read(“filename”)); reader.read(InputStreamReader(In

2017-10-16 19:33:23 20226 2

原创 String与StringBuffer和StringBuilder之间的区别

1.三者在执行速度方面的比较:StringBuilder > StringBuffer > String 2.String <(StringBuffer,StringBuilder)的原因 String:字符串常量 StringBuffer:字符串变量 StringBuilder:字符串变量 从上面的名字可以看到,String是“字符串常量”,也就是不可改变的

2017-10-16 19:23:43 391

原创 Bitmap的高效加载

前言 在具体阐述如何高效加载bitmap图片前,我们需要先想清楚一个问题是为什么要注重bitmap的高效加载?由于Bitmap的特殊性以及Android对单个应用施加的内存限制,比如16MB,这就导致加载Bitmap的时候很容易出现内存溢出。下面这个异常应该在开发中经常遇到:java.lang.OutofMemoryError:bitmap size exceds VM budget 因此

2017-10-14 11:26:58 657

原创 自定义View学习篇之绘制一个圆环动画

前言 我们都知道,现实生活中画一幅画需要笔和纸,另外还需要各式各样的绘画技巧,那么同样的自定义view也需要这些。正好Android也给我们提供了这两样东西:Paint和Canvas,一个是画笔而另一个呢当然是画布啦 Paint中有各种setter方法可以设置不同的属性,比如setColor()设置画笔颜色,setStrokeWidth()设置描边线条,setStyle()设置画笔的样

2017-10-13 09:33:59 1933 1

原创 HashMap,HashSet,HashTable,LinkedHashMap,LinkedHashSet,ArrayList,LinkedList,ConcurrentHashMap,Vector

HashMap相关问题 1、你用过HashMap吗?什么是HashMap?你为什么用到它? 用过,HashMap是基于哈希表的Map接口的非同步实现,它允许null键和null值,且HashMap依托于它的数据结构的设计,存储效率特别高,这是我用它的原因 2、你知道HashMap的工作原理吗?你知道HashMap的get()方法的工作原理吗? 上面两个问题属于同一答

2017-10-11 22:25:37 4037 8

原创 选择排序,插入排序,冒泡排序,希尔排序,归并排序,快速排序

选择排序import java.Util.*;public class SelectionSort(){private SectionSort(){}public static void sort(Comparable[] arr){int n=arr.length;for(int i=0;i<n;i++){//寻找[1,n)区间最小值的索引int minIndex=i;for(in

2017-10-10 19:33:02 599 1

原创 统一的编程接口之外观模式

外观模式介绍 外观模式(Facade)在开发过程中的运用频率非常高,尤其是在现阶段各种第三方SDK充斥在我们的周边,而这些SDK很大概率会使用外观模式。通过一个外观类使得整个系统的接口只有一个统一的高层接口,这样能够降低用户的使用成本,也对用户屏蔽了很多实现细节。当然在我们的开发过程中,外观模式也是我们封装API的常用手段,例如网络模块,ImageLoader模块等。 可能你已经在开发中

2017-10-10 10:32:56 416

原创 结构性设计模式之装饰模式

装饰模式介绍 装饰模式(Decorator Pattern)也称为包装模式(Wrapper Pattern),也是结构性设计模式之一,其使用一种对客户端透明的方式来动态扩展对象的功能,同时它也是继承关系的一种替代方案之一。在现实生活中你也可以发现很多装饰模式的例子,或者可以大胆地说装饰模式无处不在,就拿人来说,人需要各式各样的衣着,不管你穿着怎样,但是,对于个人的本质来说是不变的,充其量只是在外

2017-10-10 08:30:28 370

原创 组件化思想之适配器的使用及优化

前言 Android适配器是数据和视图之间的桥梁,以便于数据在View上显示。适配器就像显示器,把复杂的东西按人可以接受的方式来展现。我们常用的适配器一共有三个:ArrayAdapter,SimpleAdapter,SimpleCursorAdapter 这三个,他们都是继承于BaseAdapter 。适配器的使用场景 在Android上提到适配器模式就会想到最常用的ListView和Ba

2017-10-09 21:38:17 326

原创 组件化思想之图片加载库picasso的用法及封装

关于Picasso picasso是Square公司开源的一个Android图形缓存库,地址http://square.github.io/picasso/,可以实现图片下载和缓存功能。 Picasso不仅实现了图片异步加载的功能,还解决了android中加载图片时需要解决的一些常见问题: 1.在adapter中需要取消已经不在视野范围的ImageView图片资源的加载,否则

2017-10-08 10:01:38 749 2

原创 组件化思想之Log的封装

前言 Android中的日志工具类是Log(android.util.Log),这个类中提供了如下5个方法来供我们打印日志Log.v() :用于打印些最为琐碎的,意义最小的日志信息。对应级别verbose,是Android日志里面级别最低的一种Log.d() :用于打印一些调试信息,这些信息对你调试程序和分析问题应该是有帮助的,对应级别debug,比verbose高一级Log.i() :

2017-10-08 07:57:31 561

原创 设计模式系列之组合模式

组合模式介绍 组合模式(Composite Pattern) 也称为部分整体模式(Part-Whole Pattern), 结构型设计模式之一,组合模式比较简单,它将一组相似的对象看作一个对象处理,并根据一个树状结构来组合对象,然后提供一个统一的方法去访问相应的对象,以此忽略掉对象与对象集合之间的差别。生活中比较典型的一个例子就是组织结构的树状图。 例如一个公司的组织结构树状图,其中总

2017-10-07 22:20:01 371

ACM算法大神讲解常用数据结构与算法优化(java版与c++版)

基本上一流的互联网公司面试都必考数据结构与算法,此资源不仅介绍了基本的数据结构与算法,更是把优化思想讲解的淋漓尽致,是你巩固基础和进阶的不二之选!

2017-08-26

空空如也

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

TA关注的人

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