AIDL写远程服务的时候,Service的onBind返回值类型的问题 1C

比如我写了个远程Service
public class TestService extends Service {
private IBinder mBinder=new ITest.Stub(){
@Override
public int show(int num1, int num2) throws RemoteException {
return num1+num2;
}
};
@Nullable
@Override
public IBinder onBind(Intent intent) {
return mBinder;
}
}

ITest.Stub就是AIDL工具生产的一个类。

我们在activity中bindservice时候,肯定会有public void onServiceConnected(ComponentName name, IBinder service)这个函数,这个service我debug显示是个BinderProxy,他也应该是这个类型的!

但是我追Bindservice源码的时候自己却矛盾了,因为我发现这个public void onServiceConnected函数的IBinder类型的service这个参数,其实就是我上面写的service的onbind方法的返回值。可是我onbind返回的是一个iTest.Stub extends Binder,那不应该是个binder类么??怎么就成了BinderProxy了?我也没找到哪里转换,或者构建的。

求大神解惑

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
aidl 向远程服务注册listener问题
在android开发中遇到一个aidl问题。 向远程服务注册监听器,但是报一个Bad magic number for Bundle错误 在普通用法是没有问题的,这个错误是因为我有个需求是在静态方法中调用 有没有人遇到过这样的问题?
android AIDL使用的问题
AIDL的使用步骤是: 创建两个工程,一个为client,一个为server server端在src目录下专门创建一个包用于放置创建的myInterface.aidl接口文件,定义用于通信的抽象方法,然后编译,在gen目录下生成myInterface.java文件,该文件会自动生成内部接口myInterface.Stub;再创建一个Service类,在类中创建myInterface.Stub对象,实现在接口中定义的用于通信的抽象方法; 再重写onBind方法,把Stub对象返回出去(Stub类是IBinder的子类,可以用于client端和server端的通信) 然后在AndroidManifest文件里配置Service类 然后把在server端定义的aidl接口文件复制到client端项目中(连包带文件一起复制,保持client端和server端aidl接口所在包路径一样),在client端的Activity中定义ServiceConnection类对象和server端接口myInterface对象,重写ServiceConnection对象的onServiceConnect,在该方法中获取来自server端的myInterface对象, 现在就可以调用myInterface中的方法(也就是client端调用server端的方法,也就完成了进程间通信) 上面的ServiceConnection要能获取到IBinder对象,还需要client用Intent完成与server端的Service类的绑定 我就卡在这一步了 不管是对server端Service指定Action来让client端启动,还是指定其它东西,就是无法再client端项目里启动server端项目里的Service 有谁知道怎么解决吗? 简而言之,就是如何在当前工程中调用远程Service
求助大神,关于安卓aidl远程服务通信
bindService返回true可是我实现ServiceConnection的myService为空。下面是我的客服端代码 public class MainActivity extends AppCompatActivity { private Intent services; private IService myService; private MyConnection connection; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); services = new Intent(); services.setAction("com.wangjiang.studentinfomationservice"); services.setPackage("com.wangjiang.studentinfomationservice"); connection = new MyConnection(); boolean t = bindService(services, connection, BIND_AUTO_CREATE); Toast.makeText(MainActivity.this, String.valueOf(t),Toast.LENGTH_LONG).show(); try { if(myService !=null) { List<Student> list =myService.getData(); if(list != null) Toast.makeText(MainActivity.this,"list.size() + " , Toast.LENGTH_LONG).show(); else Toast.makeText(MainActivity.this, "NULL" , Toast.LENGTH_LONG).show(); } else Toast.makeText(MainActivity.this, "NU" , Toast.LENGTH_LONG).show(); } catch (RemoteException e) { e.printStackTrace(); } unbindService(connection); } private class MyConnection implements ServiceConnection { @Override public void onServiceConnected(ComponentName name, IBinder service) { if (service == null) Log.i("CLIENT","bind null"); else { myService = IService.Stub.asInterface(service); Log.i("CLIENT","bindetr"); } } @Override public void onServiceDisconnected(ComponentName name) { } } }
AIDL获取aidl文件自动生成的java类的对象为空的问题
public void onServiceConnected(ComponentName arg0, IBinder service) { //拿到远程服务 imediaPlaybackService = IMediaPlaybackService.Stub.asInterface(service); Log.i(TAG,"拿到服务"); } ``` long Id =imediaPlaybackService.removeTrack(num1 ); textview.setText("Id"); ``` 报错提示如下 01-03 15:22:37.936: E/AndroidRuntime(3665): java.lang.NullPointerException: Attempt to invoke interface method 'int com.android.music.IMediaPlaybackService.removeTrack(long)' on a null object reference 01-03 15:22:37.936: E/AndroidRuntime(3665): at com.music.musicaidltest.MainActivity.onClick(MainActivity.java:68) 其中imediaPlaybackService是aidl的java类IMediaPlaybackService这的对象,请问有谁知道可能是什么情况造成
android通过aidl和直接点击icon启动app,application有什么不同
现在由A B C三个APP,在B的application的oncreat方法中通过aidl调用了C的初始化service 现在有两个现象: 一、直接启动B,B的application可以通过aidl成功调用C的初始化service 二、启动A,A通过aidl调用B的service,这个时候B的application中调用C初始化service失败了
关于Android IDevicePolicyManager.aidl的问题
看关于Android锁屏的代码看到最后是调用了IDevicePolicyManager.aidl里面的方法。比如getPasswordQuality()。那IDevicePolicyManager.aidl这个文件最后又是怎么往下调用呢?该怎么追踪这种aidl文件的方法?
Android系统应用的aidl怎么获取,为什么我下载的sdk中,没有aidl文件?
Android系统应用的aidl怎么获取,为什么我下载的sdk中,没有aidl文件?
Android studio写AIDL时报错:Execution failed for task,
我用的是Android Studio 1.4 ![图片说明](https://img-ask.csdn.net/upload/201604/20/1461137087_410343.png) ![图片说明](https://img-ask.csdn.net/upload/201604/20/1461137380_344758.png) 第二张图compile sdk version那里只能选api level 23. 在aidl包下我写了2个aidl文件,另外MainActivity那个包中的MyParcelClass,这3个和aidl有关。下面贴下代码: MyParcelClass.java ``` public class MyParcelableClass implements Parcelable { private int id; private String str; public MyParcelableClass(int id,String str) { this.id=id; this.str=str; } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel out,int flags) { out.writeInt(id); out.writeString(str); } private MyParcelableClass(Parcel in) { id=in.readInt(); str=in.readString(); } public static final Parcelable.Creator<MyParcelableClass> CREATOR=new Parcelable.Creator<MyParcelableClass>() { @Override public MyParcelableClass[] newArray(int size) { return new MyParcelableClass[size]; } public MyParcelableClass createFromParcel(Parcel in) { return new MyParcelableClass(in); } }; } ``` MyParcelClass.aidl: ``` package com.example.dell_pc.aldl; parcelable MyParcelableClass; ``` IMyParcelManager.aidl: ``` package com.example.dell_pc.aldl.aidl; import com.example.dell_pc.aldl.MyParcelableClass; // Declare any non-default types here with import statements interface IMyParcelManager { /** * Demonstrates some basic types that you can use as parameters * and return values in AIDL. */ void basicTypes(int anInt, long aLong, boolean aBoolean, float aFloat, double aDouble, String aString); void add(in MyParcelableClass mMyParcelableClass); MyParcelableClass get(); } ``` 与aidl有关的3个文件的代码如上,报这个错误好像是Android Studio不会自动生成IMyParcelmanager.java?但是我build,然后make project后就是这个样子,求解决方法,网上搜索的方法都不行
Android开发 AIDL接口文件里使用内部类报错unknown type
在Android开发时涉及到一个进程间通讯,要传递一个内部类对象到远程服务端。已经把内部类对象用Parcelable序列化了,但是编译总是报错unknown type 外部类.内部类。 1、AIDL能否传递内部类对象到远程端? 2、此问题该怎样解决?
为对象类编写的AIDL文件报错。。。
``` parcelable Person; ``` 这是为一个Person对象类定义接口的AIDL文件,可是总是显示parcelable是错的,错误信息显示是拼写错误,求解。。
Android Service unBind 为什么无效呢
客户端连接上服务端的后,AIDL通信之后,unBind操作,但是仍然可以操作AIDL接口,返回的也是服务器上的数据。。。 为什么啊
aidl使用问题,有点乱!!!
很多博文说复制aidl文件到客户端时,包名不能改变,但是我写了Demo,证明改了包名也是没有问题的,只要自动生成的.java里DESCRIPTOR字段和服务器端自动生成的一样就没问题,不一样就会报错。但是我们公司有两个项目,包名和DESCRIPTOR字段都和服务器不一样,但是也没问题,晕了,,,不知道怎么回事,请大神赐教!
android中AIDL传输需要联网吗?
AIDL是IPC的一种,AIDL在android内部进程通信,是服务器端与客户端的相互通信,那这种通信方式需要联网吗?难道不联网就能 两台机器之间进行通信了吗?这个AIDL之间的通信有地域限制吗?请大牛帮帮忙,解答一下谜团,谢谢啦!
使用aidl,服务端和客户端不能正常通信?
服务端目录结构: ![图片说明](https://img-ask.csdn.net/upload/201608/30/1472552456_489544.png) 服务端Service代码: package com.example.remoteservice; import java.util.LinkedList; import java.util.List; import com.example.remoteservice.aidl.IMyService; import com.example.remoteservice.aidl.Person; import android.app.Service; import android.content.Intent; import android.os.IBinder; import android.os.RemoteException; public class RemoteService extends Service { private LinkedList<Person> personList = new LinkedList<Person>(); @Override public IBinder onBind(Intent intent) { return mBinder; } private final IMyService.Stub mBinder = new IMyService.Stub(){ @Override public void savePersonInfo(Person person) throws RemoteException { if (person != null){ personList.add(person); } } @Override public List<Person> getAllPerson() throws RemoteException { return personList; } @Override public String sayHello() throws RemoteException { // TODO Auto-generated method stub return "欢迎你通过AIDL访问服务器端"; } }; } 服务端配置文件: <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.remoteservice.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <service android:name="com.example.remoteservice.RemoteService" > <intent-filter > <action android:name="com.example.remoteservice.aidl.IMyService"/> </intent-filter> </service> </application> 客户端主活动: package com.example.remoteclient; import java.util.List; import com.example.remoteservice.aidl.IMyService; import com.example.remoteservice.aidl.Person; import android.os.Bundle; import android.os.IBinder; import android.os.RemoteException; import android.app.Activity; import android.content.ComponentName; import android.content.Intent; import android.content.ServiceConnection; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { private TextView textHello,textPerson; private IMyService myService; private Button btnSave; private Button btnGet; private static Boolean mIsRemoteBound=false; private ServiceConnection conn=new ServiceConnection() { @Override public void onServiceDisconnected(ComponentName name) { // TODO Auto-generated method stub myService=null; } @Override public void onServiceConnected(ComponentName name, IBinder service) { // TODO Auto-generated method stub myService=IMyService.Stub.asInterface(service); try { textHello.setText(myService.sayHello()); } catch (RemoteException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textHello=(TextView) this.findViewById(R.id.textHello); btnSave=(Button) this.findViewById(R.id.btnSave); btnGet=(Button) this.findViewById(R.id.btnGet); textPerson=(TextView) this.findViewById(R.id.textPerson); if(mIsRemoteBound){ unbindService(conn); }else{ Intent intent=new Intent("com.example.remoteservice.aidl.IMyService"); bindService(intent, conn, BIND_AUTO_CREATE); } mIsRemoteBound = !mIsRemoteBound; btnSave.setOnClickListener(new OnClickListener() { private int index = 0; @Override public void onClick(View v) { // TODO Auto-generated method stub Person person = new Person(); index = index + 1; person.setName("Person" + index); person.setAge(20); person.setTelNumber("123456"); try { myService.savePersonInfo(person); // } catch (RemoteException e) { e.printStackTrace(); } } }); btnGet.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub List<Person> list = null; try { list = myService.getAllPerson(); } catch (RemoteException e) { e.printStackTrace(); } if (list != null){ StringBuilder text = new StringBuilder(); for(Person person : list){ text.append("\n联系人:"); text.append(person.getName()); text.append("\n 年龄:"); text.append(person.getAge()); text.append("\n 电话:"); text.append(person.getTelNumber()); } textPerson.setText(text); }else { Toast.makeText(MainActivity.this, "得到数据出错", Toast.LENGTH_SHORT).show(); } } }); } } 客户端目录结构: ![图片说明](https://img-ask.csdn.net/upload/201608/30/1472553743_450725.png) 客户端配置文件里我没有注册活动,可以吗? 运行时需要先运行服务端程序,然后Home键再运行客户端程序,结果客户端调用不了接口中方法,怎么办? logcat:08-30 06:28:38.300: E/AndroidRuntime(781): at com.example.remoteclient.MainActivity$2.onClick(MainActivity.java:77) ![图片说明](https://img-ask.csdn.net/upload/201608/30/1472553120_915416.png) 点击添加报错崩溃 错误日志: 08-30 10:35:09.760: E/AndroidRuntime(791): FATAL EXCEPTION: main 08-30 10:35:09.760: E/AndroidRuntime(791): Process: com.example.remoteclient, PID: 791 08-30 10:35:09.760: E/AndroidRuntime(791): java.lang.NullPointerException 08-30 10:35:09.760: E/AndroidRuntime(791): at com.example.remoteclient.MainActivity$2.onClick(MainActivity.java:77) 08-30 10:35:09.760: E/AndroidRuntime(791): at android.view.View.performClick(View.java:4424) 08-30 10:35:09.760: E/AndroidRuntime(791): at android.view.View$PerformClick.run(View.java:18383) 08-30 10:35:09.760: E/AndroidRuntime(791): at android.os.Handler.handleCallback(Handler.java:733) 08-30 10:35:09.760: E/AndroidRuntime(791): at android.os.Handler.dispatchMessage(Handler.java:95) 08-30 10:35:09.760: E/AndroidRuntime(791): at android.os.Looper.loop(Looper.java:137) 08-30 10:35:09.760: E/AndroidRuntime(791): at android.app.ActivityThread.main(ActivityThread.java:4998) 08-30 10:35:09.760: E/AndroidRuntime(791): at java.lang.reflect.Method.invokeNative(Native Method) 08-30 10:35:09.760: E/AndroidRuntime(791): at java.lang.reflect.Method.invoke(Method.java:515) 08-30 10:35:09.760: E/AndroidRuntime(791): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777) 08-30 10:35:09.760: E/AndroidRuntime(791): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593) 08-30 10:35:09.760: E/AndroidRuntime(791): at dalvik.system.NativeStart.main(Native Method)
Broadcast和AIDL之间的区别?
Broadcast和AIDL都能进行进程间通讯?Broadcast使用起来更加简单为何还要有AIDL这个产物?他们的区别是?
android独立进程的service和主进程共享代码吗?
进程之间不是独立的吗?通信应该使用aidl吧,service运行在独立的进程为什么可以调用主进程的代码? 如:有一个单例类A,主进程和Service所在的进程都可以对A进行操作。这是为啥?
android关于aidl的一些问题
在程序A没启动的时候,程序B无法调用程序A的对外服务;程序A启动的时候,是正常的。测试机是一个双系统的手机,在其他普通手机上试过,没有任何问题。请问关于双系统的测试机如何解决这个问题(一个系统是普通系统,一个系统是安全系统)
Android如何主工程和library工程使用同一个aidl文件
现在有一个aidl文件必须放在主工程中的src下面,但是在library工程下的src也需要用到这个aidl文件的内容具体该怎么实现这个功能?
android aidl-cpp方式接口调用出现问题
android aidl-cpp方式: java client 端调用接口: return mPoiGateWayService.hasHomeLocation(); C++ service端实现接口:  Status hasHomeLocation(bool* _aidl_return) override { ALOGI("Entering hasHomeLocation"); *_aidl_return = true; return Status::ok(); } aidl 声明的接口:  boolean hasHomeLocation(); 问题:为啥java端接口调用的时候报错:  I apkPoiTest: call cns hasHomeLocation fail: java.lang.IllegalArgumentException
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私有的数
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
此博客仅为我业余记录文章所用,发布到此,仅供网友阅读参考,如有侵权,请通知我,我会删掉。 补充 有不少读者留言说本文章没有用,因为天气预报直接打开手机就可以收到了,为何要多此一举发送到邮箱呢!!!那我在这里只能说:因为你没用,所以你没用!!! 这里主要介绍的是思路,不是天气预报!不是天气预报!!不是天气预报!!!天气预报只是用于举例。请各位不要再刚了!!! 下面是我会用到的两个场景: 每日下
面试官问我:什么是消息队列?什么场景需要他?用了会出现什么问题?
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式,欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸,打败了无数
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观
MyBatis研习录(01)——MyBatis概述与入门
C语言自学完备手册(33篇) Android多分辨率适配框架 JavaWeb核心技术系列教程 HTML5前端开发实战系列教程 MySQL数据库实操教程(35篇图文版) 推翻自己和过往——自定义View系列教程(10篇) 走出思维困境,踏上精进之路——Android开发进阶精华录 讲给Android程序员看的前端系列教程(40集免费视频教程+源码) 版权声明 本文原创作者:谷哥的小弟 作者博客
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/ 
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。 前前言 为啥今天有个前前言呢? 因为你们的丙丙啊,昨天有牌面了哟,直接被微信官方推荐,知乎推荐,也就仅仅是还行吧(心里乐开花)
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca
Python爬虫精简步骤1 获取数据
爬虫的工作分为四步: 1.获取数据。爬虫程序会根据我们提供的网址,向服务器发起请求,然后返回数据。 2.解析数据。爬虫程序会把服务器返回的数据解析成我们能读懂的格式。 3.提取数据。爬虫程序再从中提取出我们需要的数据。 4.储存数据。爬虫程序把这些有用的数据保存起来,便于你日后的使用和分析。 这一篇的内容就是:获取数据。 首先,我们将会利用一个强大的库——requests来获取数据。 在电脑上安装
Python绘图,圣诞树,花,爱心 | Turtle篇
1.画圣诞树 import turtle screen = turtle.Screen() screen.setup(800,600) circle = turtle.Turtle() circle.shape('circle') circle.color('red') circle.speed('fastest') circle.up() square = turtle.Turtle()
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东
破14亿,Python分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口数据吧! 更多有趣分析教程,扫描下方二维码关注vx公号「裸睡的猪」 即可查看! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布
web前端javascript+jquery知识点总结
Javascript javascript 在前端网页中占有非常重要的地位,可以用于验证表单,制作特效等功能,它是一种描述语言,也是一种基于对象(Object)和事件驱动并具有安全性的脚本语言 ,语法同java类似,是一种解释性语言,边执行边解释。 JavaScript的组成: ECMAScipt 用于描述: 语法,变量和数据类型,运算符,逻辑控制语句,关键字保留字,对象。 浏览器对象模型(Br
Python实战:抓肺炎疫情实时数据,画2019-nCoV疫情地图
文章目录1. 前言2. 数据下载3. 数据处理4. 数据可视化 1. 前言 今天,群里白垩老师问如何用python画武汉肺炎疫情地图。白垩老师是研究海洋生态与地球生物的学者,国家重点实验室成员,于不惑之年学习python,实为我等学习楷模。先前我并没有关注武汉肺炎的具体数据,也没有画过类似的数据分布图。于是就拿了两个小时,专门研究了一下,遂成此文。 2月6日追记:本文发布后,腾讯的数据源多次变更u
听说想当黑客的都玩过这个Monyer游戏(1~14攻略)
第零关 进入传送门开始第0关(游戏链接) 请点击链接进入第1关: 连接在左边→ ←连接在右边 看不到啊。。。。(只能看到一堆大佬做完的留名,也能看到菜鸡的我,在后面~~) 直接fn+f12吧 &lt;span&gt;连接在左边→&lt;/span&gt; &lt;a href="first.php"&gt;&lt;/a&gt; &lt;span&gt;←连接在右边&lt;/span&gt; o
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ......
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
渗透测试-灰鸽子远控木马
木马概述 灰鸽子( Huigezi),原本该软件适用于公司和家庭管理,其功能十分强大,不但能监视摄像头、键盘记录、监控桌面、文件操作等。还提供了黑客专用功能,如:伪装系统图标、随意更换启动项名称和表述、随意更换端口、运行后自删除、毫无提示安装等,并采用反弹链接这种缺陷设计,使得使用者拥有最高权限,一经破解即无法控制。最终导致被黑客恶意使用。原作者的灰鸽子被定义为是一款集多种控制方式于一体的木马程序
Python:爬取疫情每日数据
前言 有部分同学留言说为什么412,这是因为我代码里全国的cookies需要你自己打开浏览器更新好后替换,而且这个cookies大概只能持续20秒左右! 另外全国卫健委的数据格式一直在变,也有可能会导致爬取失败! 我现在已根据2月14日最新通报稿的格式修正了! 目前每天各大平台,如腾讯、今日头条都会更新疫情每日数据,他们的数据源都是一样的,主要都是通过各地的卫健委官网通报。 为什么已经有大量平台做
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。   再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。   下文是原回答,希望能对你能有所启发。   如果我说,这个世界上人真的分三六九等,
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合
雷火神山直播超两亿,Web播放器事件监听是怎么实现的?
Web播放器解决了在手机浏览器和PC浏览器上播放音视频数据的问题,让视音频内容可以不依赖用户安装App,就能进行播放以及在社交平台进行传播。在视频业务大数据平台中,播放数据的统计分析非常重要,所以Web播放器在使用过程中,需要对其内部的数据进行收集并上报至服务端,此时,就需要对发生在其内部的一些播放行为进行事件监听。 那么Web播放器事件监听是怎么实现的呢? 01 监听事件明细表 名
3万字总结,Mysql优化之精髓
本文知识点较多,篇幅较长,请耐心学习 MySQL已经成为时下关系型数据库产品的中坚力量,备受互联网大厂的青睐,出门面试想进BAT,想拿高工资,不会点MySQL优化知识,拿offer的成功率会大大下降。 为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 数据是存放在磁盘上的,读写速度无法和内存相比 如何优化 设计
Python新型冠状病毒疫情数据自动爬取+统计+发送报告+数据屏幕(三)发送篇
今天介绍的项目是使用 Itchat 发送统计报告 项目功能设计: 定时爬取疫情数据存入Mysql 进行数据分析制作疫情报告 使用itchat给亲人朋友发送分析报告(本文) 基于Django做数据屏幕 使用Tableau做数据分析 来看看最终效果 目前已经完成,预计2月12日前更新 使用 itchat 发送数据统计报告 itchat 是一个基于 web微信的一个框架,但微信官方并不允
作为程序员的我,大学四年一直自学,全靠这些实用工具和学习网站!
我本人因为高中沉迷于爱情,导致学业荒废,后来高考,毫无疑问进入了一所普普通通的大学,实在惭愧...... 我又是那么好强,现在学历不行,没办法改变的事情了,所以,进入大学开始,我就下定决心,一定要让自己掌握更多的技能,尤其选择了计算机这个行业,一定要多学习技术。 在进入大学学习不久后,我就认清了一个现实:我这个大学的整体教学质量和学习风气,真的一言难尽,懂的人自然知道怎么回事? 怎么办?我该如何更好的提升
粒子群算法求解物流配送路线问题(python)
粒子群算法求解物流配送路线问题(python) 1.查找论文文献 找一篇物流配送路径优化+粒子群算法求解的论文 参考文献:基于混沌粒子群算法的物流配送路径优化 2.了解粒子群算法的原理 讲解通俗易懂,有数学实例的博文:https://blog.csdn.net/daaikuaichuan/article/details/81382794 3.确定编码方式和解码策略 3.1编码方式 物流配送路线的
教你如何编写第一个简单的爬虫
很多人知道爬虫,也很想利用爬虫去爬取自己想要的数据,那么爬虫到底怎么用呢?今天就教大家编写一个简单的爬虫。 下面以爬取笔者的个人博客网站为例获取第一篇文章的标题名称,教大家学会一个简单的爬虫。 第一步:获取页面 #!/usr/bin/python # coding: utf-8 import requests #引入包requests link = "http://www.santostang.
前端JS初级面试题二 (。•ˇ‸ˇ•。)老铁们!快来瞧瞧自己都会了么
1. 传统事件绑定和符合W3C标准的事件绑定有什么区别? 传统事件绑定 &lt;div onclick=""&gt;123&lt;/div&gt; div1.onclick = function(){}; &lt;button onmouseover=""&gt;&lt;/button&gt; 注意: 如果给同一个元素绑定了两次或多次相同类型的事件,那么后面的绑定会覆盖前面的绑定 (不支持DOM事...
相关热词 c#导入fbx c#中屏蔽键盘某个键 c#正态概率密度 c#和数据库登陆界面设计 c# 高斯消去法 c# codedom c#读取cad文件文本 c# 控制全局鼠标移动 c# temp 目录 bytes初始化 c#
立即提问