自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 ionic3使用hot-push进行代码内壳更新详细步骤

https://www.jianshu.com/p/f29b2423eb0b1、安装更新插件 在电脑端全局安装 cmd下直接 npm install -g cordova-hot-code-push-cli npm install -g https://github.com/nordnet/cordova-hot-code-push-cli.git (实际可用)...

2020-01-09 14:10:53 258

原创 装系统后重新安装git 环境

1、下载git.exe 和 TortoiseGit.exe客户端2、安装git安装 TortoiseGit3、git config 配置 user.name和user.email4、生成private key 和 public key

2019-11-22 17:19:18 854

原创 Android 逆向助手 使用教程

下载逆向助手。 将需要编译的apk文件copy到逆向助手的apktool目录,并CD到当前目录下。 在cmd命令行中输入命令 apktool d -f + 应用程序名,如:apktool d -fZaiNa_V4.1.3.3_20180912_release.apk,回车后显示: 可以看到,在当前目录下生成了与apk同名的文件夹,此文件夹为res文件夹。 打开Android逆向助手.e...

2019-10-29 16:55:46 3199

原创 Promise基本使用及方法介绍

含义Promise是异步编程的一种解决方案,用于一个异步操作的最终完成(或失败)及其结果值的表示,比传统的回调函数方案更加合理。描述1.Promise对象是一个代理对象(代理一个值),被代理的值在Promise对象创建时可能是未知的。它允许你为异步操作的成功和失败分别绑定相应的处理方法(handlers)。2.一个Promise有以下几种状态: (1)pending:意味着...

2019-10-24 14:36:10 307

原创 RecycleView 倒计时 中因为复用机制导致的倒计时时间混乱的处理方案(转载自掘金)

