哈希Map
码龄13年
关注
提问 私信
  • 博客:2,168,446
    社区:1,328
    问答:58,194
    2,227,968
    总访问量
  • 201
    原创
  • 593,051
    排名
  • 649
    粉丝
  • 2
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:湖北省
  • 加入CSDN时间: 2012-05-16
博客简介:

编程是一门艺术

博客描述:
遇到问题要思考
查看详细资料
个人成就
  • 获得531次点赞
  • 内容获得428次评论
  • 获得1,052次收藏
  • 代码片获得65,386次分享
创作历程
  • 2篇
    2023年
  • 3篇
    2021年
  • 6篇
    2016年
  • 15篇
    2015年
  • 32篇
    2014年
  • 128篇
    2013年
  • 164篇
    2012年
成就勋章
TA的专栏
  • 机器学习
    2篇
  • Android Doc
    3篇
  • Android App
    190篇
  • Android Game
    2篇
  • Android Framework
    18篇
  • IOS
    50篇
  • Java
    18篇
  • 项目管理
    7篇
  • Flash
  • 个人
    15篇
  • Linux
    10篇
  • Web
    7篇
  • 其他分享
    11篇
  • HTML5
  • 前景技术
    5篇
  • 算法
    10篇
  • Android 动画教程
    4篇
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

182人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

四款AI视频翻译产品横评

整体来说,视频转翻的产品目前不多,而且使用价格较贵。由于WaveAI网站没有做国际化,可能对不会英文的朋友不太友好,但是相对低廉的价格可能是他的优势。是一个基于 GPT-4 打造的帮用户快速使用AI的AI工具,通过与它的小助手对话可以了解各种AI的产品功能和使用方式。今天我们测评最新的4款视频翻译软件,分别是 RaskAI、WavelAI、 lingosyncAI和Zeemo。免费版提供一次试用,可以上传20分钟以内视频,但是输出视频只有一分钟。支持语言较多,可以自动生成翻译语言后的音频。
原创
发布博客 2023.05.25 ·
2348 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

五大向量数据库入门横评

坦率的说,Pincone确实是一款简单易上手对初学者友好的向量数据库。其提供的免费空间也够大多数场景使用了,方便的API,简单的WebUI,无需部署,自动扩容等都做的非常易用。唯一的缺点是相对其他产品,费用起点较高。对于刚接触向量数据库的伙伴来说,强烈推荐!结合 Paxi.ai 的数据内容很容易实现AI智能搜索等功能
原创
发布博客 2023.05.19 ·
4555 阅读 ·
1 点赞 ·
2 评论 ·
10 收藏

把Mac截屏发送到飞书

import time, os, jsonimport requestsdef takeScreenCapture(): now = time.time() # print(int(now)) # 执行指令的路径 # print(os.getcwd()) # 文件路径 # print(__file__) # 工程路径 projectDir = os.path.abspath(os.path.split(os.path.abspath(.
原创
发布博客 2021.12.03 ·
871 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Python获取照片主色调

代码备份import sysfrom optparse import OptionParser import PILfrom PIL import Image# import cv2# import numpy as np# from sklearn.cluster import KMeans# from collections import Counterdef getMaxColor(img): # 计算5种主要颜色 kmeans = KMeans(n_clust
原创
发布博客 2021.10.26 ·
1179 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏

http://45.63.67.50:31001/tb-message-log/userQueryList?token=1a7850ac202109231709999

答:

http://45.63.67.50:31001/tb-message-log/userQueryList?token=1a7850ac202109231709999这行代码为什么就能看到绑定手机收到的短信了呢?可以对其他手机用吗?可以的话如何操作?

不知道你这个连接从那里获得的,信息比较少。
“”http://45.63.67.50这个ip地址是“美国 伊利诺伊 芝加哥”,说明服务器大概率在国外,也可能是国内的机器挂海外VPN,但是没必要这么做。
“:31001”端口是一个不常用的端口,说明提供这个服务的人有一定的电脑编程基础,如果是新手小白很可能端口号就是80、8080、8888这种容易记的。
“tb-message-log/userQueryList”是接口路径,看不出什么特别的地方,tb应该是什么的简写,有可能是项目名称,也可能是作者名字,后面的userQueryList凭感觉是根据条件查询数据库。
“token=1a7850ac202109231709999”就是查询条件了,楼主说该API用于查询手机短信,那么查询条件首先假设是手机号,但是手机号明显是11位,这里有23位;所以首先怀疑是手机号通过某种算法加密。常见MD5加密是16位\32位的,如果是MD5截取容易产生撞库问题,因此排除MD5加密。所以这里无法判断加密方式。从而无法得知手机号,也无法算出其他手机号对应的token。

