自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

技术分享记录

骐骥一跃,不能十步;驽马十驾,功在不舍;锲而舍之,朽木不折;锲而不舍,金石可镂。——《荀子,劝学》

  • 博客(28)
  • 资源 (3)
  • 收藏
  • 关注

原创 Android耗电优化

什么是耗电优化有些同学可能会疑惑,所谓的耗电优化不就是减少应用的耗电,增加用户的续航时间吗?但是落到实践中,如果我们的应用需要播放视频、需要获取 GPS 信息、需要拍照,这些耗电看起来是无法避免的。如何判断哪些耗电是可以避免,或者是需要去优化的呢?你可以看下面这张图,当用户去看耗电排行榜的时候,发现“王者荣耀”使用了 7 个多小时,这时用户对“王者荣耀”的耗电是有预期的。假设这个时候发现某...

2019-02-20 18:11:02 3577 4

原创 Nginx代理多个服务器配置

多个服务器代理到同一个端口​``` #访问tomcat-server :http://127.0.0.1或者http://127.0.0.1/aa #访问tomcat-server2:http://127.0.0.1/android upstream tomcat-server{ server localhost:8686; } upstream tomcat-server2{ server localhost:8687; } s

2020-08-07 14:37:05 1872

原创 java中的队列(queue)

queue 在java1.5被引入,它和list 、set一样继承自collection接口。其中LinkedList 实现Deque接口1.未实现阻塞接口的:LinkedList : 实现了Deque接口,受限的队列PriorityQueue : 优先队列,本质维护一个有序列表。可自然排序亦可传递 comparator构造函数实现自定义排序。ConcurrentLi...

2019-07-16 14:53:51 532

原创 Android事件分发总结

Android事件分发总结(View)1.onTouch和onTouchEvent有什么区别,又该如何使用?从源码中可以看出,这两个方法都是在View的dispatchTouchEvent中调用的,onTouch优先于onTouchEvent执行。如果在onTouch方法中通过返回true将事件消费掉,onTouchEvent将不会再执行。另外需要注意的是,onTouch能够得到执...

2019-07-15 11:03:48 134

原创 GOF23设计模式——责任链模式(chainOfResp)

责任链模式/** * 责任链的抽象类(所有领导的基类) */public abstract class Leader { protected String name; protected Leader nextLeader;//后继对象 public Leader(String name) { this.name = name; }...

2019-06-07 10:02:34 193

原创 GOF23设计模式——中介者模式(Mediator)

中介者模式/** * 中介者接口 */public interface Mediator { void register(String dname,Department department); void command(String dname);}/** * 总经理 */public class President implements Mediato...

2019-06-07 09:52:51 148

原创 GOF23设计模式——享元模式(Flyweight)

享元模式元模式的结构享元对象能做到共享的关键是区分内蕴状态(Internal State)和外蕴状态(External State)。一个内蕴状态是存储在享元对象内部的,并且是不会随环境的改变而有所不同。因此,一个享元可以具有内蕴状态并可以共享。一个外蕴状态是随环境的改变而改变的、不可以共享的。享元对象的外蕴状态必须由客户端保存,并在享元对象被创建之后,在需要使用的时候再传入到...

2019-06-06 17:15:55 380

原创 GOF23设计模式——装饰模式(Decorator)

标题装饰模式(Decorator)主要代码结构public interface ICar { void move();}class Car implements ICar{ @Override public void move() { System.out.println("车子在陆地上跑"); }}class SuperCa...

2019-06-06 14:22:48 141

原创 gradle插件版本和gradle版本的对应关系

官方地址:https://developer.android.com/studio/releases/gradle-plugin.html#updating-gradle1.gradle版本配置位置在gradle/wrapper/gradle-wrapper.properties 中:distributionUrl = https\://services.gradle.org/distrib...

2019-02-26 18:08:34 5196

原创 Android电量优化的相关建议

Android电量优化的相关建议①在需要网络连接的程序中,首先检查网络连接是否正常,如果没有网络连接,那么就不需要执行相应的程序;②判断网络类型,针对特定的数据在特定的网络下请求.例如:大量数据传输的时候在wifi下请求;wifi下下载数据耗电量只有2、3、4G的1/3.③使用效率高的数据格式和解析方法,推荐使用JSON和Protobuf;④在进行大数据量下载时,尽量使用GZIP方式下载...

2019-02-25 14:03:53 396

原创 Android耗电优化实践 (二)- 检测错误的UI绘制刷新导致的耗电

检测错误的UI绘制刷新导致的耗电排除由于错误的绘制方法,导致CPU占用过高,进而导致耗电量高检测方式参考大众点评App的短视频耗电量优化实战首先打开开发者选项,打开GPU视图更新的开关,然后看看应用内部有哪些不必要的UI刷新,场景一(自定义TextView)首页快速组队页面,列表中查看更多在一直刷新,直接看代码,这里有一个自定义View,继续看TextViewWideCo...

2019-02-22 18:23:31 1808

原创 Android耗电优化实践 (一)- 利用Hook方式监控排查耗电

Java HookHook 方案的好处在于使用者接入非常简单,不需要去修改自己的代码。下面我以几个比较常用的规则为例,看看如果使用 Java Hook 达到监控的目的。WakeLock。WakeLock 用来阻止 CPU、屏幕甚至是键盘的休眠。类似 Alarm、JobService 也会申请 WakeLock 来完成后台 CPU 操作。WakeLock 的核心控制代码都在PowerManag...

2019-02-20 18:07:30 1693 1

转载 Android进程保活的一般套路

Android进程保活的一般套路作者 LooperJing关注2017.02.21 16:49* 字数 4290 阅读 4090评论 69喜欢 214自己曾经也在这个问题上伤过脑经,前几日刚好有一个北京的哥们在QQ说在做IM类的项目,问我进程保活如何处理比较恰当,决定去总结一下,网上搜索一下进程常驻的方案好多好多,但是很多的方案都是不靠谱的或者不是最好的,结合很

2017-03-15 10:47:40 1423

转载 插件开发之360 DroidPlugin源码分析(五)Service预注册占坑

在了解系统的activity,service,broadcastReceiver的启动过程后,今天将分析下360 DroidPlugin是如何预注册占坑的?本篇文章主要分析Service预注册占坑,Service占了坑后又是什么时候开始瞒天过海欺骗AMS的?先看下Agenda:AndroidMainfest.xml中概览Service中关键方法被hook时机startService被hook

2016-10-11 15:03:54 763

转载 插件开发之360 DroidPlugin源码分析(四)Activity预注册占坑

在了解系统的activity,service,broadcastReceiver的启动过程后,今天将分析下360 DroidPlugin是如何预注册占坑的?本篇文章主要分析Activity预注册占坑,Activity占了坑后又是什么时候开始瞒天过海欺骗AMS的?先看下Agenda:AndroidMainfest.xml中概览Activity中关键方法被hook时机startActivity被h

2016-10-11 15:03:25 413

转载 插件开发之360 DroidPlugin源码分析(三)Binder代理

Hook机制中Binder代理类关系图Hook机制中Binder代理时序图MyServiceManagerServiceManagerCacheBinderHookServiceManagerBinderHookBinderHookHook机制中Binder代理类关系图Hook机制中Binder代理时序图 MyServiceManagermOriginServiceCache:这里存

2016-10-11 15:02:45 310

转载 插件开发之360 DroidPlugin源码分析(二)Hook机制

前言:新插件的开发,可以说是为插件开发者带来了福音,虽然还很多坑要填补,对于这款牛逼的插件机制,一直想找个时间分析和总结下它的code,话不多说,直接入正题,本文是分析../hook/handle及../hook/proxy下代码,../hook/binder单独分析Hook机制的包结构关系Hook机制的类图关系Hook机制的时序图关系Manifest权制申请基类Hook做了什么?Hoo

2016-10-11 15:00:35 365

转载 插件开发之360 DroidPlugin源码分析(一)初识

插件开发之360 DroidPlugin源码分析(一)初识DroidPlugin的是什么? 一种新的插件机制,一种免安装的运行机制,是一个沙箱(但是不完全的沙箱。就是对于使用者来说,并不知道他会把apk怎么样), 是模块化的基础。DroidPlugin的缺点是什么?a.通知栏限制(无法在插件中发送具有自定义资源的Notification,例如: 1. 带自定义RemoteLayout的Noti

2016-10-11 14:59:41 460

原创 用FileReader读取本地文本文件

读取char数组的方式,避免BufferedReader()的readLine()函数的阻塞,有些时候一行文本太长,readLine()会阻塞很久,

2016-01-25 10:15:20 929

原创 android UI设计的一些心得与问题解决(无效果图)

1.把Button或者ImageButton的背景设为透明或者半透明:半透明透明其他透明度:在RGB的值前面加上数字(100以内),如#90436EEE(RGB为436EEE),#50436EEE,根据值的大小呈现不同的显示效果,值越小透明度越高。2.设置按钮背景图片或颜色:btn.setBackgroundResource(R.drawable.comment_sel

2015-03-12 12:55:22 1058

原创 asyncTask用法

package com.example.testasynctask;import java.util.ArrayList;import java.util.List;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import android.annotation.S...

2014-11-19 15:52:44 477

原创 网页源码查看器

package com.itheima28.htmldemo;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;import android.a

2014-11-03 16:26:27 546

原创 获取网络图片的代码

package com.itheima28.netphoto;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import javax.net.ssl.HttpsURLConnection;i

2014-11-03 16:23:28 564

转载 java判断字符串是否为空的方法总结

以下是java 判断字符串是否为空的四种方法:方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低:                                    if(s == null ||"".equals(s));方法二: 比较字符串长度, 效率高, 是我知道的最好一个方法:                      if(s == null || s.lengt

2014-08-15 17:46:45 525

原创 过滤器Filter的开发(笔记)

开发Filter        想要开发一个过滤器需要如下两个步骤:            (1)写一个类实现特定的接口Filter                生命周期:当服务器启动时,web应用加载后,立即创建这个web应用中的所有的过滤器,过滤器创建出来后立即调用init方法执行初始化的操作.                创建出来后一直驻留在内存中为后续的拦截进行服务.每

2014-08-10 20:44:14 661

原创 消息格式化器

import java.text.MessageFormat;import java.util.Calendar;import java.util.Date;import java.util.Locale;public class MSGFormatDemo {//At 12:30 pm on jul 3,1998, a hurricance destroyed 99

2014-08-09 09:30:31 522

原创 货币格式化器

import java.text.NumberFormat;import java.text.ParseException;import java.util.Locale;import org.junit.Test;public class NumberFormatDemo { /** * 将数字表示成字符串形式,可以根据不同的地区语言环境转换为不同的字符串 */ @Tes

2014-08-09 09:18:03 496

原创 java代码国际化getDateTimeInstance和SimpleDateFormat

import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Locale;import org.junit.Test;public class DateFormatDemo {

2014-08-09 09:01:30 797

linux-util

linux上的一个util工具包,是一个应用软件,里面包含很多命令,当你的linux很多命令不支持时,安装这个工具就可以了

2013-12-09

minix文件系统分析

minix文件系统分析,是minix文件系统而不是系统

2013-12-09

空空如也

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

TA关注的人

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