自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

to_perfect的博客

个人博客 https://weiwangqiang.github.io/

  • 博客(41)
  • 资源 (5)
  • 收藏
  • 关注

原创 framework之Activity启动流程(基于Android11源码)

手把手教你看activity的启动流程,就怕你没看懂了

2021-06-09 22:31:06 137 4

原创 你真的会用java注解吗?

教你如何自定义编译时注解、运行时注解,顺带手写一个ButterKnife框架

2021-09-30 19:11:39 26

原创 Android App性能监控工具

教你如何使用工具分析app的性能

2021-08-22 16:11:22 133

原创 framework之Activity 生命周期解析(基于Android11源码)

这一篇activity的生命周期分析,肯定会让你“哦”起来

2021-07-04 17:10:00 80 1

原创 AIDL实现原理

这篇文章将带你细看AIDL的结构和实现原理

2021-05-23 15:52:01 430 5

原创 Android启动模式详解

再谈启动模式,貌似没啥意思,大家似乎都背得滚瓜烂熟了。但是如果面试问到下面三个问题,你能正确回答吗?

2021-04-19 22:50:27 30

原创 抓包教程详解

抽空整理一下web,app的抓包技巧,供大家参考。

2021-04-10 22:32:56 3787

原创 用surfaceView实现高性能动画

通过比较drawable动画的性能,我发现了surface画高性能动画的好处

2020-12-26 20:14:31 171

原创 git用法详解

教你提升git使用效率

2020-07-26 14:29:40 107

原创 mysql 8.0找不到my.ini配置文件解决方案

为了方便日后的工作,在这里整理了一下mysql的基本配置

2020-06-28 22:19:13 9230 1

原创 android调试——logcat详解

logcat到底怎么用才爽? 为此,我决定好好研究一下

2020-04-23 13:37:30 214

原创 android调试——教你用dumpsys命令调试
原力计划

这一篇就聊聊dumpsys 比较常用的命令,便于调试Android应用

2020-03-17 13:44:28 834

原创 ElasticSearch 索引详解

还在用mysql进行全文索引?来试试强大的搜素引擎ElasticSearch 吧!本文基于ElasticSearch 7.X版本,接口与老版本会有些出入。

2020-02-09 18:24:42 248

原创 详细解剖adb命令

写在前面开始想将标题设置为“深度解剖adb命令,后来犹豫了一下,“深度”,何为 “深度” ? 如同“精通”一样,不敢随意挥写。但是本文会尽力列举adb的相关命令和说明,那就“详细”一词吧!

2019-11-10 11:10:40 839

原创 mac平台反编译apk,获取源码,androidmanifest和资源文件

“提供一个反编译apk的工具”在window上反编译apk是比较容易的事情,但是在mac上就需要稍微费力一些,这里为了方便大家,特意提供了一个python脚本,实现快速反编译apk注意:需要python环境哦~~1、用法项目地址将项目clone到本地,到项目根目录下,打开iterm,输入python DecompileApk.py /Volumes/G/xxxx.apk即后面加...

2019-06-20 13:26:49 2123

原创 用python实现自动化翻译

“爬Google翻译还是需要点技巧的“引言在做全球应用中,处理每个国家的翻译是必不可少的,也是最棘手的问题。为了保证翻译是正确的,这里需要借用Google翻译的接口,为此,特意写了一个python脚本来对接google翻译 _。声明:严禁将代码用于商业用途1、GoogleTranslate代码(入口代码)注意:如果返回code不为200,请更新cookies#!/usr/bin/p...

2019-06-16 21:28:58 5137 4

原创 【flutter】把Google官方的历史时间demo跑起来

“其实我并不喜欢追求新技术。flutter是Google出的?真香~“引言其实跨平台的痛,我真的没有体会到,毕竟我司不做ios平台。但是如果,flutter有可能成为新系统的开发框架,还是值得学习一下的,尤其是看了官方的demo。我们将会搭建flutter开发环境,来跑这个demo。1、 开发环境搭建其实有点恶心新环境的搭建,意味着,午休时间是没有了的。好在flutter提供了完整...

2019-05-11 21:21:41 226

原创 android适配右到左布局注意事项

  呜呼,伊朗的项目终于做完了,大部分都是在整理右到左布局的需求。好在android sdk 从API17(Android4.2)开始支持右到左布局的需求,但是会有很多坑需要去填。  Android中的大部分组件是支持右到左布局的,只需要在Androidmanifest中配置如下: <application .... android:supportsRt...

2018-12-09 18:23:18 5272 7

原创 cannot open line '/dev/tty.usbserial' for r/w resource busy

在进行串口调试的时候,需要在iterm上查看log信息只需要输入以下命令screen /dev/tty.usbserial-gggggggg1 115200有时候会遇到以下问题cannot open line '/dev/tty.usbserial' for r/w resource busy提示资源被占用了,感觉有点像进程被占用是一个问题。Google了一下,没有找到具体的解决方案,...

2018-10-27 13:47:19 1471

原创 Android采用pm实现静默安装(降级安装)的解决方案

