- 博客(59)
- 资源 (16)
- 问答 (1)
- 收藏
- 关注
转载 AndroidStudio加速之--构件仓库Artifactory
AndroidStudio加速之--构件仓库Artifactory一、前言二、Artifactory使用流程2.1、下载2.2、启动服...
2020-04-20 23:19:26
729
原创 Android性能优化小结(十)
运行快,运行稳定、体积小,电量/流量节省,基本上可以从这四个方面确定一个APP是否是性能良好的APP,这四个方面对应于APP卡顿、内存泄漏/崩溃,代码质量和逻辑,安装包体积四个层面参考《Android性能优化最佳实践》推荐《Bitmap等相关优化小结》《Andorid App性能优化的一些思考》《Android性能优化系列之Bitmap优化》《Android 内存泄漏总结》一、...
2019-07-10 23:45:45
331
原创 屏幕刷新机制小结(九)
Android刷新机制SurfaceView理解一、Android屏幕刷新机制首先需要了解一些基本概念在一个显示系统里,一般包括CPU、GPU、Display三部分,CPU负责计算数据,把计算号的数据交给CPU,GPU会对图形数据进行渲染,渲染后放到buffer里存起来,然后Display(可称为屏幕或者显示器)负责把buffer里的数据呈现到屏幕上。显示过程,简单来说就是C...
2019-06-23 17:04:35
4650
原创 Bitmap内存管理与APK瘦身九道程序小结(八)
一、Bitmap内存管理与优化质量压缩BitmapFactory.decodeFile()BitmapFactory.decodeResource()BitmapFactory.decodeStream()inDensity :Bitmap的像素密度原理:通过算法扣掉了图片中的一些某些点附近相近的像素,达到降低质量减少文件大小的目的BitmapFactory....
2019-06-16 18:32:18
312
原创 Android Aspect切面编程简单入门
一、使用添加依赖,配置build脚本//1.全局dependencies { classpath 'org.aspectj:aspectjtools:1.8.9' //aspectJ classpath 'org.aspectj:aspectjweaver:1.8.9'}//2.模块中dependencies{ api 'org.aspectj:aspectj...
2019-06-04 00:46:00
862
原创 Window和WindowManager相关知识点(六)
前几节已经做好了铺垫,接下来将将了解Window和WindowManager相关知识点,本章也是简单讲解,配合源码查看效果更佳一、Window表示一个窗口的概念,是一个抽象类,具体实现是PhoneWindow,通过WindowManager即可创建一个Window。WindowManager和WindowManagerService的交互是一个IPC的过程。Android中所有的视图都是通过...
2019-02-25 12:41:46
535
原创 Bitmap等优化相关小结(七)
本节主要介绍性能优化相关,不局限于Bitmap优化等相关知识点,文末有Bitmap解压缩和利用LruCache和DiskLruCache写成的ImageLoader并发加载图片示例优化详情参考 https://www.jianshu.com/p/f7006ab64da7LruCache和DiskLruCache参考 https://blog.youkuaiyun.com/ztchun/article/d...
2019-02-23 15:37:27
492
原创 View事件体系相关面试点(五)
一、View基础 getX和getRawX的区别,坐标系 MotionEvent有几种事件 scrollTo和scrollBy的区别 scrollTo是绝对滑动 scrollBy内部调用了scrollTo是基于当前位置的相对滑动 两者都只能对View的内容进行滑动,而不能使view本身滑动 SurfaceView和...
2019-02-20 00:33:49
222
原创 Android View相关知识点以及原理(四)
本节主要围绕View滑动冲突和View相关的工作原理进行本系列文章都是先列知识点、流程图、部分简要介绍然后对该内容中会出现在面试中的点进行梳理有关知识点并没有深入讲解,对于原理流程图部分,强烈推荐配合源码查看AOSP Android Studio 导入Android源码 (一)引入:今天群里讨论一个问题,不知道大家是否清楚问题:在ActivityThread的main方法中...
2019-01-25 01:20:57
396
原创 Android 四大组件流程、Handler、AsyncTask、IntentService相关面试知识点(三)
一、activity生命周期 什么是activity? Android中的四大组件,用来于用户交互的组件,利用setContentView可以来显示组件 activity的四种状态 running (activity处于栈顶)/paused(失去焦点)/stopped/killed activity生命周期 onCreate 正在...
2019-01-18 00:48:10
340
原创 Android四大组件流程原理图、Handler、AsyncTask、IntentService(二)
本节将了解一下Android四大组件的工作过程、Handler相关、AsyncTask、IntentService相关结合Android 源码查看更佳Android冷启动在之前一篇文章分析过了 AOSP Android 8.0 冷启动流程分析(二)一、Android APP启动过程简介 要了解Android四大组件得先搞清楚APP是怎么启动的。 假设头条新闻APP,...
2019-01-18 00:42:12
537
原创 Binder进程间通信示例 (一)
IPC(Inter-Process Communication) 跨进程通信本节主要是熟悉Android IPC中的AIDL实现方式导读: IPC -> Binder -> 示例 未包含对aidl创建规则的讲解,可以查看一、任何一个操作系统都有对应的IPC机制 windows : 通过剪切版、管道、油槽(windows中最简单的一种进程间通信)等进行通信 ...
2019-01-18 00:31:25
973
原创 Java并发知识点小结
《Java并发编程实战》小结应用层面小结,活跃性、性能与测试书上是啥就是啥,了解就好,没做过多研究,书内学到的更多是思想书内基本介绍的就是循序渐进引导读者思考问题,然后抛出各种并发包下的类,实现一些常见问题一、问题引入 下面的DoubleCheckedLocking类的双重检查加锁(DCL)是否安全呢? public class DoubleCheckedLocking...
2018-12-23 16:41:48
407
原创 Android 热修复与插件化 二
一、什么是热修复 顾名思义,动态的修复或者更新我们的APP的行为,有时候会被称为动态更新 二、热修复的好处 以前APP修复BUG,或者新添一些小功能,只能通过发布一个版本,覆盖安装才能解决问题,过程成本非常高,严重的话可能导致用户流失 现在通过热修复,就能无感修复一些BUG或者添加一些小功能 热修复其实是一种亡羊补牢的手段,热修复和发布的正式版一样,都要经过一些...
2018-11-11 22:18:00
382
原创 Android 热修复与插件化 一
热修复 : 支付宝、优酷、微信刚发布的应用就发现了比较严重的bug有一些小的功能想即时推送给用户去使用插件化 : 美团、淘宝、酷狗解决应用越来越大所带来的各种技术限制,方法数超过65535等解决应用越来越大带来的合作开发问题使用这些热门技术时踩的坑,代码及版本发布的管理一、dex/class深入讲解什么是class 文件能够被JVM识别,加载并执行的文件格式...
2018-11-11 22:15:27
302
原创 AOSP Android 8.0 冷启动流程分析(二)
前奏: Android系统虽然基于Linux系统的,但是由于Android属于嵌入式设备,并没有像PC那样的BISO程序,取而代之的是Bootloader----系统启动加载器。 /boot : 存放引导程序,内核和内存操作程序 /system : 电脑C盘,存放系统及系统应用 /recovery : 恢复分区,进行系统恢复 ...
2018-10-25 01:12:21
2063
原创 九大排序算法总结
九大排序算法最近总结了一下各大常见的算法,并用Java代码实现了一遍。 (平均)时间复杂度O(N^2) 冒泡排序 时间复杂度最好的情况是O(N)、最坏情况是O(N^2) 空间复杂度(1) 稳定(稳定的意思就是一个数组中相同数据在排序后位置不变) 思想: 比较相邻两个数据的大小。 public static int[] sort(int[] data) {...
2018-10-21 18:19:15
363
原创 AOSP Android Studio 导入Android源码 (一)
前段时间又重新导入了系统源码,于是有了这篇笔记。作者在ubuntu上编译好了源码后直接复制到windows上,然后Android Studio打开,大概步骤如下。一、下载reporepo是一款工具,可以使我们在Android环境中更轻松使用GIT。具体不作介绍 安装GIT sudo apt-get install git 创建bin,并加入path: m...
2018-10-19 00:38:56
1379
原创 Python 使用Charles爬取APP信息以及公众号信息
一、Charles使用 这个就不介绍了,自行网上查阅,官网下载然后破解一下,打开手机操作一波,都挺简单的。 注意事项:都需要安装证书,手机和电脑都需要安装证书,443端口指的是https服务。二、APP信息抓取分析前期准备,需要知道url,cookies,response返回的数据,请求的方式打开想要抓取的APP,这里是得到页面逻辑思维栏目,在手机上不断刷新,能在Charles的Structure...
2018-06-08 00:23:55
5138
6
原创 Dragger2的简单使用 MVP模式构建注册功能
2018-5-19简介: Android项目,目前一般都采用MVP模式,利用Dagger注入实例化类,利用LifeCycle进行生命周期管理,利用RxJava+Retrofit进行网络访问,用ARouter进行组件间通信。其中Dagger是其中比较难的一个知识点。Dagger是安卓里面最棒的依赖注入框架,第一代由Square公司共享出来的,第二代则是由Google接手后推出的。刚开始自己学...
2018-05-19 21:09:01
596
原创 Scrapy 简易爬取Boss直聘 可设定city job 爬取工作到excel或mysql中
2018-5-17一、 本篇讲述了如何编写利用Scrapy爬虫,把数据放入到MYSQL数据库中和写入到excel中,由于笔者之前爬取过拉勾网,但个人倾向与Boss直聘,所以再次爬取Boss直聘来作为知识梳理二、 Scrapy工作原理介绍,之前的总结中已经介绍过了,而且网上有data flow 流程图,这里主要说一下,Scrapy中先是将SPIDERS中的url放入调度器,通过引擎,再经过DOWN...
2018-05-18 01:34:33
1054
原创 Scrapy简易爬取大众点评美食
Scrapy简易爬取大众点评美食最近快过五一了,对于部分人来说可定是旅游出去吃吃喝喝咯,那就来个爬取美食的吧,主要还是半个多月没写与工作无关的代码了,快生疏了,再不写写估计又还回去了效果图 总共十四列数据,包括环境、人均消费等等接下来就得开始敲代码了,使用Scrapy+Selenium方式爬取,每次爬取先打开网页,爬取完后发送信号关闭网页,为什么用网页呢,因为笔者刚开始直接用Scrapy方式爬取,...
2018-04-27 23:06:15
2416
原创 Scrapy 使用总结
2018-4-8scrapy 工作流程:engine获得spiders内url,请求调度程序,对url进行爬取,Downloader返回response给爬虫引擎,引擎返回response给spiders,然后spiders处理item,发送给管道处理,然后把结果返回给调度器,然后重复此过程 一、 首先是Scrapy普通爬虫,没有什么可讲 scrapy startpr...
2018-04-08 22:40:02
580
原创 利用Selenium 登录京东,抢购19.9的荣耀手环3
一、首先,19.9元抢购是京东吸引顾客的,最后反正强盗也是上百块,坑爹二、利用Selenium做抢购的话能看到物品,用post请求就需要解析页面,获取参数信息,再模拟登录,但是自己就不能实时了解物品详情吧,所以我选择了第一种,第二种也不难,F12可以知道需要哪些参数,直接解析就可以三、说说验证码吧,个人觉得简单点做,要么手动看着网页输入,要么解析出验证码路径,请求并保存图片在本地,然后自动打开图片...
2018-04-03 00:43:00
2568
原创 Python 3.6 优雅的爬取猎聘网招聘信息
1. 通过三种方式抓取字段: 招聘标题 待遇 地区 学历要求 经验 公司名称 公司的行业 职位描述2. 效果预览 3. 注意事项 * 利用xpath或者其它方式选取节点时,需要注意判断是否为None,如果在后面调用.strip()等方法肯定会报错,所以建议提取出一个共用的判断方法 * url拼接问题,当大部分详情页链接都有schema时,突然返回你一个没...
2018-03-20 22:34:05
5101
3
原创 用Python大神Kennethreitz新框架request-html爬妹纸图遇坑记
一、不了解用法的可以去了解用法 代码传送门二、这个网站不小心点开的,感觉大家应该都会喜欢,下载图片这块要仔细,其他地方按部就搬 一般下载图片都是用 req = request.Request(url, headers=headers) f.write(request.urlopen(req).read()) headers中包含了Use-Agent或者Refer...
2018-03-13 01:18:06
1842
原创 Python3.6爬虫集合 xpath bs4 re 爬51job前程无忧招聘信息 豆瓣音乐等等
总结一下这两天自己写的爬虫,之前一直用框架爬虫,感觉有必要熟练最基础的没有框架爬虫才能让我更好理解框架,代码在链接内,代码中都有详细的注释1. 发送邮件,这里选择发送网页邮件,其他邮件发送可以看廖雪峰老师的教程 * 邮件协议为SMTP,端口为25 * 需要模块 email(构造邮件) smtplib(发送邮件) * 代码传送门 * 无具体注意事项2. xpath爬取豆瓣音乐...
2018-03-09 22:55:04
1349
原创 有关CDMA2000 写号IMSI_M计算
有关CDMA2000写号时IMSI_M计算,如果你选择和我一样看协议的话,本文下面你可以不用看了,直接看协议第六章IS95B测试方提供一个IMSI号刷到UIM卡里面,这就需要把数字格式的IMSI转换成CDMA2000文件系统6F22(EF_IMSI_M)中要求的格式。6F22格式: 00 AA AA BB BB BB CC 80 DD DD 00代表CLASS=0 AA...
2018-02-12 22:38:45
786
原创 Python 一百多行实现抢票助手
一. 代码使用Python+Splinter开发,Splinter是一个使用Python开发的开源Web应用测试工具,它可以帮你实现自动浏览站点和与其进行交互。二. 安装好Python 3或2都可以,然后安装Splinter `pip install Splinter`三. Splinter注意事项 1. Splinter的Browser类默认优先使用firefox,所以用chr
2018-02-06 23:56:58
19801
14
原创 Python 3.6 统计Java代码或python代码中有效代码占比
刚才突然想统计一下自己写的代码中有效代码数量,也好久没在这上面写博客了(播客搬家了),然后就有了此文。代码如下(有bug请指出):一、直接python demo.py运行二、或者 import demo demo.run("你的源码地址")#!/usr/bin/env python#coding=utf-8import os,re#代码所在目录FILE_P
2018-02-05 00:26:04
645
原创 Android JNI开发小结
JNI使用,简单解释其中的含义,具体示例在附件类可以找到,例子都属于简单易懂如何配置使用 CMAKE开发extern “C”进行链接指定,这告诉编译器,请保持我的名称,不要给我生成用于链接的中间函数名;exter “C”{jni代码} JNIEXPORT void JNICALL Java_util_JNIUtils_login(JNIEnv *env, jobject obj, jstri
2017-11-09 10:33:00
287
转载 Android项目Eclipse打第三方jar包
jar是java字节码文件(class文件)的归档文件;aar是android中特有的归档文件,既包含字节码文件也包含android的资源文件等如果是aar包,内部的资源文件不是固定值,都是形同layout.activity_main或者id.hello_world引用,而不是jar包中的固定值表示所以如果想要实现跳转到jar包中的Activity,利用Android Studio则可
2017-11-06 14:27:23
979
原创 java服务器下载文件中遇到的编码问题
java中,下载文件可能会遇到因为浏览器而导致编码问题。public static String filenameEncoding(String filename, HttpServletRequest request) throws IOException { String agent = request.getHeader("User-Agent"); //获取浏览器
2017-09-07 19:35:00
575
原创 http上enctype属性等字符编码浅谈
Form的enctype属性为编码格式,常见有两种:application/x-www-form-urlencoded(默认)multipart/form-data 上传文件表单要设enctype=”multipart/form-data,但是request.getParmeter(“XXX”)来取值,可以使用DiskFileItemFactory、ServletFileUpload来对req
2017-09-05 21:40:20
475
原创 Android开发,崩溃信息收集
由于需求,公司需要收集程序崩溃,异常退出等信息,然后上网查需资料,写了一个CrashHadler类,只要在程序入口初始化此类就能收集崩溃信息,需要的朋友们可以看一下,崩溃信息收集保存在crash文件夹下,以时间命名public class CrashHandler implements Thread.UncaughtExceptionHandler { private Thread.U
2017-06-09 14:46:49
390
原创 软键盘弹出显示或隐藏工具类
写了一个KeyBoardUtils工具类,在你需要弹出隐藏键盘的Activity里,只需要KeyBoardUtils.registerKeyBoard(this,ids).第二个参数是EditText等输入内容的控件的id,具体看工具类。/** * Created by Administrator on 2017/6/9. */public class KeyBoardUtils {
2017-06-09 14:34:16
486
原创 Android通用流行框架
Android通用流行框架缓存DiskLruCache(Lru磁盘缓存)图片加载Android Universal LoaderPicassoFrescoGlide图片处理Picasso-transformationsGlide-transformationsAndroid-gpuimage*网络请求 Android Async HTTPAndroidAsyncOkHttp
2016-09-21 09:46:36
667
原创 几个实用性跟Intent有关的功能
拨打电话` public void call(View v){ Intent it = new Intent("android.intent.action.CALL", Uri.parse("tel:"+person.getNumber())); startActivity(it); Toast.makeText(Call.this,"正在拨打电话,请稍后...",T
2016-09-04 12:51:40
670
alarmclock
2016-06-04
几种方法实现下拉刷新,上拉加载
2016-05-02
material design的几种布局
2016-04-29
Android Studio里出现的问题,该怎么解决?
2015-11-26
TA创建的收藏夹 TA关注的收藏夹
TA关注的人