回答楼主问题:
1.这行代码之所以能看到绑定手机短信,是有一个开发者开发了这套系统,通过输入指定的token可以获取对应手机号的短信内容。
2.不可以对其他手机使用,只能对后台配置的手机使用。

另外我想楼主肯定更想知道实现的原理,现分析原理可能如下:
一个开发者开发了一个后台系统,该系统可以实时读取手机短信内容,读取方式可能为有线,也可能为无线。
有线方式:通过数据线将该手机与电脑连接,通过adb等工具实时读取手机短信内容。缺点:手机数量有限
无线方式:手机端安装一个app能实时获取短信内容上报给服务器。服务器用数据库存储短信供WEB查询。缺点:实现相对复杂

如果你想实现这么一套系统,估计投入5000~20000可以在网上让别人帮你做一套。

回答问题 2021.10.18

Ubuntu 20.04安装CUDA & CUDNN 手把手带你撸

新手先看这之前一直使用CPU做训练,最近手上多了台单卡1080Ti显卡主机,于是开始研究GPU训练。用GPU训练一定会使用CUDA了,刚开始接触CUDA非常非常头痛,对小白很不友好,我几乎整了整整一天,中途想放弃过很多次,最后终于弄好了,回头看看其实不是很难,但是网上文章又多又杂,确实让我来回鼓捣了很久,于是写下这篇文章,希望对新入门GPU机去学习,想安装CUDA的朋友们一点帮助,少走弯路,不要像我一样浪费好多时间。新手最难理解的就是CUDA和cuDNN是啥了,以及安装过程,步骤。 这里先简单说一下
原创
发布博客 2021.07.22 ·
137598 阅读 ·
187 点赞 ·
39 评论 ·
783 收藏

Android插件化开发 第五篇 [360 Droid Plugin]

引言上篇文章为止我们有完整的介绍Android插件开发的流程。简单的回顾一下就是通过系统的ClassLoader加载插件apk里的方法,通过反射与插件交互。说起来容易实现起来却是一步一个坑,所以这篇文章起我们会了解一下目前网上流行的开源插件库。本文介绍DroidPlugin,它是360手机助手团队在Android系统上实现了一种插件机制。它可以在无需安装、修改的情况下运行APK文件,此机制对改进大型
原创
发布博客 2016.02.26 ·
9184 阅读 ·
4 点赞 ·
7 评论 ·
10 收藏

Android插件化开发 第四篇 [加载插件Activity]

引言上篇文章我们有介绍如何获取插件的Resource加载其资源,例子支持加载res文件夹下的素材资源例如动画、图片、布局、字符串等,本篇文章介绍宿主如何跳转到插件的Activity。跳转到插件的Activity方法比较多,但是目前为止都是一件挺复杂的事儿。常见的方法有宿主代理Activity模式和宿主动态创建Activity模式。两者区别是宿主代理无需在宿主中注册Activity,所有跳转均由一个傀
原创
发布博客 2016.02.25 ·
4485 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

Android插件化开发 第三篇 [加载插件资源]

