1.请求网络

1.1Android中如何请求网络

  • Android中原本自带了Httpclient,用来实现网络请求,但在新版本中已经移除了
  • HttpURLConnection,API简单,体积较小,非常适用于Android这样的移动设备
  • 真实项目中会选择一些网络框架,Android/Java开发大多为Okhttp框架,它支持HTTP,HTTP/2协议。同时有很多特性是HttpURLConnection、Httpclient所不支持的。

1.2添加网络访问权限

AndroidManifest.xml添加以下代码:
<uses-permission android:name="android.permission.INTERNET"></uses-permission>

ps:从Android6.0开始做动态处理权限,将targetSDK设置为22就不用动态处理权限。
但如果想上传至Google play,需要的版本最低为26

1.3添加OkHttp依赖

OkHttp是一个第三方框架,需要添加依赖才能使用。

implementation 'com.squareup.okhttp3:3.14.0'
设置JDK兼容版本:
android {...compileOptions{sourceCompatibility JavaVersion.VERSION_1_8targetCompatibility JavaVersion.VERSION_1_8}
}

1.4发送GET请求

    //创建OkHttpClient,建议一个应用只有一个private OkHttpClient okHttpClient = new OkHttpClient();
public void getNetworkData(View view) {//创建一个线程,这里学习的同步请求//因为Android不予许在主线程中请求网络,当然也可以在AsynTask这样的异步迁移任务里面同步调用new Thread(){@Overridepublic void run() {super.run();//创建一个Request,里,面包括你要请求的网址等信息,同时这个类是构建者模式Request request = new Request.Builder().url("https://www.baidu.com").build();try {//调用newCall方法,传入刚刚创建的Request对象,然后调用execute方法来执行这个请求Response response = client.newCall(request).execute();//通过调用response的body上的string方法可以得到流的字符串String result = response.body().string();//将返回的字符串打印到日志,这里不能直接将数据设置到界面上,因为子线程不能操作界面(Android规定)Log.d("TAG",result);} catch (IOException e) {e.printStackTrace();}}}.start();}

总结:

  • 不管是异步还是同步都是先创建OkHttpClinet,建议全局只有一个
  • 然后只有Request的内部类Builder来创建一个Request,并设置网址
  • 调用newCall方法传入request
  • 抵用newCall方法返回的Call对应上面的execute来执行这个请求
  • 调用response的isSuccessful方法来判断是否请求成功
  • 调用response的body的string方法来获取一个字符串
  • 调用response.body()的其他方法拿到bytes数组,输入流等信息

1.5运行http请求

在Android9.0上默认禁用所有http请求,如果要使用http,在清单文件中添加:

android:usesCleartestTraffic='true'

1.6运行结果

2.常用的input命令

ps:需先进入adb shell

2.1 输入文本

input text test
input text "https:www.baidu.com"

2.2按键

input keyevent 3
按键代码如下:
KEYCODE_UNKNOWN=0;
KEYCODE_DPAD_CENTER=23;
KEYCODE_R=46;
KEYCODE_MINUS=69;
KEYCODE_SOFT_LEFT=1;
KEYCODE_VOLUME_UP=24;
KEYCODE_S=47;
KEYCODE_EQUALS=70;
KEYCODE_SOFT_RIGHT=2;
KEYCODE_VOLUME_DOWN=25;
KEYCODE_T=48;
KEYCODE_LEFT_BRACKET=71;
KEYCODE_HOME=3;
KEYCODE_POWER=26;
KEYCODE_U=49;
KEYCODE_RIGHT_BRACKET=72;
KEYCODE_BACK=4;
KEYCODE_CAMERA=27;
KEYCODE_V=50;
KEYCODE_BACKSLASH=73;
KEYCODE_CALL=5;
KEYCODE_CLEAR=28;
KEYCODE_W=51;
KEYCODE_SEMICOLON=74;
KEYCODE_ENDCALL=6;
KEYCODE_A=29;
KEYCODE_X=52;
KEYCODE_APOSTROPHE=75;
KEYCODE_0=7;
KEYCODE_B=30;
KEYCODE_Y=53;
KEYCODE_SLASH=76;
KEYCODE_1=8;
KEYCODE_C=31;
KEYCODE_Z=54;
KEYCODE_AT=77;
KEYCODE_2=9;
KEYCODE_D=32;
KEYCODE_COMMA=55;
KEYCODE_NUM=78;
KEYCODE_3=10;
KEYCODE_E=33;
KEYCODE_PERIOD=56;
KEYCODE_HEADSETHOOK=79;
KEYCODE_4=11;
KEYCODE_F=34;
KEYCODE_ALT_LEFT=57;
KEYCODE_FOCUS=80;//*Camera*focus
KEYCODE_5=12;
KEYCODE_G=35;
KEYCODE_ALT_RIGHT=58;
KEYCODE_PLUS=81;
KEYCODE_6=13;
KEYCODE_H=36;
KEYCODE_SHIFT_LEFT=59;
KEYCODE_MENU=82;
KEYCODE_7=14;
KEYCODE_I=37;
KEYCODE_SHIFT_RIGHT=60;
KEYCODE_NOTIFICATION=83;
KEYCODE_8=15;
KEYCODE_J=38;
KEYCODE_TAB=61;
KEYCODE_SEARCH=84;
KEYCODE_9=16;
KEYCODE_K=39;
KEYCODE_SPACE=62;
KEYCODE_MEDIA_PLAY_PAUSE=85;
KEYCODE_STAR=17;
KEYCODE_L=40;
KEYCODE_SYM=63;
KEYCODE_MEDIA_STOP=86;
KEYCODE_POUND=18;
KEYCODE_M=41;
KEYCODE_EXPLORER=64;
KEYCODE_MEDIA_NEXT=87;
KEYCODE_DPAD_UP=19;
KEYCODE_N=42;
KEYCODE_ENVELOPE=65;
KEYCODE_MEDIA_PREVIOUS=88;
KEYCODE_DPAD_DOWN=20;
KEYCODE_O=43;
KEYCODE_ENTER=66;
KEYCODE_MEDIA_REWIND=89;
KEYCODE_DPAD_LEFT=21;
KEYCODE_P=44;
KEYCODE_DEL=67;
KEYCODE_MEDIA_FAST_FORWARD=90;
KEYCODE_DPAD_RIGHT=22;
KEYCODE_Q=45;
KEYCODE_GRAVE=68;
KEYCODE_MUTE=91;

2.3点击

input tap 120 225  //点击坐标x=120 y=225

2.4滑动

input swipe 300 1000 300 500  //x1,y1滑动到x2,y2,即向上滑动500像素
input swipe 120 225 120 225 2000 //在当前位置,按2秒钟,相当于长按

3.常用的adb命令

详见另一篇笔记:https://blog.csdn.net/zytthappy/article/details/79688227

4.项目打包

4.1更改软件名称

更改values文件夹下strings.xml中"app_name"内容:
<string name="app_name">测试Demo</string>

4.2更改app图标

只需要更改清单文件中icon标签所对应的图标:
android:icon="@mipmap/ic_launcher"

图标适配:应用中有一个mipmap-anydpi-v26目录,如果是8.0及以上的系统就会使用该目录的图标,可以看到他不是个图片,而是XML。如果不想适配,最简单的方法就是删除该目录。

4.3创建签名

  1. 点击Bulid-Generate Signed Bundle / APK (生成一个签名或APK)
  2. 选择打包类型
  3. 创建签名
    签名只需创建一次,多个应用可以使用一个签名,也可以使用多个;一个签名文件中可以放多个签名,签名填写信息如下:


4.4打包APK

  1. 填写key和密码
  2. 选择打包类型

Android入门(二)相关推荐

  1. android入门二

    https://www.runoob.com/w3cnote/android-tutorial-seekbar.html adb devices    列出所有的设备 adb shell 挂载到lin ...

  2. Android入门(十二)SQLite事务、升级数据库

    原文链接:http://www.orlion.ga/610/ 一.事务 SQLite支持事务,看一下Android如何使用事务:比如 Book表中的数据都已经很老了,现在准备全部废弃掉替换成新数据,可 ...

  3. 最强Android入门开发指南,帮你打通Android的任督二脉

    Android 新手想要入门,很容易会遇到各类困难和学习瓶颈.没有一个好学的学习方向,学习规划,学习教程,这都是新手会面临的问题. 很多人会在百度上搜索,查阅相关资料.但是网上搜索的很多资料,都是断片 ...

  4. Android入门教程(二)

    Hello World 项目 首先当我们启动Android Studio的虚拟机时,可以看到第一个项目Hello World,那么虚拟机中的Hello World!是如何书写的呢? 看看虚拟机运行结果 ...

  5. 【详细】Android入门到放弃篇-YES OR NO-》各种UI组件,布局管理器,单元Activity

    问:达叔,你放弃了吗? 答:不,放弃是不可能的,丢了Android,你会心疼吗?如果别人把你丢掉,你是痛苦呢?还是痛苦呢?~ 引导语 有人说,爱上一个人是痛苦的,有人说,喜欢一个人是幸福的. 人与人之 ...

  6. Android入门:通过JSON数据与服务器进行通信

    我们完成"Android入门:通过XML数据与服务器进行通信"同样的功能,只是数据传输使用JSON而不是XML: 注意点: (1)当返回JSON时,content-type为tex ...

  7. arcgis for android(二)显示二维地图

    1.上一节讲了 arcgis for android 入门与提高(一)配置环境https://blog.csdn.net/HB_Programmer/article/details/119967868 ...

  8. conan入门(二):conan 服务配置-密码管理及策略

    conan 服务配置 密码管理及策略配置 第一次以管理员身份(admin)使用默认密码(password)WEB登录入JFrog Artifactory后台时,系统就提示要求我修改密码,因为现有密码太 ...

  9. Android入门之简易计算器(一)

    Android Android入门之简易计算器(一) 文章目录 Android Android入门之简易计算器(一) @[TOC](文章目录) 前言 一.项目结构 二.界面显示 三.前端界面 1.界面 ...

最新文章

  1. 年薪 50 万!淘宝重金招聘,35 岁以上优先,学历不限
  2. vue案例 - vue-awesome-swiper实现h5滑动翻页效果
  3. luogu P3817 小A的糖果
  4. NSUserDefaults
  5. 从web编辑器 UEditor 中单独提取图片上传,包含多图片单图片上传以及在线涂鸦功能...
  6. sum of two integers
  7. android MPV架构快速实现,不是所有的MPV都叫GL8,一体化智能座舱体验来袭
  8. Manjaro 常用软件安装
  9. 网络游戏防沉迷的理想与现实
  10. css3优惠卷上方锯齿_CSS不规则卡片,纯CSS制作优惠券样式,CSS实现锯齿样式
  11. 让WMP12成为万能播放器
  12. 刚开始使用push遇到的小问题
  13. 大数据促进中小企业快递航运战略三种方法
  14. 按键式计算器——人机交互的变革
  15. 拜水野三坡 求得一身财气
  16. 2020秋季《大数据与物联网》期末答案参考
  17. MacBook 通过Boot Camp安装win7双系统时提示缺少所需的CD/DVD驱动器设备驱动程序。
  18. 精彩回顾|Meetup 合肥站--云原生技术沙龙
  19. python 发包的方法_python requests 三种发包
  20. 矿用巷道巡检机器人_吕梁矿用皮带纵向撕裂监测装置 巷道巡检机器人

热门文章

  1. PID微分器与滤波器的爱恨情仇
  2. 过年别再逼婚了,《黑镜》里的AI相亲系统是对爱情最好的匹配
  3. word的表格取消边框后还有虚线怎么办
  4. 二十三种设计模式简介及类图(转载)
  5. 2022全新抖音取图表情包小程序+创作者入驻+流量主
  6. linux 误删文件恢复
  7. DDD中的值对象和实体
  8. Python GUI制作实例 wxPython使用多线程 防假死含wxFormBuilder的文件及源码
  9. bcdedit用法详解
  10. vue项目中加载使用腾讯地图