2024年Android需要Java基础吗

Android需要Java基础吗1 关于学习本书之前是否需要 Java 基础 问题 看安卓开发教程书需要很扎实的 java 基础吗 回答 本书的零基础指的是安卓零基础 不是 Java 零基础 所以看本书之前需要一定的 Java 基础 基本的变量声明 控制语句 类和对象这三块是必需的 另外最好还掌握字符串模板 容器 接口这三块 如果能了解静态 异常 反射这三种概念对看懂代码很有帮助 学会以上九项 Java 基础技术再看本书就会比较轻松了

大家好,我是讯享网,很高兴认识大家。



1、关于学习本书之前是否需要Java基础

问题:看安卓开发教程书需要很扎实的java基础吗? 回答:本书的零基础指的是安卓零基础,不是Java零基础,所以看本书之前需要一定的Java基础,基本的变量声明、控制语句、类和对象这三块是必需的;另外最好还掌握字符串模板、容器、接口这三块;如果能了解静态、异常、反射这三种概念对看懂代码很有帮助。 学会以上九项Java基础技术再看本书就会比较轻松了。其它的Java高级技术在本书里面用到的时候会另外介绍,比如: 文件IO,参见本书第4章的“4.3.2 文本文件读写”和“4.3.3 图片文件读写”; 任务,参见本书第6章的“6.2.1 任务Runnable”; 加密算法,参见本书第8章的“8.2.3 数据加密”; 线程,参见本书第10章的“10.1.1 消息传递Message”; HTTP调用,参见本书第10章的“10.2.3 HTTP接口调用”; 文件上传,参见本书第10章的“10.3.3 文件上传”; Socket,参见本书第10章的“10.4.2 Socket通信”; 线程池,参见本书第16章的“16.3 线程池管理”;

2、学习本书之前是否需要了解Java的高级特性与XML用法

问题:如果自己要进行布局,从布局文件text入手轻松还是直接画框框轻松?或者说对于一个新手该怎么正确地利用这本书,虽然我有java的基础但是我还是不太懂。像泛型、进程之类的我都不太懂。然后我需不需要把xml学一遍? 回答:自己布局通过xml布局文件会快些,因为AS支持预览xml布局的界面效果。 不需要太多关注java的高级特性,泛型只在“10.1.3 异步任务AsyncTask”有用到,多进程则很少用、本书也没介绍。 XML需要简单学一下,也不用学很深,简单就够用了。

3、关于本书附录源码的注释文字

问题:我在百度网盘下载了源码,代码里的注释很少,我零基础都看不懂怎么办? 回答:本书源码已经在补充全面注释了,补充注释了的部分章节已经上传到github,有需要的朋友可在github下载最新的全面注释源码。github的访问地址为:https://github.com/aqi00/android2 打开github页面后,单击网页右边的绿色按钮“Clone or download”,即可自动打包下载源码。

4、关于第2章的跑马灯文字滚动逻辑

问题:为什么跑马灯不是点一次停,再点一次动;而是点一次停,需要点两次才动? 回答:跑马灯滚动的时候,点击一下,此时onClick进入下面分支:

代码语言:javascript
复制

该分支取消文本视图的焦点,所以停止滚动了(只有在获得焦点的时候才能滚动)。 然后再点击一下,此时onClick进入下面分支:

代码语言:javascript
复制
讯享网

注意该分支仅仅是允许文本视图获得焦点,此时文本视图相当于准备就绪,但尚未获得焦点。 然后点击第二下,因为上一步的点击使得文本视图允许获得焦点,于是第二下点击之后文本视图马上获得焦点,此时跑马灯开始滚动。 因此demo里面的跑马灯效果,实际运行结果就是点一下暂停,再点两下才继续滚动。如果想要只点一下就恢复滚动的话,可以在允许获得焦点之后调用requestFocus方法,示例代码如下:

代码语言:javascript
复制
 
 

5、关于第2章的九宫格图片(点九图片)的查看与编辑

问题:为啥我这个SDK里面的tools目录下没有draw9patch.bat,这是怎么回事? 回答:最新的android studio已经集成了draw9patch.bat的功能,所以sdk就去掉了该文件。 在android studio中选中drawable目录下的图片,然后右击在右键菜单中选择下面的“Create 9-Patch files”,在弹出的对话框中点击“OK”按钮。接着drawable目录就会出现一个名为“*.9.png”的图片文件,双击该文件,就可以在右侧窗口中编辑点九图片了。

6、关于第4章和第5章的购物车商品图片在部分手机上无法显示的问题

问题:为什么第四章的购物车显示不了商品图片? 回答:这是Android7.0默认不分配sd卡存储权限导致的。即使你在设置中开启存储权限,重启app也看不到购物车商品图片,这是因为代码有判断SharedPreferences保存的first数值,如果不是首次运行则不进行图片加载操作。 该问题的解决办法是修改storage模块中ShoppingCartActivity.java的downloadGoods方法,把下面这行代码:

代码语言:javascript
复制
讯享网

改为下面这段代码:

代码语言:javascript
复制
 
 

然后在手机上卸载并重装storage。

7、关于本书源码对Android7.0的兼容情况说明

问题:用Android7.0导入demo会不会有新的问题呀? 回答:Android7.0目前发现主要有三个地方影响到本书源码,介绍如下: 1)部分手机上无法正常显示购物车图片,这是Android7.0默认不分配sd卡存储权限导致的。解决办法参见上一点的说明“关于第4章和第5章的购物车商品图片在部分手机上无法显示的问题”。 2)Android7.0能拍照但不能保存,这是因为Android7.0默认禁止访问sd卡导致的。代码的修改办法同上一小点。 3)部分手机使用DownloadManager下载图片会闪退。这是因为Android7.0之后增强了文件访问权限,DownloadManager.COLUMN_LOCAL_FILENAME被废弃,如果在7.0及以上手机访问该字段会触发异常java.lang.SecurityException。解决办法:是改成使用Uri方式访问文件,即把COLUMN_LOCAL_FILENAME改为COLUMN_LOCAL_URI,具体到代码里则是将下面这行代码

代码语言:javascript
复制
 
 

改为下面这行代码:

代码语言:javascript
复制
 
 

注意network模块的DownloadImageActivity.java和ChatMainActivity.java里的相关代码都要修改。 4)Android7.0以上手机无法正常进行AES加解密,原因是Android7.0开始去掉了Crypto provider,需要开发者自己定义一个如下的CryptoProvider类:

代码语言:javascript
复制
Android需要Java基础吗
 
 

然后AES加解密获取随机种子的代码修改为下面这样:

代码语言:javascript
复制
 
 

5)Android7.0以上的TextureView无法在布局文件中使用background属性,否则会报错“TextureView doesn't support displaying a background drawable”。 原因是7.0之后TextureView的setBackgroundDrawable方法已经废弃,,所以7.0之后不能直接设置TextureView的背景了。

8、关于第8章导出APK安装包的V1和V2选项

问题:把app工程导出为apk文件,最后一个窗口出现了V1和V2两个选项,我看书上没有这两个选项,它们有什么区别?如果只勾选V1的话,能上架到商店吗?

回答:打包时出现选项V1和V2,这是Android Studio2.3之后新增的功能,本书基于Android Studio2.2,当时还没有V1和V2。

其中V1是必须勾选的,否则打出来的apk文件无法正常安装。V2建议也勾选,该选项可避免Janus漏洞。 如果想成功上架,就要同时勾选V1和V2。因为现在很多应用商店为了规避Janus漏洞,都要求开发者必须勾选V2选项。

9、关于第10章的socket服务端代码的启动方式

问题:Socket服务器端我将TestServer运行到Tomcat上面,这个没运行成功还需要什么配置吗? 回答:TestServer.java不是以web方式启动的,要按下面步骤启动:右击TestServer.java,依次选择右键菜单“Run As”——“Java Application”。 另外注意仿聊天的Socket服务程序ChatServer.java,也要按照上述步骤启动。

10、关于第10章仿聊天的服务端代码的处理逻辑

问题:network_server的压缩包里面有好几个网络通信服务端的源码,可以简单的把这几个文件的配合情况,说一遍吗?虽然有这些文件,但是不知道怎样配合,形成手机端、服务器,并且相互通讯。 回答:服务端的Socket工程有四个代码:ChatServer.java、DateUtil.java、ServerThread.java、SocketBean.java DateUtil.java是个日期工具类,SocketBean.java是个消息实体类,这两个很简单。 主要是ChatServer.java和ServerThread.java,其中ChatServer.java是主程序入口,入口是main函数,ServerThread.java是服务端的线程管理。 ChatServer启动后,会持续侦听端口52000,一旦有客户端连接进来,则启动一个ServerThread线程为该客户端服务,另外给它分配一个socket并加入队列。如果有两部手机连接进来,就启动两个服务端线程,socket队列大小为2。 ServerThread.java启动后运行run函数,从客户端接收消息,收到回车符就认为本次消息接收完毕,然后开始解析该消息的内容,包括包头和包体。从包头中判断消息类型与设备编号,从包体中读取具体的数据,处理完成后返回。如果客户端的动作是SENDMSG,则还要根据otherId到socket队列中寻找指定设备编号对应的socket,然后把消息内容推给该socket指向的客户端。

11、关于第15章百度地图如何进入LBS服务页面

问题:百度开发者平台上按照书上步骤,为啥没有LSB服务啊?

小讯
上一篇 2024-12-24 12:33
下一篇 2024-12-29 08:00

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/1283.html