使用背景:在电商项目中的很多item的倒计时显示。产生问题的原因:1、复用 2、代码多次调用解决方案:使用Timer + View集合 (使用集合将View保存起来)private Timer mTimer;private Set<RecyclerViewViewHolder> mHolders;public RecyclerViewAdapter(Activi...

2019-10-24 14:35:33 734

原创 Java中Lambda表达式的使用

简介:Lambda表达式是Java SE 8中一个重要的新特性。Lambda表达式允许你通过一个表达式来代替功能接口。lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体(body,可以是一个表达式或一个代码块)。Lambda表达式的语法:基本语法: (parameters) -&gt; expression 或 (parameters) -&gt;...

2019-03-16 14:24:44 176

原创 Angular 清空Array的几种方法

1.A = [];设置变量A为一个新的空数组,如果没有另外的引用指向A的时候,这种方式是最好的,但是如果有一个引用变量B指向A,执行A=[ ]后,B还是原来的数组,不会发生变化;因为刚开始B=A;A和B指向同一个地址,然后A= [ ]后,A指向了另外的一个地址,所以B还是原来的地址;例子var arr1 = ['a','b','c','d','e','f'];var arr2 =...

2019-03-16 11:06:32 2211

转载 ionic3页面间数据传递及Events

1.将数据传递到要跳转到的页面(1)push()要将新页面推送到堆栈,可使用push方法。同时也可以通过将数据传递给push方法的第二个参数,来将数据传递给下一个页面。import {LoginPage } from'./login';...pushPage(){ this.navCtrl.push(LoginPage, { id: 123, name...

2019-03-16 11:02:40 217

原创 JAVA中字符串比较equals()和equalsIgnoreCase()的区别

1.equals()函数: 主要是区分“比较的字符串” 大小写和长度时候相同,比较的类型可以是Object类型。2.equalsIgnoreCase()函数: 比较的参数只能是字符串,这里只要字符串的长度相等,字母的大小写是忽略的。认为A-Z和a-z是一样的。...

2019-03-15 09:31:21 707

原创 android 原生解析Json数据

import org.json.JSONArray;import org.json.JSONObject;String detailMsg = ""; try { JSONObject jsonObject = new JSONObject(msg.text); //拿到最外层对象 JSONArray content = jsonObj...

2019-03-12 09:17:13 516

原创 Angular 2模板语法

模板扮演的是一个视图的角色,简单讲就是展示给用户看的部分。HTML 插值表达式 模板表达式 模板语句 绑定语法 属性绑定 HTML属性、class和style绑定 事件绑定 使用ngModel进行双向数据绑定 内置指令 *与&lt;template&gt; 模板引用变量 输入输出属性 模板表达式操作符1.HTMLHTML是Angular模板的"语言",除了&lt...

2019-03-09 17:53:26 319

原创 Angular 2创建表单

创建一个初始HTML表单模板,代码如下:&lt;div class = "container"&gt; &lt;h1&gt;网站表单&lt;/h1&gt; &lt;form&gt; &lt;div class = "form-group"&gt; &lt;label for = "name"&gt;网站排名&am

2019-03-09 14:44:25 295

原创 Angular 2用户输入

用户点击链接、按下按钮或者输入文字时,这些用户的交互行为都会触发Dom事件。1.绑定到用户输入事件我们可以使用Angular事件绑定机制来响应任何DOM事件。以下实例绑定了点击事件:&lt;button (click)="onClickMe()"&gt;点我!&lt;/button&gt;等号左边的(click)表示把该按钮的点击事件作为绑定目标。等号右边,引号中的文本是一个...

2019-03-09 11:07:27 165

原创 Angular 2数据显示

如何将数据显示到用户界面上,可以使用以下3种方式:通过插值表达式显示组件的属性 通过NgFor显示数组型属性 通过NgIf实现按条件显示1.通过插值表达式显示组件的属性要显示组件的属性,插值是最简单的方式,格式为:{{属性名}}import { Component } from '@angular/core'@Component({ selector: 'my-...

2019-03-09 10:20:54 195

原创 jsvascript === 和==的区别 以及 ! 和 !!的区别

==用于比较判断 两者相等==在比较的时候可以转自动换数据类型===用于严格比较判断两者严格相等===严格比较,不会进行自动转换,要求进行比较的操作数必须类型一致,不一致时返回flase。举例说明:"1"==true类型不同,"=="将先做类型转换,把true转换为1,即为 "1"==1;此时,类型仍不同,继续进行类型转换...

2019-03-07 09:38:31 169

原创 Git与SVN的区别(面试常问)

1、Git是分布式的,而SVN不是分布式的2、Git把内容按元数据方式存储,而SVN是按文件3、Git没有一个全局版本号,SVN有,目前为止这是SVN相比Git缺少的最大的一个特征4、Git的内容的完整性要优于SVN: GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏5、Git下载下来后,在OffLine状态下可...

2019-02-27 21:11:37 3532 1

原创 Android进程和线程的区别(面试常问)

进程是资源管理的最小单位,线程是程序执行的最小单位。 每个进程都有自己的数据段、代码段和堆栈段。线程通常叫做轻型的进程。它包含独立的栈和cpu寄存状态,每个线程共享其所附属进程的所有资源,包含打开的文件,内存页面,信号标识以及分配内存等。 线程比进程花费更小的CPU资源。 在操作系统设计上,从进程演化出线程,最主要的目的就是更好的支持多处理器,并且减少进程上下文切换的开销。 线程和进程的关...

2019-02-26 22:01:27 816

原创 Android 设计模式

单例模式 建造者模式 观察者模式 策略模式 原型模式单例模式:动态确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。优点:单例模式在内存中只有一个实例,减少了内存开销。对于 那些耗内存的类,只实例化一次,可以大大的提高性能。 单例模式可以避免对资源的多重利用,例如写一个文件时,由于只有一个实例存在内存中,避免对同一个资源文件的同时写操作。 单例模式可以在系统设...

2019-02-25 16:56:45 127

原创 Android 面试问题

 面试问题重点:基础知识----四大组件(生命周期,使用场景,如何启动) java基础----数据结构,线程,mvc框架 通信----网络连接(HttpClient、HttpUrlConnection),Socket 数据持久化----SQLite,SharedPreference,ContentProvider 性能优化----布局优化,内存优化,电量优化 安全----数据加密,代...

2019-02-25 16:10:46 85

原创 View的绘制流程

每个View都要经过:onMeasure_onLayout_onDraw过程,才能显示出来。1、onMeassure2、onLayout3、onDraw

2019-02-25 15:58:47 87

原创 AIDL + Binder相关知识介绍

AIDL相关知识:1、AIDL是什么?  AIDL(Android接口定义语言)是Android提供的一种进程间通信(IPC)机制。  在Android上,一个进程通常无法访问另一个进程的内存。因此需要使用AIDL来处理。  2、AIDL支持的数据类型?   一共支持4种数据类型:   ①Java的基本数据类型   ②Liat和Map     a.元素必须是AIDL支持的数据类型...

2019-02-25 15:47:37 114

原创 Android 知识分级

初级1、基本知识点:四大组件的使用(Activity、Service、ContentProvider、BroadCastReceiver)2、如何创建Service3、如何进行布局4、简单的自定义View5、简单的使用动画效果 中级1、AIDL:熟悉AIDL,理解其工作原理,区别transac和onTransact2、Binder:从Java层大概理解Binde...

2019-02-23 09:32:15 161

原创 Android 集成环信客服云

1、import ease_ui moudle。2、复制kefu-sdk-1.1.8.jar到libs文件夹下,add as Library到ease_ui module中,点击sync,clean。3、在application的onCreate()添加消息监听,对监听到的消息进行相应的处理(显示+在线消息推送)。4、添加ChatActivity作为开启客服聊天界面的入口。(复制dem...

2019-01-11 14:27:09 1220

原创 RecycleView + CheckBox实现单选

public class DeliveryMethodAdapter extends RecyclerView.Adapter&lt;DeliveryMethodAdapter.MyViewHolder&gt; { private Context context; private List&lt;DeliveryModeBean&gt; recordsBeanList; ...

2018-12-20 17:24:44 692

原创 Android 全面屏适配方案

在Mainfest配置文件的Application节点下添加:&lt;meta-data android:name="android.max_aspect" android:value="2.1" /&gt;

2018-07-07 09:23:36 337

原创 【Android view】Android获取屏幕设备宽高的正确姿势

                                                        Android获取设备屏幕宽高的2种方法1、private void Method1() { Resources resources = this.getResources(); DisplayMetrics dm = resources.getDisplayMe...

2018-05-08 10:05:06 426

原创 【Android view】获取状态栏高度statu bar height的正确姿势

                                                                Android设备获取状态栏高度的正确姿势int height = 0; int resourceId = getApplicationContext().getResources().getIdentifier("status_bar_height", "dimen...

2018-05-08 10:00:51 1666

原创 Android学习体系

一、Java篇1、Java基础2、Java常见库3、Java并发4、Java-JVM二、Android篇1、Android基础2、Android 常见机制3、Android第三方库4、Android进阶

2018-05-07 14:32:45 427

原创 Android在线看源码只需要一个网站就够了!!!!!!

链接地址:点击打开链接

2018-05-07 11:45:02 111

转载 Android开发常用框架

1. 缓存DiskLruCache    Java实现基于LRU的磁盘缓存2.图片加载Android Universal Image Loader  一个强大的加载,缓存,展示图片的库Picasso 一个强大的图片下载与缓存的库Fresco  一个用于管理图像和他们使用的内存的库Glide   一个图片加载和缓存的库3. 图片处理Picasso-transformations 一个为Picasso...

2018-05-05 17:29:42 529

原创 windows环境下反编译apk源代码

需要的三个工具以及它们的作用分别是:工具名称 工具作用 工具下载地址 apktoos 将apk文件反编译成原始的目录文件 https://code.google.com/p/android-apktool/downloads/list dex2jar 将dex文件转化成一个jar文件 https://code.google.com/p/de...

2018-05-05 16:25:11 1878

原创 Android-反编译(转载)

前言如何借鉴一个好用的APK,从界面编码到资源供需,在我们自己日常的开发中我们也扮演着审美的角色。1、下载apk文件。2、获取图片资源3、获取代码资源下载 Apk 文件Google Paly方式一:浏览器输入https://apps.evozi.com/apk-downloader/,输入 apk 的网页地址。如下图方式二:浏览器输入https://apkpu...

2018-05-05 11:09:44 1071

原创 Android 蓝牙开发学习

转链接:点击打开链接

2018-05-05 10:57:51 125

原创 格式化时间日期(Java)

工作中遇到的一个问题,顺便记录一下。假设获取到的时间日期的值为一个String类型,例如:String time_now = "2018-4-28  17:04:05";当我们需要单独取前面的日期或者后面的时间的时候,我们需要经过处理:private String getTime(String end) { String time = null; if(end == null) { ...

2018-04-28 17:20:55 186

原创 四月份面经实录

记录一次四月份的面经1、xx科技公司(智能产品方案公司)主要需求技能:基于蓝牙、WiFi、2G、3G、4G、GPRS的开发。由于本人感兴趣开发的一款基于esp8266wifi模块连接数显数据收发的智能家居app吸引了面试官的眼球,后面的面试和问题基本上围绕着这一款app的制作来展开面试。①首页的天气显示:天气显示使用什么网络请求框架来获取数据?OkHttp网络请求框post和风天气的免费数据接口获...

2018-04-19 14:30:11 286

转载 android网络编程之Socket使用

本文转载自 https://juejin.im/entry/5a9581c75188257a5d2b6184前言Socket的使用在 Android网络编程中非常重要今天我将带大家全面了解 Socket 及 其使用方法 目录1.网络基础1.1 计算机网络分层计算机网络分为五层:物理层、数据链路层、网络层、运输层、应用层其中:网络层:负责根据IP找到目的地址的主机运输层:通过端口把数据传到目的主机的...

2018-04-14 22:56:16 307

转载 自定义控件的详解

本篇文章转载自:https://blog.csdn.net/Jsagacity/article/details/78580270  原作者:LayneYao自定义控件的学习流程:View的测量-&gt;View的绘制-&gt;ViewGroup的测量-&gt;ViewGroup的绘制-&gt;自定义ViewGroup-&gt;自定义控件的三种方式说明-&gt;事件拦截机制说明View的测量:And...

2018-04-13 17:45:03 303

原创 Gson快速解析Json数组

这是我不得不记录下来的一个快速解析复杂的Json数组的框架,防止在以后的工作中忘记。(复杂划重点,简单的json数据我们用JsonObject就可以完全解析出来)示例:{ "HeWeather6": [ { "basic": { "cid": "CN101280601", "location": "shenzhen",

2018-04-13 17:21:02 569

原创 最简单的android底部导航栏 + Fragment的实现方式

1、android.support.design.widget.BottomNavigationView 是android原生的一个底部导航框架区别于gitthub上start数量很多的com.roughike:bottom-bar:2.3.1'(github地址:点击打开链接):①android原生的bottomNavigationView初始代码很少也很简单,掌握起来也很快。②在不使用View...

2018-04-13 16:51:22 6680

原创 Android自定义View流程总结以及简单例子

一、     自定义View的技术难度在于:自定义View是一个综合的技术体系,涉及了View的层次结构、事件分发机制和View的工作原理等技术细节。二、自定义View的分类:主要分为4类,也可以说成是自定义View的四种做法。1、extends View后重写onDraw()方法这一类主要用于实现一些不规则的效果,也就是说这种效果不方便通过布局的组合方式来实现,往往需要静态或者动态显示一些不规则...

2018-04-10 09:55:51 1091

空空如也

空空如也

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

TA关注的人

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