最近在做一个apk分析器,里面可以解析系统中所有安装app的信息,并提供组内开发的apk文件下载、静默安装(包括降级安装),其中在降级安装中难度较大,在Android4.4与Android 8的解决方案不同,其他版本没有做测试。在此之前,打算聊聊adb的安装方式一、adb安装apkadb安装apk常用命令如下:adb install G:\demo.apk即install后面接包在...

2018-08-20 08:58:39 13058

原创 Android单元测试全解

  自动化测试麻烦吗?说实在,麻烦!有一定的学习成本。但是,自动化测试有以下优点:节省时间:可以指定测试某一个activity,不需要一个个自己点单元测试:既然Java可以进行单元测试,Android为什么就不可以呢?一键适配:不解释正式开车!1、Java单元测试Android studio(以下简称as)可以跑纯Java代码,这个想必大家都知道。这里就简单介绍一下as...

2018-07-15 22:04:35 7243

原创 【android】插件化技术原理详解

作为移动端的黑科技,插件化技术一直受大厂的青睐。插件化技术有减少宿主Apk体积,可以独立更新,模块化开发等优点,让宿主APP极具扩展性。那么,现在就来聊聊其中的技术实现

2018-03-10 22:42:11 377

原创 【Android】换肤技术讲解

主题,是许多APP必备的一个功能,用户可以根据自己的喜好,来切换具有个性的主题,让我们的APP更具把玩性。这篇博文就来聊聊皮肤切换的原理

2018-03-01 22:56:26 266

原创 【Android】仿QQ可拖拽气泡

学习,从模仿开始。今天就学习一下QQ自定义的气泡,先上效果 这里涉及到一下知识点:Path:画贝塞尔曲线Canvas:画形状和文字以及图片view:触摸事件属性动画:处理爆炸效果一、初始化整个过程可以分为以下4个状态:静止状态:画一个大圆相连状态:画两个一大一小的圆,并通过贝塞尔曲线相连, 如图 断开状态:画一个跟随手指移动的圆爆炸状态:画出爆炸效果,...

2018-02-28 16:55:25 1035

原创 下载Android源码流程(完整版)

  要在Linux环境下操作,要在Linux环境下操作,要在Linux环境下操作~~ 不要想在Windows环境下操作,因为会有各种问题。Windows环境的童鞋又不想装双系统的可以跟着下面的操作,Linux的童鞋可以直接跳过看。Mac的童鞋就略过~~~(1)配Linux环境  在window中配置Linux虚拟机需要以下软件VirtualBox下载地址Ubuntu桌面(推荐版...

2017-12-05 15:11:18 3228 1

原创 Android TV 悬浮球模拟物理按键

最近在体验实习的时候做了一个TV的内存管家,其中有个要求是实现一个悬浮球,模拟TV控制器的按键,实现上下左右,back,menu,home等效果,并且做一个火箭升空的效果。这时候才发现网上有关tv开发的资料十分少,不像手机端,一搜堆博客。so 就讲讲其实现

2017-11-30 11:25:07 1733

原创 浅谈android的事件分发机制

最完整的view事件分发讲解

2017-09-19 15:27:28 330

原创 大话android 进程通信之AIDL

上一篇的service涉及到进程通信问题,主要解决办法是通过 messenger来发送消息,这也是Google推荐的进程通信方式,比较简单易懂嘛~~,messenger底层也是通过binder来实现的,对于binder,这里就不做介绍了。但是如果允许不同应用的客户端用 IPC 方式访问服务、在服务中处理多线程就不太适合了,还是得乖乖用AIDL,接来下就通过一个demo来说说AIDL的开发

2017-09-07 21:03:01 471

原创 将高级service开发简单化

作为Android四大组件之一,各位大咖已经将service的外衣扒得体无完肤了,但是为什么还要来炒冷饭呢?这是十大未解之谜之一。我不管,看完本篇博文,你将学会一下内容(敲黑板!!!!)且看

2017-07-29 00:01:13 461

原创 教你如何使用android studio发布release 版本(完整版)

想必还有人对如何在android studio (以下简称as)发布release版本的app而狂刷百度吧?都是过来人,我很理解这种心情,百度到的基本是半成品,为什么这么说呢?百度一下,你就知道,好了,不废话了,下面奉上完整的教程。

2017-04-03 22:54:58 71374 15

原创 认真点,带你全面了解xutils3

更好的xutils3来了,你确定不来围观?

2017-02-09 17:29:29 3668

原创 android studio那些不为人知的秘密

作为Google亲儿子,android studio带给我们众多的惊喜,ADT最近也正式退役了,想必大家都已经用上android studio,甚至是android studio的老用户了,但你真的了解android studio吗?

2017-01-11 17:11:00 3019

原创 高德地图报Native method not found: com.autonavi.amap.mapcore.MapCore.nativeNewInstance:

Android 高德地图 java.lang.UnsatisfiedlinkError Native method not found: com.autonavi.amap.mapcore.MapCore.nativeNewInstance:(Ljava/lang/String;)

2017-01-02 14:46:40 3690

原创 javaweb开发中的那些坑

最近电脑有点问题,没办法就重装系统了,花了整整一个晚上重装IDE、,配置环境,好不容易把eclipse的环境弄好,加载之前的项目时却又到各种问题,一怒之下,写一篇记录下遇到的各种javaweb的坑

2016-12-27 19:34:44 1897

原创 C语言基本数据结构之五(折半插入,堆排序,冒泡排序,快速排序,并归排序)

上一篇写了序列的查找算法,这次就聊聊序列的几种重要的排序

2016-12-27 08:17:45 3207

原创 C语言基本数据结构之四(线性,对分,二叉树查找及二叉树删除)

一、线性查找基本思想:对给定的一关键字K,从线性表的一端开始,逐个进行记录的关键字和 K 的比较,直到找到关键字等于 K 的记录(成功)或到达表的另一端(失败),其时间复杂度为O(n)。查找成功时的平均查找次数为: ASL=(1+2+3+4+……+n)/n=(n+1)/2查找不成功时的比较次数为:n+1优点:算法简单,无需排序,采用顺序和链式存储均可。缺点:平均查找

2016-12-24 17:09:25 1291

原创 C语言基本数据结构之三(图的广度及深度遍历,求单源最短路径的Dijkstra算法)

图的基本概念和广度及深度遍历,求单源最短路径的Dijkstra算法

2016-12-24 09:22:29 6405 4

原创 C语言基本数据结构之二(二叉树的三种遍历,节点数以及深度算法)

关于二叉树的定义,网上有比较好的介绍,在这里就简单介绍二叉树的一些性质二叉树的基本性质1)二叉树的第i层上至多有 2^(i-1)(i ≥1)个结点;2)深度为 h 的二叉树中至多含有 2^h – 1 个结点;3)若在任意一棵二叉树中,有 n0 个叶子结点,有 n2 个度为 2 的结点,则:n0 = n2 + 1。特殊形式的二叉树

