- 博客(641)
- 资源 (59)
- 问答 (1)
- 收藏
- 关注
原创 【我的ASM学习进阶之旅】 10 ASM的Core API 的Method的字节码指令的示例讲解
上篇博客 【我的ASM学习进阶之旅】 09 介绍ASM的Core API 的Method的字节码指令https://ouyangpeng.blog.csdn.net/article/details/112574716我们将了字节码指令的基本概念,下面这篇博客我们来实际操作讲解一下字节码指令。一、示例讲解让我们看一些基本示例,以更具体地了解字节码指令的工作方式。1.1 Java示例类源码以下bean类:package pkg;public class Bean { private in
2021-01-13 20:58:16
99
原创 【我的ASM学习进阶之旅】 09 介绍ASM的Core API 的Method的字节码指令
一、字节码指令(Bytecode instructions)字节码指令由标识该指令的操作码和固定数量的参数组成:操作码(opcode)是一个无符号的字节值,因此是字节码名称,并由助记符标识。例如,操作码值0由助记符NOP设计,并且对应于不执行任何操作的指令。参数(arguments)是定义精确指令行为的静态值。它们在操作码之后给出。例如,操作码值为167的GOTO标签指令将自变量标签指定为要执行的下一条指令。指令参数不能与指令操作数混淆:参数值是静态已知的,并存储在编译的代码中,而操作数值来自操作
2021-01-13 17:42:37
89
原创 【我的ASM学习进阶之旅】 08 介绍ASM的Core API 的Methods的结构体
从本篇博客开始介绍如何使用核心ASM API生成和转换编译方法。首先介绍了已编译的方法,然后提供了许多说明性示例,介绍了相应的ASM接口,组件以及生成和转换它们的工具。一、结构体(Structure)在已编译的类中,方法的代码存储为一系列字节码指令。 为了生成和转换类,了解这些指令并理解其工作原理至关重要。 本节概述了这些说明,这些说明应足以开始对简单类生成器和转换器进行编码。 要获得完整的定义,您应该阅读Java虚拟机规范。1.1 执行模式 (Execution model)在呈现字节码指令之前
2021-01-13 16:43:28
103
原创 【我的ASM学习进阶之旅】 07 介绍ASM的Core API 的一些工具类
一、介绍如您在前几篇博客中所见,ASM API公开了Java类型,因为它们存储在已编译的类中,即作为内部名称或类型描述符。可以将它们公开显示在源代码中,以使代码更具可读性。但这需要在ClassReader和ClassWriter中的两种表示形式之间进行系统的转换,这会降低性能。这就是ASM不会将内部名称和类型描述符透明转换为等效的源代码形式的原因。但是,它提供了Type类,以便在必要时手动执行此操作。二、Type2.1 Type 对象Type对象表示Java类型,可以从类型描述符或从Class
2021-01-13 16:22:06
71
原创 【我的ASM学习进阶之旅】 06 使用ASM的Core API 的ClassReader、ClassWriter 、ClassVisitor 来转换class
一、 转换Class(Transforming classes )1.1 转换Class的小demo学习了前面几篇博客之后,到目前为止,单独使用了ClassReader和ClassWriter组件。这些事件是“手动”产生的,并由ClassWriter直接消耗,或者,对称地,它们是由ClassReader产生并“手动”消耗的,即通过自定义ClassVisitor实现。当这些组件一起使用时,事情开始变得非常有趣。第一步是将ClassReader产生的事件定向到ClassWriter。结果是由类编
2021-01-13 11:13:30
107
原创 【我的ASM学习进阶之旅】 05 使用ASM的Core API 的ClassVisitor 来生成class
一、使用ClassWriter生成Class生成Class的唯一必需组件是ClassWriter组件。 让我们以一个例子来说明这一点。 我们以下面的接口为例子:1.1 定义源代码定义一个接口Mesurablepublic interface Mesurable {}然后定义第二个接口Comparable继承自Mesurablepublic interface Comparable extends Mesurable { int LESS = -1; int EQUAL =
2021-01-12 18:04:44
39
原创 【我的ASM学习进阶之旅】 04 使用ASM的Core API 的ClassVisitor 来解析class
Parsing classes解析现有类的唯一必需组件是ClassReader组件。 让我们以一个例子来说明这一点。 假设我们要以类似于javap工具的方式打印类的内容。 第一步是编写ClassVisitor类的子类,以打印有关其访问的类的信息。 这是一个可能的,过于简化的实现:import org.objectweb.asm.*;import static org.objectweb.asm.Opcodes.ASM4;public class ClassPrinter extends Cl
2021-01-12 16:05:38
110
原创 【我的ASM学习进阶之旅】 03 ASM的Core API 的Classes的接口和组件介绍
一、介绍1.1 ClassVisitor抽象类用于生成和转换已编译类的ASM API基于ClassVisitor抽象类,如下所示:public abstract class ClassVisitor { public ClassVisitor(int api); public ClassVisitor(int api, ClassVisitor cv); public void visit(int version, int access, String name,
2021-01-12 11:23:08
121
原创 【我的Android进阶之旅】如果通过NDK编程,使用JNI来调用已经封装完毕的无法修改的so库(第三方)
一、需求描述在我的博客【我的Android进阶之旅】如何通过JNI来封装已有的C源码算法,然后让Java层调用C语言写的算法中有介绍,我通过写好Java类,然后生成JNI头文件,再让写算法的同事实现这个JNI头文件,再去调用他已经写好的算法。但是有两个问题得考虑:如果这个C程序员同事就是不配合你咋办?就丢一个已经写好算法的so库给你,其余的你自己去玩。如果你是从其他地方看到一个不错的so文件,但是你没有源码,无法修改,你怎么调用他呢?所以我们得想一想,如果已有的so库文件不会再重新修改源代
2021-01-08 20:35:05
89
原创 【我的Android进阶之旅】Android使用JNI的时候报native crash: A/libc: Fatal signal 4 (SIGILL), code 2 (ILL_ILLOPN)
一、问题描述最近在JNI开发中,抛了一个异常,然后运行的时候报如下所示的错误:2021-01-08 14:25:58.170 10974-10974/com.csdn.ouyangpeng.jni D/ouyangpeng-jni-log: hex_sha 6A68B6BDBBB7E79772B2A075A7815537CCA57F6F 2021-01-08 14:25:58.170 10974-10974/com.csdn.ouyangpeng.jni D/ouyangpeng-jni-log:
2021-01-08 14:49:15
118
原创 【我的ASM学习进阶之旅】 02 ASM的Core API 的Classes结构体介绍
本篇博客说明如何使用核心ASM API生成和转换已编译的Java类。 它首先介绍了已编译的类,然后提供了许多说明性示例,介绍了相应的ASM接口,组件和工具以生成和转换它们。0x01 结构体1.1 概述编译类的整体结构非常简单。 实际上,与本机编译的应用程序不同,编译的类保留结构信息和源代码中几乎所有的符号。 实际上是编译类包含:描述修饰符(例如公共或私有),名称,超类,接口和类的注释的部分。此类中每个字段声明的部分。 每个部分都描述字段的修饰符,名称,类型和注释。此类中声明的每个方法和构造函数
2021-01-07 20:36:14
101
原创 【我的ASM学习进阶之旅】 01开篇介绍ASM
0x00、简介ASM名称不代表任何含义:它只是对C语言中__asm__关键字的引用,它允许使用汇编语言实现某些功能ASM是一个通用的Java字节码操作和分析框架。它可以直接以二进制形式用于修改现有类或动态生成类。ASM提供了一些常见的字节码转换和分析算法,可以从中构建定制的复杂转换和代码分析工具。ASM提供与其他Java字节码框架类似的功能,但侧重于性能。因为它的设计和实现是尽可能的小和尽可能快,所以它非常适合在动态系统中使用(但当然也可以以静态方式使用,例如在编译器中使用)。在许多项目中都
2021-01-07 19:56:34
117
原创 【我的Android进阶之旅】解决Android SoundPool播放音效没有类似于MediaPlayer.OnCompletionListener接口的播放完成回调通知效果
一、需求场景最近有个小的应用场景,需要不停的播放一些短促的音乐或者音效,不同的应用场景会播放不同的音乐,有的时候就导致了多个声音叠加在一起播放的问题。为了要解决这个问题,只能是按照顺序一个一个声音播放,但是SoundPool并没有提供播放完成的回调通知,android.media.SoundPool.OnLoadCompleteListener二、实现自己的SoundPool播放完成回调思路:播放完成的通知也就是从开始播放到播完这个音效的时长,也就是这个音效的时长;所以我们只需在初始化的时候获取到
2020-12-29 10:56:05
115
原创 【我的Android进阶之旅】解决Android Studio 编译报错: buildOutput.apkData must not be null
一、错误描述今天来回切换分支之后编译apk,报了如下错误:FAILURE: Build failed with an exception.* What went wrong:buildOutput.apkData must not be null* Try:Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with
2020-12-25 16:14:50
166
原创 【我的Android进阶之旅】解决安装apk时报错:The application could not be installed: INSTALL_FAILED_INSUFFICIENT_STORAG
一、错误描述安装apk的时候,报了如下所示的错误:Installation did not succeed.The application could not be installed: INSTALL_FAILED_INSUFFICIENT_STORAGEList of apks:[0] 'C:\CodeForAndroid\XXX\xxx\build\outputs\apk\debug\xxx_debug.apk'The device needs more free storage to
2020-12-24 17:02:20
227
1
原创 【我的Android进阶之旅】使用TextureView来实现一个VideoView功能,解决VideoView在部分机型黑屏无画面但是有声音的bug
一、需求描述最近做一个类似抖音的可以上下滑动或者左右滑动然后自动播放视频的小功能,一开始使用系统自带的View的VideoView来播放这些小视频,但是出现了兼容性问题。bug : 在部分设备上,会出现有声音但是没画面,画面全黑无任何画面显示,但是有声音的bug1.1 解决黑屏的方法对videoView设置下面两个属性 videoView.setZOrderMediaOverlay(true); videoView.setZOrderOnTop(true);这个方法把videoVi
2020-12-19 15:51:53
165
2
原创 WireShark 抓包日期格式如何设置?
一、问题描述最近使用UDP编程的时候,出现了一些问题,需要抓包调试。如何在Android端打印了日志,抓取的包希望可以和打印的日志对应起来。但是,默认我打开的时候,时间格式如下所示,完全无法看,没法和日志对应起来。怎么样,才能调整这个日期展示的格式呢?二、调整WireShark抓包的日期格式展示我们打开【视图】 --> 【时间显示格式】 --> 然后选择右边的格式类型。比如我们选择 【日期和时间(1970-01-01 01:02:03.123456) Ctrl+Alt+1】
2020-12-08 11:29:49
181
原创 【我的Android进阶之旅】解决编译apk之后安装失败,报错:INSTALL_FAILED_INSUFFICIENT_STORAGE
一、问题描述今天安装一个APP的时候,提示安装失败,如下所示:11/26 11:32:20: Launching 'app' on rxxxxxx.Installation did not succeed.The application could not be installed: INSTALL_FAILED_INSUFFICIENT_STORAGEList of apks:[0] 'C:\CodeForAndroid\XXX\app\build\outputs\apk\debug\xxx
2020-11-26 11:42:01
665
原创 【我的Android进阶之旅】解决使用AspectJ然后编译的时候报错:applying to join point that doesn‘t return void:method-execution
一、问题描述今天有个同事写完他的新需求,然后编译代码,生成apk之后,运行报错,如下所示:Caused by: java.lang.ClassNotFoundException:Didn't find class "com.xxx.xxx.XXXProvider" on path:DexPathList[[zip file "xxx"这个类在项目中明明存在,而且apk也可以正常编译成功,为啥就找不到这个类呢?二、分析问题2.1 分析打包出来的apk是否真的包含这个类让他将这个apk拖进An
2020-11-25 20:09:24
155
原创 【我的Android进阶之旅】解决进入页面展示,ScrollView直接就自动滚动到底部的问题
一、问题描述当ScrollView里面包含Recycleview或Listview或者其他的布局比如ConstraintLayout,并且数据在一个屏幕页面不能完全显示完全的时候,打开该页面,就会自动滚动到页面底部。但是这不是我们想要的效果。我们想要的效果是 页面进来就是正常显示,用户自己滑动的时候页面再滚动下去就好。如下所示:页面进来的时候,正常显示,直接在页面顶部。二、分析问题原因就是:Scrollview的childview,拥有获得焦点的能力,高度很大的childview获取到焦点,
2020-10-28 21:56:04
383
原创 【我的Android进阶之旅】如何通过JNI来封装已有的C源码算法,然后让Java层调用C语言写的算法
一、需求描述最近有个需求,需要接入算法同事写的算法。算法同事的算法代码是用C语言写的,然后需要将该算法运用到Android层。然后经过一段时间的开发,算法人员将算法写好了,他们在PC端调试模拟数据,但是如何将他们的算法接入到Android层,他们不会。说白了,他们只懂C语言,其他的都不会。算法人员已经有已经有了下面的两个文件:.h文件(其中包括一些结构体的定义,还有一些方法的声明等等).c文件(里面是对.h文件中一些方法的实现)很显然这里说的.c文件中的函数肯定没有按照那种JNI的规范
2020-10-26 21:42:43
326
2
原创 【我的Android进阶之旅】使用RecyclerView + SnapHelper实现类似抖音的竖向翻页效果
一、需求描述最近有个需求,其中一个小需求是做一个可以竖向翻页的效果,就是类似抖音不停刷刷刷的上下滑动的时候切换视频的效果一样。效果如下所示:第一页第二页每次滑动一下就翻一页。不滑动就翻页的效果如果不做处理的RecycleView的话,就无法实现滑动一下就翻动一页,会变成如下所示的效果:滑动一点,滚动一点。二、实现代码2.1 实现不能滑动就翻页的效果Activity的布局文件 activity_main2.xml其中就放一个RecyclerView&l
2020-10-23 21:11:17
517
原创 【我的Android进阶之旅】实现跟随ViewPager滑动而滑动的指示器,并且滑动到最后一页之后继续滑动则跳转到其他页面
一、需求描述最近做了一个需求,其中有一个小需求如下所述的描述:做一个可以左右滑动的页面,然后在页面上方有一个跟随页面滑动而滑动的指示器。并且滑动到最后一页的时候继续滑动的话,则跳转到另外一个页面。效果如下所示:第一页第6页最后一页最后一页继续左滑,则跳转到第二个页面二、实现上面的效果2.1 自定义指示器自定义一个指示器,如下代码所示:思路很简单使用一个LinearLayout装载和页数一样多的灰显背景小块然后使用FrameLayout帧布局将背景滑
2020-10-23 20:41:34
1033
1
原创 【我的Android进阶之旅】Android Studio中JNI开发如何通过Extranal Tools 快速一键生成.h头文件
一、需求描述刚要开发一个JNI的项目,需要生成一些.h的头文件。如何能够快速提供编写好的java文件生成.h头文件呢?二、实现需求2.1 打开File->Setting->Tools->Enternal Tools2.2 新增你的 External Tools如上所示,已经有一个我刚刚新建的名字叫做【JNI】的 External Tools,我们来看下我们新增的这个JNI的内容是什么。我们可以通过点击 +号 按钮,新建一个External Tools。然后我们建一个名字叫
2020-10-20 16:38:54
239
原创 【我的Android进阶之旅】解决Android 8.1系统部分机型获取Wifi名字为空 WifiInfo.getSSID为空或者为<unknown ssid>的情况
一、需求描述最近做一个需求,需要在做某个业务之前,判断Android设备是否连接上指定名称的WiFi。如果连接上了指定名称的WiFi才可以继续某个业务;否则就跳到设置去连接该指定名称的WiFi。因此,我需要获取当前Android设备连接的WiFi名称,来进行业务逻辑判断。二、实现方法2.1 通过WifiManager.getConnectionInfo().getSSID()通过WifiManager.getConnectionInfo().getSSID(),代码如下所示: privat
2020-10-19 14:57:10
464
原创 【我的Android进阶之旅】解决Android Studio报的警告:Resource IDs will be non-final in Android Gradle Plugin version
一、问题描述最近写完一段代码,关于使用switch case语句来判断R.id的时候,出现了如下所示的警告:代码类似于下面这样,出现了警告。int id = view.getId();switch (id) { case R.id.button1: action1(); break; case R.id.button2: action2(); break; case R.id.button3: a
2020-10-17 16:41:58
1939
5
原创 【我的Android进阶之旅】解决升级AndroidStudio到4.1版本后打不开,报错java.lang.NoSuchMethodError
一、问题描述今天没事手动将Android Studio 从4.0 升级到4.1 之后,打不开了,报如下错误:Internal error. Please refer to https://code.google.com/p/android/issuesjava.lang.NoSuchMethodError: com.intellij.ide.plugins.PluginManagerCore.loadDescriptors()[Lcom/intellij/ide/plugins/IdeaPlugin
2020-10-16 16:08:46
2450
6
原创 【我的Android进阶之旅】解决Android8.0下TextView显示奇怪的断行问题,你真的了解Android TextView的breakStrategy吗?
一、问题描述前几天同事遇到一个很奇怪的关于TextView显示折行的问题,右边明明还有很多空白的地方,但是TextView就不显示直接换行了,如下所示:TextView的布局<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xml
2020-09-27 20:53:54
589
原创 【我的Android进阶之旅】你了解adb device unauthorized的原因 和 adb授权机制的中adbkey与adbkey.pub的作用吗?
一、问题描述最近在某些第三方的硬件平台上开发一款APP,然后提测给测试人员测试。然后测试人员无法使用adb命令安装APP。运行adb devices命令 提示 xxx设备 unauthorized,如下所示:C:\Users\Administrator>adb devicesList of devices attachedxxx750xxx unauthorized测试运行 adb install -r 命令安装apk 也报错,如下所示:C:\Users\Administ
2020-09-05 17:30:56
442
原创 【Kotlin学习之旅】Kotlin的类型别名typealias
一、类型别名typealias介绍Kotlin提供了类似于C语言的typedef 的功能:可以为已有的类型指定另一个可读性更强的名字。Kotlin提供了typealias来定义类型别名。typealias语句的语法格式为:typealias 类型别名 = 已有类型如果类型名称太长,你可以另外引入较短的名称,并使用新的名称替代原类型名。它有助于缩短较长的泛型类型。 例如,通常缩减集合类型是很有吸引力的:// 为Set<Network.Node> 指定更短的别名NodeSet t
2020-08-13 20:59:37
367
6
原创 【Kotlin学习之旅】Kotlin的字符串类型
一、字符串类型介绍Kotlin的字符串有两种字面值(Literal),分别如下所示:类型描述转义字符串转义字符串可以有转义字符,转义字符串很像Java字符串原始字符串原始字符串可以包含换行和任意文本。原始字符串需要用3个引号引起来。二、字符串类型示例代码如下所示:fun stringTest() { //定义普通字符串 var str = "欧阳鹏" println(str.length) //定义原始字符串 va
2020-08-13 20:07:55
203
原创 【Kotlin学习之旅】Kotlin的Elvis运算
Elvis运算是一个小技巧,其实就是if else 的简化写法。一、示例程序下面来一个示例对比代码,如下所示:fun elvisTest() { var b: String? = "oyp" var len1 = if (b != null) b.length else -1 //输出3 println(len1) b = null var len2 = b?.length ?: -1 // 输出 -1 println(len2)
2020-08-13 19:34:54
188
原创 【Kotlin学习之旅】Kotlin的数值型之间的类型转换
Kotlin是一门强类型的语言,因此编译器对类型检查非常严格,这种严格保证了Kotlin程序的健壮性,因此Kotlin不同类型的值经常需要进行相互转换,数值型之间的变量和值也可以相互转换。一、整型之间的转换不同整型的变量能支持的表数范围是不同的。 如下所示:ByteByte型证书在内存中通常占8位,表数范围是 -128~127。 兼容Java的byte和Byte类型ShortShort型证书在内存中通常占16位,表数范围是 -32768(-2的15次方)~32767(2的15次方减1)
2020-08-13 12:00:43
808
原创 【Kotlin学习之旅】Kotlin的字符型
一、简介字符型统筹用于表示单个的字符,字符型必须使用单引号(‘)括起来。Kotlin语言使用16位Unicode字符集作为编码方式,而Unicode被设计成支持世界上所有书面语言的字符,包括中文字符,因此Kotlin程序支持各种语言的字符。字符型值有以下3种表现形式。直接通过单个字符来指定字符型值,如‘A’、‘9’和‘0’等通过转义字符表示特殊字符型值,如‘\n’和’\t’等直接使用Unicode值来表示字符型值,格式是‘\uXXXX’,其中XXXX代表一个十六进制的整数。二、Kotlin
2020-08-12 21:14:12
214
转载 股权、期权和原始股傻傻分不清楚?一文帮你安排的明明白白!
下面内容copy整理自:https://new.qq.com/omn/20200723/20200723A0QE4A00.htmlhttps://www.sohu.com/a/304030977_270543说到股权、期权和原始股,很多人可能多少都听过,但是要真让你说出个所以然来,很多人可能还是一头雾水,那么股权、期权和原始股有啥区别呢?这三者到底哪个更值钱?今天就来给大家提供满满的干货,以后再说起股权期权和原始股,就清楚里面的门道啦!我们经常能看到新闻里说创业公司对员工发放股权或者期权.
2020-08-01 15:13:40
1782
转载 2021计算机科学与技术考研学校排名 (第四轮计算机科学与技术学科评估排名结果出炉)
PS: 转载于: https://kaoyan.koolearn.com/20200611/1080433.html教育部学位与研究生教育发展中心公布了全国第四轮学科评估结果。在95个一级学科范围内开展(不含军事学门类等16个学科),共有513个单位的7449个学科参评。下面是一级学科哲学的评估结果,大家可以看看,选择合适的考研院校。一级学科代码及名称: 0812 计算机科学与技术本一级学科中,全国具有“博士授权”的高校共 77所,本次参评75所;部分具有“硕士授权”的高校也参加了评估;参评高校共.
2020-08-01 10:34:40
4348
3
原创 【我的Android进阶之旅】你的Android Studio中不显示build文件夹?快来看看是不是【show Excluded Files 】未勾选!
一、问题描述今天早上,不知道是在Android Studio中做了什么操作,编译完APP之后,整个build文件夹不显示出来。然后,在Terminal终端,我使用ls命令是可以看到build文件夹,如下所示:C:\CodeForAndroid\matrix\samples\sample-android>cd appC:\CodeForAndroid\matrix\samples\sample-android\app>ls -ltotal 24-rw-r--r-- 1 DH207
2020-07-30 14:42:28
781
原创 【我的Android进阶之旅】快来使用Android Studio的Shelve功能吧!
一、Android Studio的Shelve功能介绍话说,我昨天在调试部分新代码的时候,有个同事正好过来,要我查看另外一个问题,而另外一个问题需要切换一下分支,因此我的需求就是:需要在未完成的事情之间切换不同的任务,然后再返回到它们。然后我就直接使用了Android Studio 自带的 Shelve Changes 功能,将代码直接搁置到了一边。接着分析完同事的问题之后,又使用了“Unshelve Changes” 功能,恢复了之前Shelve的代码。同事看完说: 居然还有这个操作,我居然不
2020-07-29 11:18:03
335
原创 【我的Android进阶之旅】Android混淆踩坑之:开启了shrinkResources true,从而导致Resources.getIdentifier()使用的动态资源被移除的问题
一、问题描述前几天对一个之前未开启混淆的APP,进行了一轮混淆配置,开启混淆,开启删除无用资源之后,发现出现了一个bug: 即使用Resources.getIdentifier()动态调用一些图片资源的地方都无法正常显示,显示出来的图片资源都是纯黑的,没有了图片本身的内容。二、分析问题2.1 初步怀疑是不是资源ID被混淆了我将混淆关闭之后,发现没有此bug。因此应该就是因为混淆导致的bug。然后我猜想,是不是这些动态引用的图片的id被混淆了,所以导致调用的时候找不到。接着我去找到map
2020-07-22 17:02:26
508
原创 【我的Android进阶之旅】解决错误ABIs [armeabi] are not supported for platform.
一、错误描述今天将Tencent的Matrix库下载下来,编译的时候,出现了错误,ABIs [armeabi] are not supported for platform. Supported ABIs are [armeabi-v7a, arm64-v8a, x86, x86_64].如下所示:FAILURE: Build failed with an exception.* What went wrong:A problem occurred configuring project
2020-07-20 14:56:47
1188
Android基于HTTP协议的多线程断点下载器的实现源码_优化之后
2013-08-23
Video to GIF 绿色免费版本
2017-06-28
我的Android进阶之旅------>Android疯狂连连看游戏的实现
2013-11-04
免费下载:TCP-IP协议族(第4版) .(Behrouz A.Forouzan )
2016-03-01
C++程序设计 - 谭浩强·清华大学 PDF高清版
2015-08-03
Android之AutoCompleteTextView输入汉字拼音首字母实现过滤提示(支持多音字)
2013-10-28
Android之Gallery和GridView两种方式与ImageSwitcher实现带预览的和幻灯片方式的两种图片浏览器
2013-10-28
Android基于HTTP协议的多线程断点下载器的实现源码_第二次优化之后
2013-10-13
Android基于HTTP协议的多线程断点下载器的实现源码
2013-08-20
【eoeAndroid特刊】第04期-Android widget Ver 2.0.0.pdf
2013-04-27
中文汉字笔划数据对照文本
2018-11-15
中文汉字笔划数据库
2018-11-14
2017WOTD峰会讲师PPT
2017-12-03
Linux命令行与shell脚本编程大全(第3版) 高清晰PDF
2017-10-20
FindBugs错误分析说明.pdf
2017-09-19
Deep Learning 中文版
2017-07-12
《深入探索Android热修复技术原理》高清完整版PDF
2017-07-03
阿里巴巴Java开发手册 v1.2.0
2017-05-23
Kotlin语言文档 中文高清免费版
2017-05-22
Gradle for Android
2017-02-28
软技能:代码之外的生存指南
2017-02-25
不一样的技术创新-阿里巴巴2016双11背后的技术
2017-01-19
Maven权威指南_中文完整版清晰.pdf下载
2017-01-11
TCP-IP详解卷一:协议 卷二:实现 卷三:TCP事务协议,HTTP,NNTP和UNIX域协议 合集
2016-09-24
HTML5与CSS3基础教程(第8版)中文高清版
2016-09-24
重构 改善既有代码的设计.pdf
2016-09-11
gradle-for-android.pdf
2016-08-23
空空如也
How do programmers protect themselves?
2017-12-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人 TA的粉丝