qinggancha的博客

私信 关注
清甘茶
码龄7年

纯属笔记,方便自己查看,请谨慎阅读

  • 16,867
    被访问量
  • 23
    原创文章
  • 216,379
    作者排名
  • 3
    粉丝数量
  • 于 2014-07-18 加入CSDN
获得成就
  • 获得3次点赞
  • 内容获得0次评论
  • 获得14次收藏
荣誉勋章
兴趣领域
  • #Android
    #性能优化#面试#Java#数据结构
TA的专栏
  • 琐碎知识点
    10篇
  • android 底层
    3篇
  • 错误锦集
    2篇
  • 读书笔记
    6篇
  • 算法
  • android 安全
    2篇
  • 转载
    1篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

adb devices no permissions user in plugdev group are your udev rules wrong

Linux下调试android设备:adb devicesList of devices attachedxxxxxxxx no permissions (user in plugdev group; are your udev rules wrong?);see [http://developer.android.com/tools/device.html]按照以下操作解决问题:$ lsusbBus 001 Device 002: ID 8087:8000 Intel Cor
原创
472阅读
0评论
0点赞
发布博客于 8 月前

android8.0 源码烧录Nexus 6P设备

之前下载的源码都是跑在模拟器上的,前段时间入手了个Nexus 6P,把8.0系统源码烧录进了真实的手机,再次记录一下,一下操作必须要在完成源码之后,并且成功编译之后进行的操作,如未下载源码或编译失败,请自行编译,在此友情提示:源码最好在ubuntu上进行,不要用虚拟机或者mac,坑很多,直接在ubuntu上,会很省心。本篇文章也是基于ubuntu进行的,版本是:ubuntu18下载源码时一定要在官网上看好对应的版本号,和自己的手机设备对应才行,不然源码下载之后也不会成功烧录,选择编译系统版本:htt
原创
329阅读
0评论
0点赞
发布博客于 9 月前

android apk 安装流程

android系统中存在一个特殊的区域,在开机的时候,加载这块区域的信息,通过系统扫描这块区域,把对应的内容加载都内存中去,每个安装一个新的应用,就会重新更新此区域,这样就能保持最新的状态,这就是为什么在手机桌面点击一个图标就能快速启动一个app的原因,因为内存中已经有此信息,包括缓存、包名、签名、权限等等基本信息。apk分为两大类,一种是系统app,一种是第三方app,系统应用必须是root...
原创
68阅读
0评论
0点赞
发布博客于 10 月前
PX30 android 8.1开机动画修改
发布Blink于 1 年前
Android5.1开机LOGO与开机动画
发布Blink于 1 年前
Android8.1 修改开机动画
发布Blink于 1 年前
Android 替换系统桌面Launcher
发布Blink于 1 年前
Android 开发替换Launcher
发布Blink于 1 年前
Android开机运行,替换系统launch
发布Blink于 1 年前
Binder 理论部分笔记整理
发布Blink于 1 年前
在Ubuntu上下载、编译和安装Android最新内核源代码(Linux Kernel)
发布Blink于 1 年前

mac 编译android8.0源码遇到的问题

此文连接上文,只是记录中间遇到的出错误问题,详细步骤就不说了macOS:10.15.2android版本:8.0.0_r16java版本:jdk1.8.0_181.移动硬盘:区分大小写,准备了200G(编译前102G,编译后145G)下面就记录错误信息 执行编译程序:./build/envsetup.sh 报错:WARNING: Only bash is supp...
原创
499阅读
0评论
0点赞
发布博客于 1 年前

小裂变《2019裂变增长百万秘籍》-20190417.zip

小程序营销资源,当时付费买的,很好的课程,分享出来,希望能够帮助你少走弯路,祝福有缘人,营销路上大获成功
zip
发布资源于 1 年前

记录mac端下载android源码过程中的错误

本文主要记录下载过程中的错误,详细的下载过程后续再补上,折腾这些错误折腾了很久,在此记录一下repo: command not found终端直接输入:echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrcexport PATH=$PATH:$HOME/binrepo下载源码的时候卡顿:这是因为 我们的vim ~/...
原创
126阅读
0评论
0点赞
发布博客于 1 年前

mac 编译H264以及ffmpeg

最近项目中需要ffmpeg来操作h264流,然而ffmpeg并没有并没有集成h264编码器,需要引入libx264,所以在电脑上重新编译了ffmpeg以及h264,真是一路踩坑的过程,中间遇到很多莫名的错误,在此记录下,希望后来看到的你,能顺利编译。首先编译h264,首先从官网下载h264源码,http://download.videolan.org/pub/videolan/x264/sna...
原创
216阅读
0评论
0点赞
发布博客于 1 年前

java 中的final

final类功能概述final类可以修饰引用、类、方法修饰引用①:如果此引用是基本数据类型或者是string,则该引用是常量,该值无法修改②:如果引用是引用数据类型,比如:对象、数组,则该数组、对象本身可以修改,但是指向该对象、引用的地址不能修改③:如果引用是成员变量,则必须在声明的时候赋值,否则会报错修饰方法当修饰方法的时候,这个方法将成为最终的方法,无法被子类重写,...
原创
44阅读
0评论
0点赞
发布博客于 1 年前

从源码深入理解Context以及相关创建过程

Context关联类文章较长,分析了Application、Activity、Service各自Context启动过程,耐心看完,会让你思路更清晰Context意为上下文,是一个应用程序环境信息的入口使用场景:使用Context调用方法,比如启动Activity、访问资源、调用系统组件服务等等 调用方法时传入Context,比如弹出Toast、创建Dialog等Activity...
原创
682阅读
0评论
0点赞
发布博客于 1 年前

android Activity启动流程

Activity的启动过程,我们可以从Context的startActivity说起,其实现是ContextImpl的startActivity,然后内部会通过Instrumentation来尝试启动Activity,这是一个跨进程过程,它会调用ams的startActivity方法,当AMS校验完activity的合法性后,会通过ApplicationThread回调到我们的进程,这也是一次跨进...
原创
1947阅读
0评论
1点赞
发布博客于 1 年前

java 静态代理和动态代理

代理模式代理模式是一种设计模式,通过代理对象操作访问对象,这样做的好处是:在不修改原目标对象的基础上,提供额外的功能操作,扩展目标对象的目的,换言之就是设置一个中间件来控制员对象。UML举个例子:生活中我们去菜市场购买蔬菜,蔬菜会在原产地拉上大城市,大城市中会有很多批发市场,小区的很多蔬菜商人会在批发市场批发蔬菜,然后在自己的蔬菜超市出售蔬菜,这里的批发市场和蔬菜商店就是代理。...
原创
1370阅读
0评论
0点赞
发布博客于 1 年前

Android 插件化基础

Android 原生语言为java,java文件通过java虚拟机后会变为.class文件,java文件虽然能在JVM中运行,但是想在Android运行环境中执行还需要特殊处理,那就是dx处理,它会对.class文件翻译、重构、解释、压缩等操作。dx 处理会使用到一个工具 dx.jar,这个文件位于 SDK 中,具体的目录大致为 你的sdk根目录/build-tools/任意版本里面。使用 d...
原创
683阅读
0评论
0点赞
发布博客于 1 年前

android studio 打jar包

准备工作:首选工程必须是一个库,工程build.gradle中的 apply plugin必须是apply plugin: 'com.android.library'而不能是apply plugin: 'com.android.application'然后在build.gradle中的android 目录下添加一下代码 task makeJar(type: Copy) ...
原创
992阅读
0评论
0点赞
发布博客于 2 年前

反射封装类

本篇博客介绍java中最强大的技术:反射;反射包括以下技术:根据一个字符串得到一个类的对象 获取一个类的所有公用或私有、静态或实例的字段、方法、属性 对泛型的反射根据一个字符串得到一个类① getClass:通过一个对象获取它的类型,类型用class表示String str = "hello";Class num = str.getClass();Log.e("-----&...
原创
1073阅读
0评论
0点赞
发布博客于 2 年前

java 反射基础知识与实践

本篇重点讲解java基础知识与系统提供api的运用java class类java中某个类无论生成多少个对象,这些对象都会对应同一个Class对象,这个Class对象由JVM生成,通过它可以获悉整个类的结构,包括方法、属性等等。原理所有的java类都是继承Object,在object类中有一个getClass方法,这个方法是用来取得该类已经被实例化的对象的引用,这个引用指向的clas...
原创
802阅读
0评论
0点赞
发布博客于 2 年前

Android Unable to resolve dependency for ':app@debug/compileClasspath

之前还好好的项目,今天运行起来就报错,Unable to resolve dependency for ':app@debug/compileClasspath先说解决办法Open the Preferences, by clickingFile>Settings(on Mac,Android Studio>Preferences). In the left...
原创
164阅读
0评论
0点赞
发布博客于 2 年前

Android PackageManagerService和ClassLoader

PackageManagerService(PMS)是用来获取apk包信息的,AMS总是会使用PMS加载包信息,将其封装在LoadedApk类对象中,然后就可以从中取出AndroidManifest声明的四大组件信息了,在下载并安装App的过程中,会把apk存放在data/app目录下。App安装流程Android系统使用PMS解析这个apk中的AndroidManifest文件,包括:...
原创
686阅读
0评论
0点赞
发布博客于 2 年前

Android Activity的工作原理

Activity 是四大组件中用的最多的,也是最复杂的,本篇文章就重点总结Activity的启动和通信原理AMS(AcctivityManagerService)从字面意思理解看是管理Activity的,其实四大组件都归它管PMS(PackageManagerService)ActivityManagerNative(AMN)ActivityManagerPoxy(AMP)Ap...
原创
143阅读
0评论
0点赞
发布博客于 2 年前

ARM汇编

汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言,目前在嵌入式开发、单片机开发、系统软件设计、某些快速处理、位处理、访问硬件设备等高效程序的设计方面有很多应用。ARM处理器是一种16/32位的高性能、低成本、低功耗的嵌入式RISC微处理器,由ARM公司设计,然后授权给各半导体厂商生产,它目前已经成为应用最广泛的嵌入式处理器,在逆向分析一款应用软件的时候,了...
原创
116阅读
0评论
0点赞
发布博客于 2 年前

java NIO 之 ByteBuffer

概念理解  对于ByteBuffer的一些概念不理解的情况下,如果直接打开源码,硬啃,是一种方法,但是对于有些耐心不足的同学,恐怕坚持不下去。  第一点,ByteBuffer底层的存储结构就是数组,所有的操作都是基于数组的操作。数组有哪几个重要的属性呢?元素索引和数组长度。    上面的图就简单的理解为一个数组。  既然ByteBuffer的存储结构为一个数组,那么就...
转载
51阅读
0评论
0点赞
发布博客于 2 年前

Android APK静态分析

安装包分析,又称逆向分析,即拿到应用程序的apk文件时,使用一些第三方工具进行反编译、抓包、注入等手段,对应用程序逻辑、数据结构、攻击方式进行分析,常用的分析方法分为静态分析与动态分析静态分析在不运行代码的方式下,通过词法分析、语法分析、控制流、数据流分析等技术对程序代码进行扫描,验证代码是否满足规范性、安全性、可靠性、可维护等指标的一种代码分析技术,在Android 平台上,静态分析就是...
原创
601阅读
0评论
1点赞
发布博客于 2 年前

Android 防止逆向

软件逆向分析的出现必然会出现防止逆向分析的操作,这里介绍五种防御方式:①代码混淆技术②针对不同的逆向工具的保护技术(如IDE、JD_GUI等)③增加逆向难度(java代码Native化)④动态加载技术⑤代码验证技术代码混淆代码混淆也称花指令,是将计算机程序的代码转化为一种功能上的等价,但是难于阅读和理解的形式的行为,代码混淆可以用于程序编译而成的中间代码,执行代码混淆的...
原创
353阅读
0评论
0点赞
发布博客于 2 年前

android root原理

android 获取设备root权限Android 获取Root其实和linux切换Root用户是一样的,在Linux下我们只需要执行“su”,或者“sudo”,然后输入Root账户和密码就可以获取Root权限了(其实就是将uid和gid设置为0),Android 5.0之前的系统都不支持多用户切换,对”su“ 也没有做密码验证,Android系统没有”sudo“命令,且很多厂商从手机的安全考...
原创
271阅读
0评论
0点赞
发布博客于 2 年前

Genymotion模拟器引起的Address already in use ADB server didn't ACK

Genymotion模拟器引起的Address already in use ADB server didn't ACKmac Gentmotion模拟器引起的很多问题,在网上找资料说要输入 adb nodaemon server,结果还报错,error: could not install *smartsocket* listener: Address already in useA...
原创
95阅读
0评论
0点赞
发布博客于 2 年前

Xposed hook原理

先来个总结java源码经过编译后,得到很多个class文件, 考虑到手机的内存较小,google改进了字节码的组织形式,将一个app中的所有class文件合到了一起构成dex文件,当然并不是简单的拼接在一起,而是遵从dex的格式重新组织。dex文件最终会和资源文件等一起打包成为apk,签名后安装到手机上。PackageManager在安装apk的时候,做了一件事:优化dex文件为ode...
原创
305阅读
0评论
1点赞
发布博客于 2 年前

微盘,thinkphp框架

微盘,学习专用,从其他地方买来的,用不到了,分享出来,亲测可以运行,有问题可以随时给我留言
zip
发布资源于 3 年前

阿里巴巴android热修复

阿里巴巴热修复技术数据,阿里巴巴官方出版,了解热修复不可多得的技术书籍
pdf
发布资源于 3 年前

图解HTTP资源

图解http彩色版本,了解http、tcp、ip、socket等不可多的的工具数据
pdf
发布资源于 3 年前

QQX5内核Demo

QQX5内核Demo ,比普通webview增速30%,QQX5内核腾讯大佬作品
zip
发布资源于 4 年前

轮番播放图片

轮番播放图片,支持手动滑动和自动播放图片,可以从网上下载图片和加载res中的图片进行显示,自定义FrameLayout实现的
zip
发布资源于 6 年前

fraagment与activity通信

fraagment与activity通信
zip
发布资源于 6 年前

SpannableString 一个TextView不同的效果实现

SpannableString 一个TextView不同的效果实现,实现了点击事件,下划线,局部字体变大,局部字体颜色变化,删除线等等,
zip
发布资源于 6 年前

ListView分类显示

ListView分类显示,自己写的,有什么问题可以随时联系我
zip
发布资源于 6 年前

TextWatcher,自动检索

EditText自动检索,并显示在列表上,列表上的内容会随着编辑框中的内容改变而改变
rar
发布资源于 6 年前

自定义AlertDialog

自定义AlertDialog,颜色什么的自己都可以随意修改,,简单调用即可
zip
发布资源于 6 年前

BroadcastReceiver广播创建简单的闹钟

BroadcastReceiver广播创建简单的闹钟demo,欢迎观看,有不当之处请批评
rar
发布资源于 7 年前

安卓官方API文档

安卓官方API文档,自己搜集的,感觉不错,推荐给开发的朋友们!
chm
发布资源于 7 年前