2016-12-05 19:29:43 7234

原创 C语言基本数据结构之一(线性链表的增,删,改,查及倒序)

这学期刚好学了计算机软件基础,便顺带把C的基本数据结构过一遍,在期末的时候抽空整理了一下知识点,以免以后忘记了,如有错误,希望大家能帮忙改正我有点懒,就直接上代码,里面注释也相对详细#include #include #define MAX 100typedef struct LinkList list;struct LinkList{ int data; struct LinkLis

2016-12-04 21:22:48 1476

原创 android studio 导入、移除module、以及加载module中的jar包

一、在android studio中导入module关于如何在自己的项目中导入module,网上其实已经有许多这样的博客。在这里,我就简单分享一下。在File-->New-->import Module 就会出现如下界面,点击红色箭头所指处,选择你需要导入的module包,OK即可二、移除moduleandroid studio 并不能直接移除module,得需要走一点弯路,想

2016-09-16 15:43:39 4630

【android】换肤技术Demo

该demo详细讲解Android换肤技术的实现,为大家学习Android换肤技术提供demo

2018-03-01

仿QQ可拖拽气泡

模仿QQ首页可以拖拽的小红点,有爆炸效果 代码仅供学习,不作为任何商业用途

2018-02-28

AIDL进程通信

android 进程通信,分为service端和client端,通过AIDL 实现service与client端的同信问题,代码如下 public class BookManagerService extends Service { private String TAG = "BookManagerService"; private NotificationManager mNM; private CopyOnWriteArrayList<Book> bookList= new CopyOnWriteArrayList<>(); private Binder binder = new IBookManager.Stub(){ @Override public List<Book> getBookList() throws RemoteException { return bookList; } @Override public void addBook(Book book) throws RemoteException { if(!bookList.contains(book)) bookList.add(book); Log.i(TAG, "addBook: 添加成功 !"); Log.i(TAG, "addBook: \n book id :"+book.bookId +" \nname : "+book.bookName); } @Override public boolean removeBook(Book book) throws RemoteException { Log.i(TAG, "removeBook: "+book.toString()); if(remove(bookList,book)){ Log.i(TAG, "removeBook: 删除成功 "); return true ; } Log.i(TAG, "removeBook: 删除失败了 "); return false ; } }; public boolean remove(CopyOnWriteArrayList<Book> list ,Book rBook){ for(Book book : list){ if(book.bookName .equals(rBook.bookName) && book.bookId == rBook.bookId){ list.remove(book); return true ; } } return false ; } @Override public void onCreate() { super.onCreate(); Log.i(TAG, "onCreate: -------- ·"); mNM = (NotificationManager)getSystemService(NOTIFICATION_SERVICE); } @Override public IBinder onBind(Intent intent) { Log.i(TAG, "onBind: "); return binder; } }

2017-09-07

【Android】pluginDemo

android的插件化技术原理详解,提供大家学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

2018-03-10

staruml-5.0

一款免费的画uml软件

2017-04-23

空空如也

空空如也

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

TA关注的人 TA的粉丝

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