安卓
IT醉猫
爱生活,爱编程,爱妹子。。。
展开
-
IM即时通讯实现原理
即时通讯(Instant Messenger,简称IM)软件多是基于TCP/IP和UDP进行通讯的,TCP/IP和UDP都是建立在更低层的IP协议上的两种通讯传输协议。前 者是以数据流的形式,将传输数据经分割、打包后,通过两台机器之间建立起的虚电路,进行连续的、双向的、严格保证数据正确性的文件传输协议。而后者是以数 据报的形式,对拆分后的数据的先后到达顺序不做要求的文件传输协议。QQ就原创 2015-05-01 02:36:34 · 757 阅读 · 0 评论 -
Kotlin开发安卓APP笔记-类和对象(2)
上一篇Kotlin开发安卓APP笔记-类和对象(1)修饰符Kotlin的修饰符包括包括类修饰符classModifier 和访问修饰符accessModifier:类修饰符classModifier–标示类本身特性 abstract //抽象类标示 final //标示类不可继承,默认属性 enum //标示类为枚举 open //类可继承,类默认是final的 anno原创 2017-12-21 11:25:53 · 317 阅读 · 0 评论 -
Kotlin开发安卓APP笔记-接口
接口定义和Java一样,kotlin也使用interface作为接口的关键字,允许方法有默认实现 interface CodingListener{ fun openIDE() fun closeIDE(){//已实现 } }Kotlin接口的实现和继承类似,使用关键字“:”class Xiaoming:CodingListener{原创 2017-12-22 10:39:13 · 366 阅读 · 0 评论 -
Kotlin开发安卓APP笔记-条件语句和循环语句
继续昨天的数据类型,今天继续学习条件语句和循环语句,争取每天更新一篇(礼拜一到礼拜五)原创 2017-12-14 14:00:57 · 647 阅读 · 1 评论 -
Kotlin开发安卓APP笔记-函数和lambda表达式(1)
函数声明在Kotlin中,使用“fun”关键字声明函数: fun bestmk(i:Int):String{ return "猫客技术论坛bestmk.cn建站$i 年啦!" }可以看出,kotlin函数参数是用 Pascal 符号定义的 name:type。参数之间用逗号隔开,每个参数必须指明类型。函数参数可以有默认参数。这样相比其他语言可以减少重载。 函数使用方法原创 2017-12-15 11:59:29 · 330 阅读 · 0 评论 -
Kotlin开发安卓APP笔记-协程(代替线程)
转自http://www.yiibai.com/kotlin/coroutines.html 一些 API 启动长时间运行的操作(例如网络 IO、文件 IO、CPU 或 GPU 密集型任务等),并要求调用者阻塞直到它们完成。协程提供了一种避免阻塞线程并用更廉价、更可控的操作替代线程阻塞的方法:协程 挂起。 协程通过将复杂性放入库来简化异步编程。程序的逻辑可以在协程中顺序地表达,而底层库会为我们解转载 2017-12-25 11:41:07 · 2711 阅读 · 0 评论 -
Kotlin开发安卓APP笔记实战-写个简易记事本(需求分析)
Kotlin不止之前笔记里学的这些基础,不过不看了,还是实战吧,遇到问题再去解决。 创建工程环境啥的之前都讲过就不讲了,阅读此笔记需要一些安卓开发的经验和知识,不懂的可以在猫客论坛评论区提问,或者我的csdn博客地址评论,不知道有没有转载,欢迎转载,注明出处就好。因为白天需要上班,可能更新得会慢一点。分析记事本功能以及画草图无论做什么事,脑袋里面一定先要有对这件事情有个大致的思路,该怎样去做,胸有原创 2017-12-26 13:19:59 · 4768 阅读 · 1 评论 -
Kotlin开发安卓APP笔记实战-写个简易记事本(逻辑)
元旦前事情不少,拖到现在才写,有点尴尬。写了代码才知道前一篇写的笔记有些不正确,在这一篇笔记慢慢指出来,也不更新前一篇笔记了。学习就是这样一个发现错误并改正错误的过程。 先看最终效果图 由于工作关系,RecyclerView没有画分割线,如果需要的话可以参考郭神的Android RecyclerView 使用完全解析 体验艺术般的控件 用到的返回和保存按钮图标在图标查询网下载创建一个D原创 2018-01-02 17:15:54 · 3851 阅读 · 10 评论 -
《转》Kotlin开发安卓APP笔记-函数和lambda表达式(3)
接着上一篇【Kotlin开发安卓APP笔记-函数和lambda表达式(2)】继续学习函数和lambda表达式 转自:http://blog.csdn.net/tangxl2008008/article/details/53282100 http://blog.csdn.net/tangxl2008008/article/details/53665671高阶函数将函数作为参数或返回一个函数,称为高转载 2017-12-19 13:00:02 · 351 阅读 · 0 评论 -
Kotlin开发安卓APP笔记-函数和lambda表达式(2)
接着上一篇Kotlin开发安卓APP笔记-函数和lambda表达式(2)继续学习可变参数数量Varargs使用“vararg”关键字修饰参数,即可定义为可变数量参数(一般是最后一个参数): fun asList(vararg ts: Any): List<Any> { val result = ArrayList<Any>() for (t in ts) {原创 2017-12-18 11:53:49 · 545 阅读 · 0 评论 -
解决“NOTE: One or more layouts are missing the layout_width or layout_height attributes.”
布局无法加载,xml也没有错误,提示NOTE: One or more layouts are missing the layout_width or layout_height attributes. These are required in most layouts关闭Android Studio进入C:\Users\UserName.android目录,将build-cache重命名为...原创 2018-11-06 12:36:25 · 8069 阅读 · 45 评论 -
Kotlin开发安卓APP笔记-类和对象(1)
其实这一篇应该是先于函数学习的,现在补上 跟Java一样,Kotlin里面类的声明使用的是关键字class,类的声明包含有三部分:类名,类头,类体,其中,类头和类体是可选的。class Demo类成员1、构造器和初始化块 2、成员函数 3、属性 4、内部类 5、对象声明构造器Constructors一个类可以有一个主构造器或者多个次构造器主构造函数(primary construc原创 2017-12-20 11:55:33 · 341 阅读 · 0 评论 -
安卓防卸载的实现
最近搞到个木马,安装之后确认了设备管理器权限竟然无法取消掉设备管理器的权限!!无法取消设备管理器的权限也就意味着软件不能以正常的方式卸载,然后我用终端模拟器在root环境下执行pm命令,竟然提示失败!!!最终还是直接使用rm命令删掉data空间中的apk才删掉的。 那究竟是什么原因呢,我反编译看了一下源码,原来在重写DeviceAdminReceiver的时候有个回调方法onDisableRequ原创 2016-01-02 12:52:42 · 6836 阅读 · 3 评论 -
Android服务开发经验——优雅地活着
大多数的android应用开发都会将注意力集中在界面功能上,只有少数应用会需要一个Service,尤其是一个长期运行的Service,去进行后台联网、环境检测、媒体播放等功能。Android环境下的Service有其自身的特点,为了让服务完美地实现预想的功能,首先要解决的一个重要问题就是:如何让你的服务优雅地活着。(太文艺了,请讲人话~~)具体来说,就是要做到两点:1. 尽可能原创 2015-05-01 02:33:40 · 567 阅读 · 0 评论 -
android apk 防止反编译技术第二篇-运行时修改Dalvik指令
上一篇我们讲了apk防止反编译技术中的加壳技术,如果有不明白的可以查看我的上一篇博客。接下来我们将介绍另一种防止apk反编译的技术-运行时修改字节码。这种方法是在工作中在实现app wrapping时,看到国外的一篇关于android 安全的介绍实现的并且独创。下面我们来介绍一下这种方法。我们知道apk生成后所有的java生成的class文件都被dx命令整合成了一个classes.dex文件,当ap原创 2015-05-06 10:10:55 · 739 阅读 · 0 评论 -
防止apk反编译技术第一篇-dex加壳
大家都知道apk很容易被反编译,这里我讲下apk加壳的技术 一、加壳技术原理所谓apk的加壳技术和pc exe的加壳原理一样,就是在程序的外面再包裹上另外一段代码,保护里面的代码不被非法修改或反编译,在程序运行的时候优先取得程序的控制权做一些我们自己想做的工作。(哈哈,跟病毒的原理差不多)PC exe的加壳原理如下:二、android apk加壳实现要想实现加壳需要解决的技术点如下:(1)怎么第一原创 2015-05-06 10:05:55 · 3850 阅读 · 1 评论 -
安卓手机安装gcc,编译c/c++
其实很简单,和前面讲过的安装nasm差不多,首先,看我的截图安装步骤,1,将gcc解压到data/local下,其他目录也可以(不过环境变量中的路径要修改下),解压完成后配置环境变量,不会配置环境变量的看我前面写的安装nasm那篇文章 export GCCHOME=/data/local/gccexport GCCPATH=$GCCHOME/bin:$GCCHOME/a原创 2015-05-27 05:11:57 · 7681 阅读 · 1 评论 -
安卓系统监听应用开启和关闭的实现
最近因为一个项目需要监听软件开启和关闭,以为安卓系统会有相关的BroadcastReciver,结果查了下资料,没有相关的广播,后来在论坛上看见别人用Service监听栈顶的activity实现应用开启和关闭的监听。我就直接上我的代码了。里面鞋油注释,如果有不懂的,可以加我QQ群与我交流:197737933.import java.util.Timer;import java.util.Timer原创 2015-10-21 23:11:02 · 9102 阅读 · 2 评论 -
安卓使用root权限执行pm命令无法安装apk的解决办法
这个办法以前在一个大神的博客里面看见过,但是现在也找不到地址了,这类问题也很少发生,所以网上很难找到。今天做这类软件时找不到原来的demo,也找不到那个大神的帖子。所幸还遗留了一个当时的安装包,反编译得到源码。。关键之处是执行pm命令时在命令pm前面加上LD_LIBRARY_PATH=/vendor/lib:/system/lib ,然后安装就不会失败了在此做个笔记,方便以后用的时候直接查原创 2016-01-19 18:59:12 · 4836 阅读 · 0 评论 -
持续更新--Smali代码库
输出Toastconst-string v0, "这里是要输入的文字unicode码"const/4 v1, 0x1invoke-static {p0, v0, v1}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;move-r原创 2016-09-07 17:59:05 · 2994 阅读 · 0 评论 -
基于html5+webview五分钟快速完成一个地图选址组件
记录一下,是个好思路,但不是个高深的技术 首先按照传统的方式如果要做这样一个位置选择器控件,就要去下载地图sdk,无论是百度还是高德,虽然地图已经做了很多封装,但是用起来还是很麻烦,比如要自己去写listview,各种事件监听,而需求只是需要选择一个位置,然后进行位置分享或者其他。有没有其他的方式呢?答案是肯定的,办法也是我偶然间看到的。 腾讯有个基于html5的地图选点组件,在腾讯地图开放原创 2016-10-29 23:51:21 · 7043 阅读 · 1 评论 -
解决Plugin is too old, please update to a more recent version
不得不说还是eclipse好,Android studio用起来太蛋疼了,对于我这样的战五渣来说“奇奇怪怪的问题太多了”。。。。。 不吐槽了,还是说说问题如何解决吧,网上大致有两种解决方式 第一种方式就是升级gradle版本,“这办法太麻烦,搞好我都能写几千行代码了。。。。。。” 第二种方式参考http://www.ithao123.cn/content-10758591.html 具体就是原创 2016-10-31 01:14:51 · 1177 阅读 · 0 评论 -
安卓Hook系列教程(一):xposed模块开发环境搭建
xposed教程比较多,但是大多都相差无几,要么就只是入门级,要么就是从源码角度分析xposed的原理。但是针对xposed开发技巧类的却不多,很难找。 经常有人问我xposed静态方法,静态变量如何hook,插件更新后能不能不重启调试,我决定针对这些写一系列教程,如果有不正确的地方希望大家指出来改正。 xposed是什么东西就不介绍了,百度搜索一下就有,太多了。 首先给出几个地址,相信对你会很原创 2016-11-05 23:41:29 · 34688 阅读 · 0 评论 -
adb调试
ADB server didn't ACK* failed to start daemon *执行命令: netstat -ano 5037tasklist /fi "pid eq 8384"(查看进程的名称)taskkill /pid 8384 -f -t (结束进程)原创 2016-03-13 00:24:56 · 369 阅读 · 0 评论 -
安卓Hook系列教程(二):Xposed插件开发进阶篇
由于本屌意外发现了篇不错的教程,基本上是自己想写的东西,既然已经有了就转载一下,不自己写了。 有轮子就何需再去造轮子? 好吧,其实是懒癌发作了。。。。。。。。Dalvik 孵化器 Zygote (Android系统中,所有的应用程序进程以及系统服务进程SystemServer都是由Zygote进程孕育/fork出来的)进程对应的程序是/system/bin/app_process. Xpo转载 2016-11-22 20:50:43 · 9076 阅读 · 2 评论 -
第四方支付工具PayHelper适配最新7.0.3版本微信
PayHelper地址:https://github.com/rhinoSp/PayHelper6.6.7_NewAPIWechatHook代码:package com.tools.payhelper;import java.lang.reflect.Field;import org.json.JSONObject;import com.tools.payhelper.utils....原创 2019-03-19 16:36:03 · 2253 阅读 · 2 评论