引言本文讲解宿主如何从插件apk中获取到资源,为啥要从插件中获取资源呢?这种需求可能来自于显示插件的名字啊,图标之类的。比如宿主的一个按键上显示“扫一扫”或者”摇一摇”之类的,这个字符串是插件提供的。Demo创建引入插件的AssetManagerprivate static AssetManager createAssetManager(String apkPath) { try {
原创
发布博客 2016.02.24 ·
4155 阅读 ·
3 点赞 ·
0 评论 ·
5 收藏

Android插件化开发 第二篇 [动态加载apk优化]

引言上篇文章我们有提到过ClassLoader类加载器,通过学习了解到系统提供的类加载器有* PathClassLoader*和* DexClassLoader*两种。它们的不同之处是: * PathClassLoader只能加载系统/data/data/包名目录下的apk; * DexClassLoader可以加载jar/apk/dex,可以从SD卡中加载的apk;当Android应用开启的时
原创
发布博客 2016.02.24 ·
3373 阅读 ·
2 点赞 ·
1 评论 ·
1 收藏

Android插件化开发 第一篇 [动态加载apk]

引言随着应用版本的不断迭代,App变得非常庞大而臃肿。新需求接踵而至,旧需求废弃无用而占着空间,工程变得混乱。虽然会采用不同的包名隔离开各个需求模块,但是往往还是觉得如果需求能像插件一样分模块,需要的时候插上去,废弃的时候拔下来就好了。携程开源了其插件化开发框架(携程插件化开发框架),接下来我会学习并从本文开始介绍携程开源的这套插件化开发框架,让更多的人了解安卓的插件化开发。这里感谢携程团队的贡献,
原创
发布博客 2016.02.24 ·
7111 阅读 ·
6 点赞 ·
0 评论 ·
20 收藏

android-gif-drawable 无效 失效 不能用 not working

项目之前一直使用android-gif-drawable加载GIF图片,一切正常。最近突然发现不能自动播放GIF了,检查了一整天的代码都没找到原因。 从官网下载Demo却可以正常运行,一旦把代码整合到我们的工程里就不能运行了。 折腾了一天之后终于发现工程本地库里面莫名其妙的升级成了“1.1.12-SNAPSHOT”版本,而官方此时最高正式版本才1.1.11。 所以把build.gradle中的
原创
发布博客 2016.01.01 ·
1973 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Java(Android)线程池

http://www.trinea.cn/android/java-android-thread-pool/介绍new Thread的弊端及Java四种线程池的使用,对Android同样适用。本文是基础篇,后面会分享下线程池一些高级功能。1、new Thread的弊端执行一个异步任务你还只是如下new Thread吗?Java
转载
发布博客 2015.12.07 ·
900 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

移动端网络优化

http://www.trinea.cn/android/mobile-performance-optimization/一个网络请求可以简单分为连接服务器 -> 获取数据两个部分。其中连接服务器前还包括 DNS 解析的过程;获取数据后可能会对数据进行缓存。 一、连接服务器优化策略1. 不用域名,用 IP 直连省去 DNS 解析过程,DNS 全名 Dom
转载
发布博客 2015.12.07 ·
884 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

codepath教程:浮动操作按钮详解

http://www.open-open.com/lib/view/open1437207632162.html原文:Floating Action Buttons 概览浮动操作按钮 (简称 FAB) 是: “一个特殊的promoted操作案例。因为一个浮动在UI之上的圆形图标而显得格外突出,同时它还具有特殊的手势行为”比如,如果我们在使用email
转载
发布博客 2015.10.12 ·
1408 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

RecyclerView 拖动才刷新内容

RecyclerView 拖动才刷新内容遇到问题是在ViewPager中的某个RecyclerView明明在UI线程调用了它的adapter.notifydatasetchanged()方法,但是UI就是没有刷新,且用手指拖动界面之后其才会刷新。 这个问题常见于内存消耗比较大,貌似Fragment被怎么回收了?这个时候监听Viewpager的onPageSelected事件,切换完tab之后调用
原创
发布博客 2015.07.22 ·
5779 阅读 ·
2 点赞 ·
3 评论 ·
0 收藏

Android Camera遇到的坑

拍照后onPictureTaken()不能回调在小米手机3上发现正常运行的程序拍照无法正常回调,且点击拍照按钮后会停留在最后拍照的界面,且日志里不会有任何报错信息。经排查发现是初始化相机的时候设置了setPictureSize()导致的。奇怪的是系统相机一切正常,且可以用硬件最大分辨率,可是我的代码里只能支持最高为2688x1520的pictureSize,否则均无法收到onPictureTaken
原创
发布博客 2015.04.01 ·
2619 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Android 实现遮罩

关键方法paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));说明canvas原有的图可以理解为Dst新画上去的前景图可以理解为SreMode值如下图一般用法Canvas canvas = new Canvas(bitmap1); paint.setXfermode(new PorterDuffXfermode(Mod
原创
发布博客 2015.03.25 ·
17554 阅读 ·
2 点赞 ·
1 评论 ·
11 收藏

Java容器总结

http://www.bysocket.com/?p=162#0-tsina-1-86659-397232819ff9a47a7b7e80a40613cfe1Vector和ArrayList      1,vector是线程同步的,所以它也是线程安全的,而arraylist是线程异步的,是不安全的。如果不考虑到线程的安全因素,一般用arraylist效率比较高。     
转载
发布博客 2015.03.24 ·
851 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Markdown 语法的简要规则

标题标题是每篇文章都需要也是最常用的格式,在 Markdown 中,如果一段文字被定义为标题,只要在这段文字前加 # 号即可。# 一级标题## 二级标题### 三级标题以此类推,总共六级标题,建议在井号后加一个空格,这是最标准的 Markdown 语法。列表熟悉 HTML 的同学肯定知道有序列表与无序列表的区别,在 Mar
原创
发布博客 2015.03.12 ·
2523 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多