- Android ViewStub延迟初始化加载布局View,Kotlin
zhangphil
Androidkotlinandroidkotlin
AndroidViewStub延迟初始化加载布局View,Kotlinactivity_my.xml:importandroid.os.Bundleimportandroid.util.Logimportandroid.view.Viewimportandroid.view.ViewStubimportandroidx.appcompat.app.AppCompatActivityimportan
- Android 深入理解布局优化
IT徐师兄
Android启动优化androidjava开发语言
微信公众号:徐公前言说到Android启动优化,你一般会想到什么呢?Android多线程异步加载Android首页懒加载对,这是两种很常见的优化手段,但是如果让你主导这件事情,你会如何开始呢?梳理现有的业务,哪些是一定要在启动初始化的,哪些是不必要的需要在启动初始化的,哪些是可以在主线程初始化的,哪些是可以在子线程初始化的当我们把任务丢到子线程初始化,这时候,我们又会遇到两个问题。在首页,我们需要
- Flutter 国际化(跟随系统及应用内切换)和数据本地存储
油焖茄子
fluttercocoamacos
iOS国际化项目配置苹果的我以前写过,点击链接查看,如果只是通过flutter配置国际化,那只需要把Localizations里面添加需要支持的语言包即可,其他的就不用配置了。Android国际化项目配置添加依赖flutter_localizations:sdk:flutterPubget两种方法,第一种是使用intl插件,第二种是使用JSON文件,先记录第一种,安装插件(AndroidStudi
- 使用flutter_secure_storage,保障你的应用数据安全无忧!
平依佩Ula
使用flutter_secure_storage,保障你的应用数据安全无忧!flutter_secure_storagemogol/flutter_secure_storage:这是一个为Flutter框架提供的安全存储插件,允许开发者在Android和iOS平台上加密存储敏感信息,如用户凭据、API密钥等。项目地址:https://gitcode.com/gh_mirrors/fl/flutte
- Android AsyncLayoutInflater异步加载xml布局文件,Kotlin
zhangphil
Androidkotlinandroidkotlin
AndroidAsyncLayoutInflater异步加载xml布局文件,Kotlinimplementation"androidx.asynclayoutinflater:asynclayoutinflater:1.1.0-alpha01"importandroid.os.Bundleimportandroid.util.Logimportandroid.view.Viewimportandr
- Android 自定义View画天气预报折线图
xiao芝麻
Android开发android天气预报折线图
效果图如下:刚开始尝试用第三方画曲线的框架来画效果图,后来发现曲线间的阴影当有负数的度数的时候画不出来,而且不需要点击放大、点点可点的效果,用框架显得很臃肿,所以最后用自定义View来画的折线图。自定义画折线图的大致思路:这个图是有多个四边形组成的(4个点连接起来就是一个四边形),两边延伸:添加四个多余的点,将左右的边距设置成负数即可。代码如下:publicclassWeatherChartVie
- Android 高斯模糊
xiao芝麻
Android开发
packagecom.pingan.carowner.servicewindow.utils;importandroid.annotation.TargetApi;importandroid.content.Context;importandroid.graphics.Bitmap;importandroid.graphics.BitmapFactory;importandroid.os.Buil
- Android 列表视频滑动自动播放—2—实现具体代码
qq_21467035
音视频android音视频
本文基于Exoplayer+PlayerView实现列表视频显示一定比例后自动播放首先引入googlemedia3包implementation'androidx.media3:media3-exoplayer:1.1.1'implementation'androidx.media3:media3-exoplayer-dash:1.1.1'implementation'androidx.media
- autojs一个经典的飘浮工具栏界面源码
恶猫
auto.jsHTML+Scriptandroiduijavascript
autojs一般的项目都会有一个全屏界面,点击按钮,弹出个小悬浮窗。但是也有的时候只需要直接弹出小窗就够用了。这时候就用到了。"ui";importClass(android.view.View);auto.waitFor();auto.setMode('normal');setInterval(()=>{},1000);threads.start(function(){varwindow=flo
- 《基于鸿蒙系统的类目标签AI功能开发实践》
程序猿阿伟
harmonyos人工智能华为
在数字化时代,类目标签AI功能对于数据管理、信息检索等领域至关重要。本文将聚焦于在HarmonyOSNEXTAPI12及以上版本上,利用Python进行类目标签AI功能开发,以电商商品分类这一行业垂域为例,为开发者提供实操性强的学习资源,助力推动鸿蒙技术应用与创新。一、开发环境搭建在开始开发前,确保已经安装好以下工具:DevEcoStudio:鸿蒙应用开发的官方集成开发环境,可从华为官方网站下载并
- 如何在VSCode中使用OpenAI
WeiLai1112
DeepSeekvscodeide编辑器
如何在VSCode中使用OpenAI:从集成到应用场景详解人工智能(AI)正在改变软件开发的方式,而OpenAI提供的强大模型可以帮助开发者提升编码效率、优化工作流并自动化繁琐任务。本文将详细介绍如何在VSCode(VisualStudioCode)中使用OpenAI,集成后可以做哪些事情,以及如何充分发挥OpenAI的能力来提高生产力。1.在VSCode中使用OpenAI,可以做什么?将Open
- Android构建系统 - 03 编译执行流程
Mr.pyZhang
构建系统androidlinux
文章目录执行编译Linux内核编译make编译系统选择编译命令makem..makemmmmma...其他命令代码搜索导航指令makeclean/update-apiMakefile分类解析过程树根节点droid`/Makefile``main.mk``droid`droidcore节点.imgfilesmodules_to_install`INSTALLED_ANDROID_INFO_TXT_T
- 常见自动化测试工具集合
2401_85613856
自动化测试工具运维
1、Appium------->AppUI自动化测试官网:http://appium.ioAppium是一个移动端自动化测试开源工具,支持iOS和Android平台,支持Python、Java等语言,即同一套Java或Python脚本可以同时运行在iOS和Android平台,Appium是一个C/S架构,核心是一个Web服务器,它提供了一套REST的接口。当收到客户端的连接后,就会监听到命令,然后
- Systrace 学习笔记
程序员Android
androidjava操作系统epoll移动开发
和你一起终身学习,这里是程序员Android经典好文推荐,通过阅读本文,您将收获以下知识点:一、Systrace简介二、Systrace预备知识三、Why60fps四、SystemServer解读五、SurfaceFlinger解读六、Input解读七、Vsync解读八、Vsync-App:基于Choreographer的渲染机制详解九、MainThread和RenderThread解读十、Bin
- uniapp学习心得:跨平台开发
sdfcr
uni-appjavascripthtml5cssvue.js
一.介绍UniApp是一个基于Vue.js开发的跨平台应用开发框架,可以用于快速构建同时运行在多个平台(包括iOS、Android、Web等)的应用程序。相比于传统的原生开发和其他跨平台框架,选择学习UniApp具有许多优势。为什么选择学习UniApp?跨平台性:UniApp可以将同一套代码运行在多个平台上,极大地提高了开发效率,减少了重复开发的工作量。Vue.js生态:UniApp基于Vue.j
- 安装pycrypto报错
名难取aaa
bugWindows我的一生之敌pip
报错信息解决方法网上有两种解决方案:pycrypto安装出错的问题我选择第二种(更为简单):在安装MicrosoftVisualStudio的目录下(或者目录附近),找到..\VC\Tools\MSVC\14.10.25017\include\stdint.h并且拷贝到..\WindowsKits\10\Include\10.0.15063.0\ucrtPS:建议用everything(一个软件)
- Android Studio中,设置页面布局有几种方式
杏花春雨江南
androidandroidstudioandroidide
在AndroidStudio中,设置页面布局主要有以下几种方式:1.使用XML布局文件这是最常见的方式,通过编写XML文件来定义界面布局。XML文件位于res/layout目录下。你可以在XML中使用各种布局控件(如LinearLayout、RelativeLayout、ConstraintLayout等)来组织界面元素。2.使用ConstraintLayoutConstraintLayout是一
- 最新版studio android 项目中 没有 activity_main.xml 文件,怎么回事
杏花春雨江南
androidandroidxml
因为下载的androidstudio是最新版本,新建项目形式都为新的(kotlin版本),但是在搜索相关文章时,很多文章都是基于(xml声明配置或java相关的),所以在摸索期间遇到很多问题。也在逐个遇见逐个击破。以上。在AndroidStudio项目中,activity_main.xml是默认创建的一个Layout文件,通常作为应用程序的主活动布局。如果你的项目中没有这个文件,可能有以下几种原因
- Monkey异常报错: Error: A RuntimeException occurred
Qearl鱼
Android性能测试Monkey测试权限USB调试输入事件
使用小米手机跑monkey时,刚启动出现如下错误:**Error:ARuntimeExceptionoccurred:java.lang.SecurityException:InjectingtoanotherapplicationrequiresINJECT_EVENTSpermissionatandroid.os.Parcel.createException(Parcel.java:2074)
- C# dotnet core开发跨平台桌面应用程序(基于GTK+3.0)
xingyun86
C++C#.netcore
1.Windows下开发环境VisualStudio20192.新建C#跨平台应用3.工程解决方案右键Nuget安装Gtk3依赖4.编写代码:5.编译运行(编译ok,会提示下载gtk-3.24.zip)自行下载gtk-3.24.zip:下载完成后解压在C:\Users\登陆用户\AppData\Local\Gtk\3.24\目录下6.运行截图7.发布到Linux下右键工程->publish(发布)
- VS code 之 c++远程开发环境搭建
汝何秀
linuxvscode
文章目录VScode之c/c++远程开发环境搭建1.基本环境2.远程主机的开发环境搭建3.本地vscode的配置配置ssh选项4远程开发教程VScode之c/c++远程开发环境搭建1.基本环境本地主机:VisualStudioCode远程主机:CentOS72.远程主机的开发环境搭建安装环境的压缩包:dev_env_install.tar.gz解压文件夹:repo自动安装脚本为:dev_env.s
- Flutter鸿蒙项目—如何添加对华为鸿蒙系统的支持
不入流HarmonyOS开发
鸿蒙HarmonyOSOpenHarmonyflutterharmonyos华为OpenHarmony鸿蒙应用开发鸿蒙开发鸿蒙
1.DevEcoStudio4.0Release版鸿蒙环境安装打开IDE,按照引导,安装环境即可,注意,nodejs选择v16.20。Mac下,在.bash_profile配置如下环境变量exportPATH=/Users/用户名/Documents/DevEcoProjects/dev/bin:$PATHexportNODE_HOME=/Users/用户名/nodejsexportPATH=$N
- Android存储(读取)之SD卡
2501_90225911
android
packagecom.github.c.ceshi;importandroid.content.Context;importandroid.os.Environment;importandroid.widget.Toast;importjava.io.BufferedReader;importjava.io.File;importjava.io.FileInputStream;importjava
- Android设备管理器DevicePolicyManager的使用和理解
weixin_37659322
android
上周项目中有个在apk上层实现息屏亮屏、禁止卸载应用、应用隐藏、禁用机器模块的需求,刚开始在网上看到是DevicePolicyManager来实现的,虽然最后根据自己项目特定的环境下并没有使用DevicePolicyManager这个类去实现息屏功能,但看到很多有意思的API值的学习;以备不时之需。个人感觉首先应该看看:DeviceAdministrationAPI,然后在看其他人的理解先学习AP
- Android原生接口静默安装
weixin_37659322
android
protectedContextmContext;publicvoidsetContext(Contextcontext){mContext=context;}@OverrideprotectedvoidonCreate(BundlesavedInstanceState){//dosomething....setContext(this);//dosomething....}StringResou
- 微信历史版本含下载地址( Windows PC | 安卓 | MAC )及设置微信不更新
广拓科技
微信macos
微信windowsPC各版本下载地址:https://github.com/tom-snow/wechat-windows-versions/releases微信windowsPCx86各版本下载地址:https://github.com/tom-snow/wechat-windows-versions-x86/releases微信android各版本下载地址:https://github.com
- 用Android Compose写了一个电子木鱼
青岛老渔民
android开发Composeandroid学习androidjetpackandroid
闲的没事,用Compose写了一个电子木鱼,正好可以学习使用Animatable绘制动画。源码链接:https://github.com/qd98xuan/MeritWoodenFish下面对代码进行粗略解析,需要查看详细源码可以点击上面的链接。代码主体分为三部分:初始化动画类型数据和计数变量绘制计数Text绘制木鱼一、初始化动画类型数据和计数变量代码如下,通过代理函数创建了一个带有状态的敲击木鱼
- 【QT开发教程】使用Qt进行跨平台(Windows、macOS、Linux、iOS和Android)开发的最佳实践
I'mAlex
QT开发教程qt开发语言跨平台
Qt是一个强大的跨平台C++框架,使得开发者可以编写一次代码并在多个平台上运行,包括Windows、macOS、Linux、iOS和Android。在跨平台开发过程中,遵循一些最佳实践可以帮助我们提高开发效率和代码质量。本文将介绍使用Qt进行跨平台开发的最佳实践。博主简介:现任阿里巴巴嵌入式技术专家,15年工作经验,深耕嵌入式+人工智能领域,精通嵌入式领域开发、技术管理、简历招聘面试。CSDN优质
- android中kotlin协程和线程的关系
儿歌八万首
androidkotlinandroidkotlin
一.子线程和主线程的频繁切换假设现在有这样的一个业务逻辑,有3个耗时操作,耗时1函数执行完毕后,我们需要调用函数1更新UI,再执行耗时2函数,执行完毕后我们在调用函数2更新UI,最后执行耗时3函数,再调用函数3更新UI。1.定义3个不同的耗时操作函数和3个更新UI的函数funioCode1(){println("我是IO线程1==${Thread.currentThread().name}")}f
- 【Android】Android Studio 中文乱码问题解决方案
非晓为骁
Androidandroidandroidstudioide
问题现象在Java文件编译或运行时,IDE控制台或代码编辑区出现类似以下乱码提示:E:\...\FileHelper.java:92:����:�Ҳ�������此类乱码通常由编码配置冲突或文件存储格式异常导致。核心解决步骤1.统一编码配置全局设置进入File→Settings→Editor→FileEncodings,确保以下三项均设置为UTF-8:GlobalEncoding、ProjectE
- JVM StackMapTable 属性的作用及理解
lijingyao8206
jvm字节码Class文件StackMapTable
在Java 6版本之后JVM引入了栈图(Stack Map Table)概念。为了提高验证过程的效率,在字节码规范中添加了Stack Map Table属性,以下简称栈图,其方法的code属性中存储了局部变量和操作数的类型验证以及字节码的偏移量。也就是一个method需要且仅对应一个Stack Map Table。在Java 7版
- 回调函数调用方法
百合不是茶
java
最近在看大神写的代码时,.发现其中使用了很多的回调 ,以前只是在学习的时候经常用到 ,现在写个笔记 记录一下
代码很简单:
MainDemo :调用方法 得到方法的返回结果
- [时间机器]制造时间机器需要一些材料
comsci
制造
根据我的计算和推测,要完全实现制造一台时间机器,需要某些我们这个世界不存在的物质
和材料...
甚至可以这样说,这种材料和物质,我们在反应堆中也无法获得......
 
- 开口埋怨不如闭口做事
邓集海
邓集海 做人 做事 工作
“开口埋怨,不如闭口做事。”不是名人名言,而是一个普通父亲对儿子的训导。但是,因为这句训导,这位普通父亲却造就了一个名人儿子。这位普通父亲造就的名人儿子,叫张明正。 张明正出身贫寒,读书时成绩差,常挨老师批评。高中毕业,张明正连普通大学的分数线都没上。高考成绩出来后,平时开口怨这怨那的张明正,不从自身找原因,而是不停地埋怨自己家庭条件不好、埋怨父母没有给他创造良好的学习环境。
- jQuery插件开发全解析,类级别与对象级别开发
IT独行者
jquery开发插件 函数
jQuery插件的开发包括两种: 一种是类级别的插件开发,即给
jQuery添加新的全局函数,相当于给
jQuery类本身添加方法。
jQuery的全局函数就是属于
jQuery命名空间的函数,另一种是对象级别的插件开发,即给
jQuery对象添加方法。下面就两种函数的开发做详细的说明。
1
、类级别的插件开发 类级别的插件开发最直接的理解就是给jQuer
- Rome解析Rss
413277409
Rome解析Rss
import java.net.URL;
import java.util.List;
import org.junit.Test;
import com.sun.syndication.feed.synd.SyndCategory;
import com.sun.syndication.feed.synd.S
- RSA加密解密
无量
加密解密rsa
RSA加密解密代码
代码有待整理
package com.tongbanjie.commons.util;
import java.security.Key;
import java.security.KeyFactory;
import java.security.KeyPair;
import java.security.KeyPairGenerat
- linux 软件安装遇到的问题
aichenglong
linux遇到的问题ftp
1 ftp配置中遇到的问题
500 OOPS: cannot change directory
出现该问题的原因:是SELinux安装机制的问题.只要disable SELinux就可以了
修改方法:1 修改/etc/selinux/config 中SELINUX=disabled
2 source /etc
- 面试心得
alafqq
面试
最近面试了好几家公司。记录下;
支付宝,面试我的人胖胖的,看着人挺好的;博彦外包的职位,面试失败;
阿里金融,面试官人也挺和善,只不过我让他吐血了。。。
由于印象比较深,记录下;
1,自我介绍
2,说下八种基本类型;(算上string。楼主才答了3种,哈哈,string其实不是基本类型,是引用类型)
3,什么是包装类,包装类的优点;
4,平时看过什么书?NND,什么书都没看过。。照样
- java的多态性探讨
百合不是茶
java
java的多态性是指main方法在调用属性的时候类可以对这一属性做出反应的情况
//package 1;
class A{
public void test(){
System.out.println("A");
}
}
class D extends A{
public void test(){
S
- 网络编程基础篇之JavaScript-学习笔记
bijian1013
JavaScript
1.documentWrite
<html>
<head>
<script language="JavaScript">
document.write("这是电脑网络学校");
document.close();
</script>
</h
- 探索JUnit4扩展:深入Rule
bijian1013
JUnitRule单元测试
本文将进一步探究Rule的应用,展示如何使用Rule来替代@BeforeClass,@AfterClass,@Before和@After的功能。
在上一篇中提到,可以使用Rule替代现有的大部分Runner扩展,而且也不提倡对Runner中的withBefores(),withAfte
- [CSS]CSS浮动十五条规则
bit1129
css
这些浮动规则,主要是参考CSS权威指南关于浮动规则的总结,然后添加一些简单的例子以验证和理解这些规则。
1. 所有的页面元素都可以浮动 2. 一个元素浮动后,会成为块级元素,比如<span>,a, strong等都会变成块级元素 3.一个元素左浮动,会向最近的块级父元素的左上角移动,直到浮动元素的左外边界碰到块级父元素的左内边界;如果这个块级父元素已经有浮动元素停靠了
- 【Kafka六】Kafka Producer和Consumer多Broker、多Partition场景
bit1129
partition
0.Kafka服务器配置
3个broker
1个topic,6个partition,副本因子是2
2个consumer,每个consumer三个线程并发读取
1. Producer
package kafka.examples.multibrokers.producers;
import java.util.Properties;
import java.util.
- zabbix_agentd.conf配置文件详解
ronin47
zabbix 配置文件
Aliaskey的别名,例如 Alias=ttlsa.userid:vfs.file.regexp[/etc/passwd,^ttlsa:.:([0-9]+),,,,\1], 或者ttlsa的用户ID。你可以使用key:vfs.file.regexp[/etc/passwd,^ttlsa:.: ([0-9]+),,,,\1],也可以使用ttlsa.userid。备注: 别名不能重复,但是可以有多个
- java--19.用矩阵求Fibonacci数列的第N项
bylijinnan
fibonacci
参考了网上的思路,写了个Java版的:
public class Fibonacci {
final static int[] A={1,1,1,0};
public static void main(String[] args) {
int n=7;
for(int i=0;i<=n;i++){
int f=fibonac
- Netty源码学习-LengthFieldBasedFrameDecoder
bylijinnan
javanetty
先看看LengthFieldBasedFrameDecoder的官方API
http://docs.jboss.org/netty/3.1/api/org/jboss/netty/handler/codec/frame/LengthFieldBasedFrameDecoder.html
API举例说明了LengthFieldBasedFrameDecoder的解析机制,如下:
实
- AES加密解密
chicony
加密解密
AES加解密算法,使用Base64做转码以及辅助加密:
package com.wintv.common;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import sun.misc.BASE64Decod
- 文件编码格式转换
ctrain
编码格式
package com.test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
- mysql 在linux客户端插入数据中文乱码
daizj
mysql中文乱码
1、查看系统客户端,数据库,连接层的编码
查看方法: http://daizj.iteye.com/blog/2174993
进入mysql,通过如下命令查看数据库编码方式: mysql> show variables like 'character_set_%'; +--------------------------+------
- 好代码是廉价的代码
dcj3sjt126com
程序员读书
长久以来我一直主张:好代码是廉价的代码。
当我跟做开发的同事说出这话时,他们的第一反应是一种惊愕,然后是将近一个星期的嘲笑,把它当作一个笑话来讲。 当他们走近看我的表情、知道我是认真的时,才收敛一点。
当最初的惊愕消退后,他们会用一些这样的话来反驳: “好代码不廉价,好代码是采用经过数十年计算机科学研究和积累得出的最佳实践设计模式和方法论建立起来的精心制作的程序代码。”
我只
- Android网络请求库——android-async-http
dcj3sjt126com
android
在iOS开发中有大名鼎鼎的ASIHttpRequest库,用来处理网络请求操作,今天要介绍的是一个在Android上同样强大的网络请求库android-async-http,目前非常火的应用Instagram和Pinterest的Android版就是用的这个网络请求库。这个网络请求库是基于Apache HttpClient库之上的一个异步网络请求处理库,网络处理均基于Android的非UI线程,通
- ORACLE 复习笔记之SQL语句的优化
eksliang
SQL优化Oracle sql语句优化SQL语句的优化
转载请出自出处:http://eksliang.iteye.com/blog/2097999
SQL语句的优化总结如下
sql语句的优化可以按照如下六个步骤进行:
合理使用索引
避免或者简化排序
消除对大表的扫描
避免复杂的通配符匹配
调整子查询的性能
EXISTS和IN运算符
下面我就按照上面这六个步骤分别进行总结:
- 浅析:Android 嵌套滑动机制(NestedScrolling)
gg163
android移动开发滑动机制嵌套
谷歌在发布安卓 Lollipop版本之后,为了更好的用户体验,Google为Android的滑动机制提供了NestedScrolling特性
NestedScrolling的特性可以体现在哪里呢?<!--[if !supportLineBreakNewLine]--><!--[endif]-->
比如你使用了Toolbar,下面一个ScrollView,向上滚
- 使用hovertree菜单作为后台导航
hvt
JavaScriptjquery.nethovertreeasp.net
hovertree是一个jquery菜单插件,官方网址:http://keleyi.com/jq/hovertree/ ,可以登录该网址体验效果。
0.1.3版本:http://keleyi.com/jq/hovertree/demo/demo.0.1.3.htm
hovertree插件包含文件:
http://keleyi.com/jq/hovertree/css
- SVG 教程 (二)矩形
天梯梦
svg
SVG <rect> SVG Shapes
SVG有一些预定义的形状元素,可被开发者使用和操作:
矩形 <rect>
圆形 <circle>
椭圆 <ellipse>
线 <line>
折线 <polyline>
多边形 <polygon>
路径 <path>
- 一个简单的队列
luyulong
java数据结构队列
public class MyQueue {
private long[] arr;
private int front;
private int end;
// 有效数据的大小
private int elements;
public MyQueue() {
arr = new long[10];
elements = 0;
front
- 基础数据结构和算法九:Binary Search Tree
sunwinner
Algorithm
A binary search tree (BST) is a binary tree where each node has a Comparable key (and an associated value) and satisfies the restriction that the key in any node is larger than the keys in all
- 项目出现的一些问题和体会
Steven-Walker
DAOWebservlet
第一篇博客不知道要写点什么,就先来点近阶段的感悟吧。
这几天学了servlet和数据库等知识,就参照老方的视频写了一个简单的增删改查的,完成了最简单的一些功能,使用了三层架构。
dao层完成的是对数据库具体的功能实现,service层调用了dao层的实现方法,具体对servlet提供支持。
&
- 高手问答:Java老A带你全面提升Java单兵作战能力!
ITeye管理员
java
本期特邀《Java特种兵》作者:谢宇,CSDN论坛ID: xieyuooo 针对JAVA问题给予大家解答,欢迎网友积极提问,与专家一起讨论!
作者简介:
淘宝网资深Java工程师,CSDN超人气博主,人称“胖哥”。
CSDN博客地址:
http://blog.csdn.net/xieyuooo
作者在进入大学前是一个不折不扣的计算机白痴,曾经被人笑话过不懂鼠标是什么,