- 博客(117)
- 收藏
- 关注
原创 WebSocket Android应用学习
之前因为看okhttp了解到有WebSocket这个协议,零散的了解了一些知识,但是没有系统的看过,总觉还是不了解。这次正好因为项目中用到WebSocket,所以看了一些文章,就把链接记录在这里了。(也欢迎大家评论和补充)1.WebSocket协议理解-数据包格式解析https://www.cnblogs.com/zhangmingda/p/12678630.html2.WebSocket协议-简介及连接建立过程http://blog.ruaby.com/?p=3103.we..
2020-08-30 09:35:21
236
原创 生产者消费者模式的Java实现
1.在《Java编程思想》第4版并发一章的“21.5.3 生产者与消费者”节看到的生产者和消费者定义了两个对象,分别在对象内部使用自身调用wait(就是synchronized(this)内部 调用了 wait() , 后面的notify再synchronized(另外一个对象 比如restaurant.chef) 调用另外一个对象的notifyAll();这种方法相当于是生产者和消费者都要加...
2020-04-12 12:24:50
279
转载 System.load() 与 System.loadLibrary() 区别解析
问:能简单说说通过 JNI 使用 Native 库时 load 与 loadLibrary 方法的区别吗?答:可以说只要接触过 JNI 开发的就一定要掌握这个知识点。JDK 提供给了我们两个方法用于载入库文件,一个是 System.load(String filename) 方法,另一个是 System.loadLibrary(String libname) 方法,他们的区别主要如下分析...
2019-10-27 17:17:33
1486
原创 Android 图片加载框架对比方法
图片加载框架,要进行比较,可以考虑的角度有哪些?(看文章之后的思考)1.支持的数据格式 1)比如是否支持GIF? 2)是否支持webp 3)是否直接可以把视频丢给图片加载框架,就可以展示图片。2.性能 1)加载速度3.资源消耗 1)内存占用 2)sd卡存储占用4.易用程度5.稳定性6.自身包的大小7.可扩展性...
2019-09-08 18:19:12
248
原创 Android主线程收不到消息更新的问题分析(线程阻塞,profiler分析自己遇到好问题)
Android主线程收不到消息更新的问题分析在工作中遇到一个问题,录制跟拍视频时,首次进入界面,点击开始录制时,视频播放和录制两个界面会同时开始播放。接收播放器的回调,通过handler发送给主线程更新UI。时间更新最小单位是0.1秒。第一次进入界面,点击播放时,会等待1秒才开始更新进度,显示录制时间。在同一个界面,删除当前录制内容,重新录制时,则不会等待1秒的时间。在非U...
2019-06-30 12:40:01
653
转载 Javascript-location对象
Javascript-location对象1、location对象location是最有用的DOM对象之一,它提供了与当前窗口中的文档有关的信息,还提供了一些导航功能。location对象是一个很特殊的对象,因为它既是window对象的属性,也是document对象的属性;换句话说,window.location和document.location引用的是同一个对象。location对象的...
2019-05-12 20:35:20
340
转载 android通过WebView的evaluateJavascript()调用JS
android通过WebView的evaluateJavascript()调用JS因为该方法的执行不会使页面刷新,而方法(loadUrl )的执行则会使页面刷新。 Android 4.4 后才可使用同:https://www.cnblogs.com/liuyj-vv/p/9583831.html仅java代码不同,可以接收JS函数的返回值 1 2 3...
2019-05-12 19:19:16
2340
转载 Android通过WebView调用 JS 代码
Android通过WebView调用 JS 代码 1 a. webView.loadUrl("javascript:callJS()"); b. setWebChromeClient响应弹窗1.布局 1 2 3 4 5 6 7 8 9 10 11 ...
2019-05-12 19:07:12
203
原创 JavaScript 与WebView的交互入门遇到的问题
JavaScript与WebView交互有多种方法:这里先试验一下对象映射的方式。1. 通过对象映射方式 Android中通过 通过webView.addJavaScriptInterface(java对象,"javascript中可以看到的名字") html中通过事件点击,调用(可以通过<a>标签,或者定义button都可以调用)2.具体的实现步骤:...
2019-05-12 18:01:08
140
翻译 安卓WebView中接口隐患与手机挂马利用(远程命令执行)
安卓WebView中接口隐患与手机挂马利用(远程命令执行)安卓应用存在安全漏洞,浏览网站打开链接即可中招。目前有白帽子提交漏洞表明目前安卓平台上的应用普遍存在一个安全漏洞,用户打开一个链接就可导致远程安装恶意应用甚至完全控制用户手机,目前微信,手机QQ,QVOD以及各大手机浏览器均中招0x00 背景在android的sdk中封装了webView控件。这个控件主要用开控制的网页浏览。在程...
2019-05-12 11:18:55
308
转载 WebView 安全之 addJavascriptInterface
WebView 安全之 addJavascriptInterface不会写代码的IT男关注2016.01.03 18:14*字数 474阅读 5668评论 0喜欢 30x00 addJavascriptInterface介绍WebView是Android平台下的一个重要组件,通常用来在Activity中嵌入一个简单的浏览器,实现在线网页浏览的功能。比如下面代码实现访问Goo...
2019-05-12 11:06:43
5115
转载 安卓WebView中接口隐患与手机挂马利用(远程命令执行)
安卓WebView中接口隐患与手机挂马利用(远程命令执行)安卓应用存在安全漏洞,浏览网站打开链接即可中招。目前有白帽子提交漏洞表明目前安卓平台上的应用普遍存在一个安全漏洞,用户打开一个链接就可导致远程安装恶意应用甚至完全控制用户手机,目前微信,手机QQ,QVOD以及各大手机浏览器均中招0x00 背景在android的sdk中封装了webView控件。这个控件主要用开控制的网页浏览。在程...
2019-05-04 11:31:16
273
转载 JSBridge深度剖析
概述做过混合开发的人都知道Ionic和PhoneGap之类的框架,这些框架在web基础上包装一层Native,然后通过Bridge技术的js调用本地的库。在讲JSBridge技术之前,我们来看一下传统的实现方式。Android端Native调JSnative调用js比较简单,只要遵循:”javascript: 方法名(‘参数,需要转为字符串’)”的规则即可。在4.4之前,调...
2019-05-04 09:38:41
293
原创 Binder机制
1.对于系统服务,是需要注册到SystemServer进程 还是 service Manager进程?2.自定义的跨进程通信,是不需要注册到SystemServer中去的。只要实现Binder,知道去哪里找到服务对象就可以了?Service的 bindService就是可以作为分析参考的。...
2019-04-08 19:54:13
147
转载 Hybrid APP基础篇(二)->Native、Hybrid、React Native、Web App方案的分析比较
Hybrid APP基础篇(二)->Native、Hybrid、React Native、Web App方案的分析比较说明Native、Hybrid、React、Web App方案的分析比较目录前言 参考来源 前置技术要求 楔子 几种APP开发模式 概述 Native App Web App Hybrid App React Native ...
2019-04-07 18:57:32
269
转载 Hybrid APP基础篇(一)->什么是Hybrid App
Hybrid APP基础篇(一)->什么是Hybrid App最新更新一个开源的快速混合开发框架:https://github.com/quickhybrid/quickhybridAndroid、iOS、JS三端内容初步都已经完成,有完善的设计思路、教程以及API文档。说明Hybrid APP是目前广泛流行的一种APP开发模式,本文对其做简单介绍目录前言 参...
2019-04-07 18:16:07
1605
原创 从源码来看Activity及其基类关系
Activity的继承哪些类和接口呢?虽然平时天天在用,可是都没怎么梳理过。源码就放在哪里,虽然有很多网上或者书上的分析,但是每个人分析的角度不同,都不是很全面。读代码画出结构图来,能有一个更全面的视角去看问题。...
2019-03-23 11:30:22
155
原创 剑指offer-快速排序(以及无序数组中,寻找第k大的数)
快速排序public int partition(int[] a, int start, int end) throws IllegalArgumentException { if (a == null || a.length == 0 || start < 0 || end >= a.length) { throw new Illega...
2019-02-12 08:42:13
631
转载 寻找数组中第K大的数
给定一个数组A,要求找到数组A中第K大的数字。对于这个问题,解决方案有不少,此处我只给出三种:方法1: 对数组A进行排序,然后遍历一遍就可以找到第K大的数字。该方法的时间复杂度为O(N*logN)方法2: 利用简单选择排序法的思想,每次通过比较选出最大的数字来,比较上K次就能找出第K大的数字来。该方法的时间复杂度为O(N*K),最坏情况下为O(N^2)。方法3: ...
2019-02-11 21:43:44
1104
转载 React Native 自定义组件
React Native 自定义组件 塔米尔 关注2017.04.02 01:04* 字数 181 阅读 872评论 3喜欢 7ES6语法定义组件在ES6里,我们通过定义一个继承自React.Component的class来定义一个组件类,像这样: 定义组件的属性类型和默认属性在ES6里,可以统一使用static成员来实现 正文首先 必...
2018-09-16 17:31:04
537
转载 JAVA使用原始HttpURLConnection发送POST数据
JAVA使用原始HttpURLConnection发送POST数据 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25...
2018-08-18 18:26:58
1749
转载 WebViewClient与WebChromeClient的区别
WebViewClient与WebChromeClient的区别Android应用开发的时候可能会用到WebView这个组件,使用过程中可能会接触到WebViewClient与WebChromeClient,那么这两个类到底有什么不同呢?WebViewClient主要帮助WebView处理各种通知、请求事件的,比如: onLoadResource onPage...
2018-08-18 16:47:48
239
转载 Android 7.0新签名机制
Android 7.0中新签名对多渠道打包的影响详解发布时间:2017-02-17 10:26:15 作者:Maydaaa这篇文章主要介绍了Android 7.0中新签名对多渠道打包的影响,文中介绍的很详细,需要的朋友可以参考借鉴,下面来一起看看吧。老签名多渠道打包原理前言由于Android7.0发布了新的签名机制,加强了签名的加固,导致在新的签名机制下无法通过美团式的方式再继...
2018-08-12 10:39:07
185
转载 ANDROID 中UID与PID的作用与区别
ANDROID 中UID与PID的作用与区别PID:为Process Identifier, PID就是各进程的身份标识,程序一运行系统就会自动分配给进程一个独一无二的PID。进程中止后PID被系统回收,可能会被继续分配给新运行的程序,但是在android系统中一般不会把已经kill掉的进程ID重新分配给新的进程,新产生进程的进程号,一般比产生之前所有的进程号都要大。UID:一般理解为Us...
2018-08-12 10:09:39
2001
转载 关于android keystore的一些问题
关于android keystore的一些问题 ImLynn 关注2017.04.28 14:06* 字数 334 阅读 2270评论 0喜欢 41.keystore 和jks 的简单区别:在Android Studio中通过生成的是.jks签名文件;而在eclipse时.keystore文件关于如何生成的步骤请参考该技术文档。2. Keystore was tampere...
2018-08-12 08:20:17
322
转载 android应用程序签名(转)
android应用程序签名(转)概述Android系统要求,所有的程序经过数字签名后才能安装。Android系统使用这个证书来识别应用程序的作者,并且建立程序间的信任关系。证书不是用于用户控制哪些程序可以安装。证书不需要授权中心来签名:Android应用程序上使用自己签名的证书是完全允许且普遍的。理解Android应用程序签名有以下几个重要点:所有的应用程序都必须签名。系统不会安装...
2018-08-12 08:17:07
574
转载 Inverse/Reverse/Converse的辨异
[转]Inverse/Reverse/Converse的辨异Posted on 2011-06-24 15:13 单鱼游弋 阅读(7795) 评论(0) 编辑 收藏本文源自:http://hi.baidu.com/heartsoft2008/blog/item/41fc5e4ec6b76700b2de05c5.html这3个词是经常容易混淆的,因为中文并不是世界上最严密的语言(据说是...
2018-07-29 18:05:34
1260
转载 yarn的使用及升级Node.js的新方法
yarn的使用及升级Node.js的新方法2017年5月7日 12181次浏览yarn的使用yarn包管理工具,官网说是快速、可靠、安全的依赖管理,尝试了一下,入手很快,用起来也蛮方便的。大家可以尝试一下。yarn安装mac电脑上面安装如下:brew updatebrew install yarnyarn工作流1、创建一个新的项目yarn init类似于npm init ,package.js...
2018-07-16 06:48:54
2779
转载 Android Studio 查看Android内部隐藏源码
Android Studio 查看Android内部隐藏源码 zhang_pan 关注2018.04.10 21:27 字数 546 阅读 313评论 2喜欢 26问题的发现今天查看AlertDialog源码的时候,看到AlertController,发现关于这部分的代码全都报红,原来AlertController类在com.android.internal.app这个包下,看这个包名inter...
2018-05-05 18:53:58
1588
1
转载 Android SharedPreference 支持多进程
Android SharedPreference 支持多进程 Lainn 关注2017.03.28 00:35* 字数 1345 阅读 1999评论 1喜欢 10在使用SharedPreference 时,有如下一些模式:MODE_PRIVATE 私有模式,这是最常见的模式,一般情况下都使用该模式。 MODE_WORLD_READABLE,MODE_WORLD_WRITEABLE ,文件开放读写...
2018-05-03 07:12:15
474
转载 JAVA中如何获取一个二维数组的行数和列数
我是个编程菜鸟,在从0开始学习编程知识。由一道题目说开去:编写一段代码,打印出一个二维布尔数组的内容。其中*表示真,空格表示假。打印出行号和列号。代码:public class Ex_11 { public static void printBooleans(boolean[][] a){ int rowNum = a.length; i...
2018-04-29 11:32:01
8098
转载 Minimum Window Substring 最小覆盖子串算法
题目 最小子串覆盖给定一个字符串source和一个目标字符串target,在字符串source中找到包括所有目标字符串字母的子串。 注意事项如果在source中没有这样的子串,返回"",如果有多个这样的子串,返回长度最小的子串。说明在答案的子串中的字母在目标字符串中是否需要具有相同的顺序?——不需要。样例给出source = "ADOBECODEBANC",target = "ABC" 满足要求的...
2018-04-21 08:39:24
150
转载 Android 打包过程
Android 打包过程 KaelQ 关注2016.10.07 16:31* 字数 1692 阅读 4983评论 4喜欢 271.概况Android APK是如何来的呢?怀着这个问题去查资料,发现了下边这张图。由android的项目经过编译和打包,形成了:.dex 文件resources.arscuncompiled resourcesAndroidManifest.xml解压了一个普通的apk...
2018-04-12 06:49:34
1866
转载 ConcurrentHashMap总结(包括JDK 1.7和1.8的实现比较)
摘要: 本文主要参考网上Blog(详见Reference)总结ConcurrentHashMap的各方面知识,方便复习转自:https://my.oschina.net/hosee/blog/675884并发编程实践中,ConcurrentHashMap是一个经常被使用的数据结构,相比于Hashtable以及Collections.synchronizedMap(),ConcurrentHashM...
2018-04-08 17:27:01
6854
转载 Android性能优化第(八)篇---App启动速度优化之耗时检测处理
Android性能优化第(八)篇---App启动速度优化之耗时检测处理 LooperJing 关注2016.12.21 11:10* 字数 2067 阅读 7852评论 2喜欢 43应用的启动速度缓慢这是很多开发者都遇到的一个问题,比如启动缓慢导致的黑屏,白屏问题,大部分的答案都是做一个透明的主题,或者是做一个Splash界面,但是这并没有从根本上解决这个问题。那么如何从根本上解决这个问题或者做...
2018-03-31 07:05:36
447
转载 Android性能优化(一)之启动加速35%
转自:https://www.jianshu.com/p/f5514b1a826cAndroid性能优化(一)之启动加速35% 双十二技术哥 关注2017.01.10 17:32* 字数 3292 阅读 14637评论 9喜欢 100一、前言随着项目版本的迭代,App的性能问题会逐渐暴露出来,而好的用户体验与性能表现紧密相关,从本篇文章开始,我将开启一个Android应用性能优化的专题,从理论到...
2018-03-31 06:34:35
273
转载 Android 性能优化:使用 TraceView 找到卡顿的元凶
转自:https://blog.csdn.net/u011240877/article/details/54347396Android 性能优化:使用 TraceView 找到卡顿的元凶 标签: android 性能优化2017年01月11日 20:01:2115876人阅读 评论(6) 收藏 举报 分类:Android 性能优化(2) 版权声明:转载前请留言获得作者许可,转载后标明作者 张拭心 ...
2018-03-31 06:29:39
1073
1
转载 在Android Studio中使用Method trace,查看某进程的所有线程trace的方法
转自:https://segmentfault.com/a/1190000011084104背景近几天开发的过程中,遇到了一个很棘手的问题:在没网络情况下OKHttp的任何请求,全都没有任何回应。想要查看线程的调用栈查看是哪里stuck了。于是使用了AndroidStudio的工具。Monitors中CPU的Method tracing功能。这就是今天写这篇文章的目的。(Android Studi...
2018-03-31 06:23:08
4528
转载 Android性能优化典范 - 第6季
原文出处:http://hukai.me/android-performance-patterns-season-6/序言这是Android性能优化典范第6季的课程学习笔记,最近个人事情比较多,从被@起,这篇学习笔记就一直被惦记着,现在学习记录分享一下,请多多包涵担待指正!这次才一共6个段落,涉及的内容主要有:程序启动时间相关的三个方面:activity的创建过程,臃肿的application启动...
2018-03-27 23:34:20
179
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人