Eclipse——Java开发详解
Eclipse
- 1、配置JDK
- 2、设置编译版本
- 2.1、全局编译版本
- 2.2、项目编译版本
- 2.3、Web项目编译版本
- 3、设置工作目录
- 4、创建Java项目
- 5、配置Tomcat
- 6、创建Web项目
- 7、配置Maven
- 8、创建Maven项目
- 8.1、普通Maven项目
- 8.2、Maven Web项目
- 9、创建SpringBoot项目
- 10、设置字体
- 11、设置代码提示
- 12、导入Java项目
- 13、导入Maven项目
- 14、安装lombok插件
- 15、配置Git
- 15.1、安装Git插件
- 15.2、配置Git
- 15.3、把工程初始化为本地库
- 15.4、设置本地库范围签名
- 15.5、Eclipse中Git图标介绍
- 15.6、忽略Eclipse中的特定文件
- 15.7、本地库操作
- 15.8、将本地工程推送到远程库(GitHub)
- 15.9、将远程库的工程克隆到本地
- 15.10、解决冲突
- 15.11、分支操作
- 创建分支
- 切换分支并审查代码
- 合并分支
- 删除分支
- 15.12、版本切换与撤销修改
1、配置JDK
打开preferences,弹出的页面里选择java,然后选择Installed JREs,打开如下图界面:

然后点击右侧add按钮,打开add jre对话框:

点击下一步,打开jre路径选择对话框:

选择JRE home之后,自动会填充JRE name和下面的jar,这里也可以设置vm参数,一般直接点击finish完成即可。到此新的JRE已经配置完成,如果配置了多个JDK,可以勾选一个作为默认,如下图:

2、设置编译版本
2.1、全局编译版本
打开preferences,弹出的页面里选择java,然后选择Compiler,打开如下图界面:

右侧可以选择编译的版本号,默认情况下,编译版本和你配置的JDK版本一致。这里设置的编译版本影响eclipse中所有的项目(项目没有单独配置,使用eclipse默认的情况下)。
2.2、项目编译版本
项目选中,右键–>Properties–>Java Compiler,打开如下界面:

勾选上Enable project specific settings,之后便可以针对该项目进行配置。
2.3、Web项目编译版本
项目选中,右键–>Properties–>Project Facets,打开如下界面:

右侧设置java类编译版本,注意这里设置的版本要和build path里引用的JDK版本一致,不一致的话eclipse会报以下错误:Java compiler level does not match the version of the installed Java project facet.
3、设置工作目录
打开Preferences,在弹出的窗口里,选择General->Startup and Shutdown->Workspaces。

在右侧的Workspace区域,选择您想要设置的目录作为workspace路径,保存设置。
4、创建Java项目
选中File->New->Java Project:

在弹出的对话框中输入项目的名称,例如MyDemo,确保选择了合适的Java运行环境(JRE),通常可以选择Use default JRE,点击“Finish”按钮,Eclipse将创建一个新的Java项目。

5、配置Tomcat
打开Preferences,选中Server,点击Runtime Environments:

点击add后,出现下图:

点击Next:

6、创建Web项目
打开Eclipse,点击右上角的 Open Perspective小图标:

确认选择了 Java EE,如果不是,点击 Java EE后,再点击 Open即可:

创建项目
File->New->Other:在Web中选择Dynamic Web Project:

点击Next后出现如下图:

点击Next:设置项目代码存储目录,项目代码一般存储到工程src目录下,也可自行编辑

继续Next:配置Web模块主要配置项目的根目录和JSP存储目录。勾选下方的检查框,允许创建web.xml配置文件。

项目创建成功后,项目资源文件显示在Project Explorer窗口内,展开WebDemo项目,可以看到如下图所示的项目文件组织结构。

在WebContent目录下创建一个JSP,测试用:


点击Next,选择jsp模板:

启动项目,选中项目,右键->Run As->Run on Server:


点击Finish,出现下图说名Tomcat启动成功

修改一下JSP文件,已验证能够访问到:

7、配置Maven
打开Preference->Maven->Installation:

点击Add,选择Maven目录:

设置settings.xml文件和仓库:

8、创建Maven项目
详细:https://blog.csdn.net/weixin_43977511/article/details/141139118
8.1、普通Maven项目
File->New->Maven Project:

选择普通的Maven项目:

填写信息:

创建成功后发现JRE为1.5,在Build Path中修改为1.8:


添加依赖:

测试:

8.2、Maven Web项目
选择Internal和webapp结尾的,然后next:

填写好项目名称,Finnish:

项目结构如下:

这样的maven项目目录结构是不对的,我们还需要对它的目录结构进行一些修改。接触过maven项目的人应该知道maven的Java Resources下有四个sources folder,我这里只有一个明显是不对的,有些人那里可能不止一个,没关系不影响下面的步骤。通常情况下有四个下面这样的sources folder 。

无论你目前有几个其中的sources folder,按照下面的步骤来。 点击项目右键New->Build Path->Configure Build Path,点击source你可以看到有两个红×,上面提示missing

点击Libraries,选中Jre System Library(估计有点不同,这步实际上是想让大家更换jre或jdk版本),点击edit


点击apply,可以看到此时出现了三个sources folder,但是与我们预想的还是差一个src/test/resources(如果你有四个,下面的这一步你就不用再进行了,每个人的eclipse配置不同可能会有差异),那我们再手动建立第四个

右键new->source folder :


至此我们的sources folder目录结构就完整了 。

最后设置四个文件夹的Output Folder,双击修改
分别修改输出路径为
src/main/resources 对应 target/classes
src/main/java 对应 target/classes
src/test/resources 对应 target/test-classes
src/test/java 对应 target/test-classes

将项目转换成Dynamic Web Project
点击项目,右键properties->Project facets->单击右侧的Convert faceted from ,进入如下图界面选中Dynamic Web module,java,点击Further configuration available…(此处有人看不到Further configuration available…这个链接,别紧张,你那上面估计已经默认吧Dynamic Web Module勾上了,那你就把那个勾去掉,点击apply,然后重新再点击Project facets这时应该就可以看到了,很简单吧),此处注意版本选择

设置为WEB3.1:替换web.xml文件
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"><!-- 这个节点要与不要都行,或者修改一下标签里面的文本内容 --><display-name>Archetype Created Web Application</display-name>
</web-app>
修改.settings文件夹下的 org.eclipse.wst.common.project.facet.core.xml 文件

此时jsp文件报错,我们需要配置Server Runtime Library:



运行项目即可:

9、创建SpringBoot项目
创建Maven项目:



修改jdk版本:

完善项目目录,添加src/main/resources和src/test/resources:

设置编译输出目录:

添加依赖:
<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.4.1</version></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency></dependencies>
添加编译插件:
<build><plugins><!-- spring-boot-maven-plugin插件就是打包spring boot应用的 --><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
创建Controller:
@RestController
@RequestMapping("/test")
public class TestController {@GetMapping("/hello")public String test() {return "hello world";}
修改启动类:
@SpringBootApplication
public class App
{public static void main( String[] args ){SpringApplication.run(App.class, args);}
}
创建配置文件:application.properties
server.port=8888
启动后访问:

10、设置字体
打开preferences->General->Appearance->Colors and Fonts,然后搜索Text Font:

点击Edit进行编辑:

11、设置代码提示
打开preferences->java->editor->content assist:

填写:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ. –> Apply and Close 应用,这样不管输入哪个字母,都可以实现提示的效果。
12、导入Java项目
点击File,选中 import…:

选择 General->Existing Projects into workspace,点击next:

选中项目,同时复制一份到工作空间中,点击Finish即可。
13、导入Maven项目


点击Finish即可。
14、安装lombok插件
下载:https://projectlombok.org/download

双击运行下载的jar包,点击如下按钮:

重启eclipse即可。
15、配置Git
15.1、安装Git插件
打开Eclipse,Help—>Eclipse Marketplace…,输入EGit,找到EGit,点击Install即可。

Eclipse中对于git的操作都在项目的右键菜单中的Team、Replace With、Compare With中。


15.2、配置Git
打开Eclipse,点击菜单栏的“Window” -> “Preferences”。在弹出的对话框中,展开“Team” -> “Git” -> “Configuration”。

点击右侧的“New”按钮,创建一个新的配置文件。
在“Name”字段中输入任意名称,例如“My Git Config”。
在“Value”字段中输入您的Git用户名和邮箱地址,格式为“user.name=Your Name”和“user.email=your@email.com”。
点击“OK”保存配置。

15.3、把工程初始化为本地库
选择工程→右键→Team→Share Project,打开如下页面:

勾选了复选框后进入页面转换成这样:

执行完上图的操作后,就完成了这个工程的本地库初始化。在这个工程的目录中就多了个隐藏的.git文件夹。
15.4、设置本地库范围签名
在Eclipse中,点击顶部菜单栏的Window–>preferences–>Team–>Git,进入如下页面:

点击add Entry按钮,然后在如下页面添加用户信息:

添加完成后,点击Apply按钮即完成了本地库签名的配置。

15.5、Eclipse中Git图标介绍
在Eclipse中,点击顶部菜单栏的Window–>preferences–>Team–>Git–>Label Decorations,就可以看到Git图标介绍:

15.6、忽略Eclipse中的特定文件
Eclipse项目中的特定文件是为了管理我们创建的工程的文件,包括了.classpath文件,.project文件,以及.setting目录下的文件。这些文件可以在Navigator视图下查看:

# Compiled class file
*.class# Log file
*.log# BlueJ files
*.ctxt# Mobile Tools for Java (J2ME)
.mtj.tmp/# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
15.7、本地库操作
选择Windows–>Show View–>Other,搜索Git Staging。这里还可以选择打开Git Reflog等可视化界面。

点击Open即可打开如下视图,可以很方面的查看工作区和暂存区的文件情况,也可以快速执行提交和推送操作。

将工程添加到暂存区,右击工程名–>Team->add to index,此时工程的图标就变成这样:


提交处在暂存区的工程到本地库,右击工程名–>Team->commit(快捷键ctrl+#),跳出这个页面(Eclipse版本不同,提交页面不一样):


填写Commit Message后点击Commit按钮,即完成提交到本地库的操作。
其实我们也可以直接执行commit操作,不需要先添加工程到暂存区(index)。
15.8、将本地工程推送到远程库(GitHub)
首先在GitHub中创建有一个仓库,并复制仓库地址。

在Eclipse中,右击工程名–>Team–>Remote–>Push,打开如下页面并填写项目地址和GitHub的账号和密码。

点击Next按钮,进入下面的页面:

然后点Next,在这里确定推送的结果和具体信息。

最后点击Finish即完成了推送操作。
15.9、将远程库的工程克隆到本地
顶部导航栏File–>import–>Git–>Projects from git,点击Next进入下一步:

选择Git仓库类型:本地库或远程库。这里选择Clone URI。点击Next进入下一步。

填写远程仓库的URI,然后点击Next,选择分支。

选择完分支后,然后就选择本地保存的位置(建议保存在Eclipse的工作目录下),点击Next进入下一步。

选择如何导入这个工程,选择Import as general project。

-
这里的Import existing Eclipse Projects,Eclipse会扫描项目是否有.project文件。当要导入的项目具有Eclipse工程的特定文件(一个完整的Eclipse项目)时可以选择。
-
而import using the New Project wizard,选择该选项代表项目还没被eclipse初始化,选择后点击finish会打开new Project向导,这个向导就和eclipse新创建项目步骤一样。
-
最后我们选择的Import as general project就是将该项目作为一个普通的项目导入。
最后确认项目名称,然后点击Finish后就完成了导入。项目结构如下:

因为导入的项目不具有运行环境,当我们需要二次开发时,就需要将该项目转换为Maven项目。
右击选中项目名–>Configure–>Convert to Maven Project

这样项目就变为由Maven管理的项目了

15.10、解决冲突
当我们合并分支时,被合并的分支不是在接受合并的分支最新版本上修改(接受合并的分支有了新的提交),就会产生冲突需要我们手动解决,然后再合并。
另外当我们团队协作时,不是在远程库中最新版本上修改时(团队有人更新了远程库),那么提交时就会出现冲突的情况。此时无法推送,需要我们先pull下来,然后查看并修改冲突的文件。

当我们冲突的地方比较多时,就可以借助Merge Tool来对比查看。
右击选中冲突的文件->Team->Merge Tool,打开这样的页面:

在这个页面可以很方便地对比着看冲突的内容,工具栏也提供了许多功能,我们就在左边修改文件来解决冲突。最后保存后上面的特殊符号会被自动删除。
然后我们添加到暂存区(add to index)

再提交到本地库,最后提交到远程库。
15.11、分支操作
创建分支
右击TestGit项目名–》Team–》Switch to–》New Branch,然后填写分支名hot_fix。

此时就转换为hot_fix分支了。

提交到本地库,再推送该分支到远程库。

切换分支并审查代码
这时团队的另一个成员操作的testGit2项目,就需要pull远程库下来,然后选择:

在这个页面选择分支:

然后选择Check out as New Local Branch

这样就完成了获取远程库中的分支并切换。我们确定这个分支的内容没有错误后就可以进行合并操作了。
合并分支

选择要合并的分支。

点击Merge按钮即完成合并。
删除分支
如果是删除本地分支,选择Team–》Advanced --》delete branch,选中要删除的分支,然后点击OK。

如果要本地操作删除远程分支,就选择Team–>Remote–>Push,在弹出的界面中点击Next,

面下拉选择要删除的分支,点击Add Spec按钮,点击finish完成。
15.12、版本切换与撤销修改
版本切换,选中项目名右键,Replace With–>Commit,然后选择一个commit记录

撤销修改,撤销文件的修改,选中文件右键,Replace With–>Head Revision。撤销项目的修改,就选中项目名右键执行相同的操作。

相关文章:
Eclipse——Java开发详解
Eclipse 1、配置JDK2、设置编译版本2.1、全局编译版本2.2、项目编译版本2.3、Web项目编译版本 3、设置工作目录4、创建Java项目5、配置Tomcat6、创建Web项目7、配置Maven8、创建Maven项目8.1、普通Maven项目8.2、Maven Web项目 9、创建SpringBoot项目10、设置字体11、设置代码提…...
练手小项目推荐
以下是一些练手项目推荐,我可以给你一些适合学生毕业设计的小项目建议,既可以锻炼技能,也能完成学术要求。以下是一些可行的毕业设计项目建议: 校园导航APP 功能:为校园内的新生和访客提供导航,标记教室、…...
一图秒懂色彩空间和色彩模型
色彩空间和色彩模型 想必学过图像处理或者摄影的小伙伴都知道这两个词,看了一些博客,发现很少有人把这两个概念说清楚的,大多数都是混在一起,色彩模型和色彩空间的概念混为一谈,很让人疑惑。 这里我们用一张图来解…...
控制Stable Diffusion生成质量的多种方法
在Stable Diffusion绘图中,控制AI生成图像的质量可以通过多种方法来实现。以下是几种常见的方法: 1. 从底模控制(Checkpoint) 使用不同的模型检查点(Checkpoints)可以显著影响生成图像的质量和细节。选择一…...
递归算法笔记
根据b站视频整理的 **视频地址:**https://www.bilibili.com/video/BV1S24y1p7iH/?spm_id_from333.788.videopod.sections&vd_source6335ddc7b30e1f4510569db5f2506f20 最常见的一个递归例子: 斐波那契数列:1,2,3…...
Android——发送彩信
跳转到相册选择图片 btn_jump.setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View view) {// 跳转到系统相册选择图片并返回Intent intent new Intent(Intent.ACTION_GET_CONTENT);// 设置图片类型为图片类型intent.setType("image/*&quo…...
对比迁移项目的改动
文章目录 对比迁移项目的改动场景背景解决方案 对比迁移项目的改动 场景背景 同源定制化项目,同一套代码扩展出来的项目(从领导口中得知) A项目的有三维地图展示,项目B跑起来却加载不出来,但是本地运行A项目代码&…...
数据结构-复杂度
复杂度 1.数据结构1.1算法 2.算法效率2.1复杂度的概念 3.时间复杂度3.1大O渐进表示法3.2时间复杂度计算示例3.2.1 示例13.2.2 示例23.2.3 示例33.2.4 示例43.2.5 示例5:3.2.6 示例63.2.7 示例7 4.空间复杂度4.1.1 示例14.1.2 示例2 5.常见复杂度对比6.复杂度算法题6…...
无人机之放电速率篇
无人机的放电速率是指电池在一定时间内放出其储存电能的能力,这一参数对无人机的飞行时间、性能以及安全性都有重要影响。 一、放电速率的表示方法 放电速率通常用C数来表示。C数越大,表示放电速率越快。例如,一个2C的电池可以在1/2小时内放…...
免费开源AI助手,颠覆你的数字生活体验
Apt Full作为一款开源且完全免费的软件,除了强大的自然语言处理能力,Apt Full还能够对图像和视频进行一系列复杂的AI增强处理,只需简单几步即可实现专业级的效果。 在图像处理方面,Apt Full提供了一套全面的AI工具,包…...
VMware虚拟机三种网络模式详解
主要内容 1. 桥接模式2. NAT模式VMware Network Adapter VMnet8虚拟网卡的作用 3. 仅主机模式VMware Network Adapter VMnet1虚拟网卡的作用设置虚拟机联通外网 4. 总结 参考资料: 1.Vmware虚拟机三种网络模式详解 VMware虚拟机三种网络模式详解之Bridged࿰…...
【算法篇】动态规划类(4)——子序列(笔记)
目录 一、Leetcode 题目 1. 最长递增子序列 2. 最长连续递增序列 3. 最长重复子数组 4. 最长公共子序列 5. 不相交的线 6. 最大子序和 7. 判断子序列 8. 不同的子序列 9. 两个字符串的删除操作 10. 编辑距离 11. 回文子串 12. 最长回文子序列 二、动态规划总结 …...
【图解版】力扣第162题:寻找峰值
注意 题目只要求找到一个峰值就可以了。nums[-1]和nums[n]这两个位置是负无穷,也就是说,除了数组的位置之外,其它地方都是负无穷。对于所有有效的 i 都有 nums[i] ! nums[i 1] 方法一 遍历整个数组,找到最高的那个点。时间复杂…...
Windows电脑桌面如何弄个好用的提醒备忘录?
在这个充满挑战的时代,每个人都渴望成为更好的自己。然而,随着生活节奏的加快,我们时常发现自己陷入了各种琐事之中,难以脱身。为了不让重要的事情被遗漏,一款好的提醒备忘录工具就显得尤为关键。那么,Wind…...
Windows API 一 ----起步
目录 1.介绍主函数入口参数。 2. 简单介绍 Windows.h 这个头文件 小结,也聊一聊 1.介绍主函数入口参数。 第一个参数: HINSTANCE 类型的 参数, 称为“实例句柄“,这个参数唯一标志了我们写的这个程序。 第二个参数: HINSTANCE…...
音视频入门基础:H.264专题(19)——FFmpeg源码中,获取avcC封装的H.264码流中每个NALU的长度的实现
一、引言 从《音视频入门基础:H.264专题(18)——AVCDecoderConfigurationRecord简介》中可以知道,avcC跟AnnexB不一样,avcC包装的H.264码流中,每个NALU前面没有起始码。avcC通过在每个NALU前加上NALUnitL…...
【uniapp】设置公共样式,实现公共背景等
目录 1、 全局渐变背景色 2.1 创建common目录 2.2 在common下新建style和images等目录 2.3 在style下新建common-style.scss 2.4 common-style输入全局渐变颜色 2.5 引入样式 2.6 业务页面引入 2.7 展示 2、全局字体颜色 2.1 新建base-style.scss文件 2.2 设置base-…...
Node.js学习笔记
回顾: javascript 可以在浏览器运行 (js代码会JavaScript的解析引擎执行)chrome 》V8 (性能最好)FireFox 》 奥丁猴safri 》JSCoreIE浏览器 》查克拉JavaScript可以在浏览器端操作DOM 和BOM每一个浏览器都内置了B…...
resnetv1骨干
# 普通的卷积残差块 def apply_basic_block( x, filters, kernel_size3, stride1, conv_shortcutTrue, nameNone ): # 预设块名称前缀 if name is None: name f"v1_basic_block_{keras.backend.get_uid(v1_basic_block_)}" # 设置残差连接前…...
设计模式,面试级别的详解(持续更新中)
设计模式,面试级别的详解(持续更新中) 软件的设计原则 常⽤的⾯向对象设计原则包括7个,这些原则并不是孤⽴存在的,它们相互依赖,相互补充。 开闭原则(Open Closed Principle,OCP)单⼀职责原则…...
Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...
XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...
日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下: 一、场景操作步骤 操作步…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...
Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理
引言 Bitmap(位图)是Android应用内存占用的“头号杀手”。一张1080P(1920x1080)的图片以ARGB_8888格式加载时,内存占用高达8MB(192010804字节)。据统计,超过60%的应用OOM崩溃与Bitm…...
