看山是山 看水是水 看山非山 看水非水|

Appletree24

园龄:2年10个月粉丝:25关注:0

📂安卓
🔖安卓
2023-03-02 18:01阅读: 2174评论: 4推荐: 0

Android&gradle配置(以小米便签为例)

写在最前

以下所涉及到的某些部分需要翻越中国长城防火墙,请确保你有此能力,本文作者不提供相关技术支持。且本文所有涉及境外网站的图片均来自网络,本人只负责讲解。

Android studio安装及配置

安装

Download Android Studio & App Tools - Android Developers (google.cn)
image.png
访问IDE官网,点击下载。
有可能运行安装程序后会出现资源管理器假死,是因为使用了smart screen(也许),不过无论如何不用担心,等一会就好了。开始安装。
image.png
image.png
这里改一下你的安装路径,默认会是C盘。如果你不分区,那当我没说,如果你分区但是也什么都装C盘,那也当我没说。
image.png
安装完毕后,如果是第一次安装,会让你选择配置文件,无所谓,无视。
image.png
这里看你自己,你想给谷歌发使用数据就发,不想就不发。不发其实也行,不影响结果,隐私早都泄露没了。但是仍然推荐选择不发送。至此安装完毕。

配置

image.png
此时IDE会时不时弹出这样的对话框,意思是访问不到安卓SDK的add-on列表,需要配代理。但是我试了试,目前网上的代理方法都没有,最后结果还是这样,所以你不需要管,直接关闭就行。再弹就再关。
image.png
来到这个关键步骤,不要选standard,这样会把SDK给你装在默认的C盘。选择下方的custom,进行自定义安装。
image.png
选一个喜欢的UI,无所谓,和Jetbrains家的IDE是一样的,可以在plugin market自己找喜欢的
image.png
这步有几个注意点:

  • 首先在下方更改你的SDK安装位置,选一个你喜欢的地方,不要和IDE安在一个文件夹里
  • 其次不要让路径含有中文或空格等特殊字符。并且路径尽可能保持较短
    在这里上面有几个可选项,可能会遇到点击但是无效的情况,可以尝试先关闭整个IDE重启电脑。并检查路径。但是默认的就可以,没关系。所以这步看自己喜好即可。
    image.png
    之后确认设定,开始进行SDK的下载及安装。完成后点击Finish即可。至此IDE配置结束。

Gradle配置

Gradle介绍

你如果写JVM系语言,大概率就知道Maven,不知道也无所谓,不影响你完成配置,但是你理解就可能慢一点。Gradle也是一个构建自动化工具,但是比Maven在国外的流行更多一点,国内流行Maven多一些。二者是兼容的。所以如果你配过maven,那gradle就很好配。

下载

接下来的内容就需要注意了,如果不详细了解有关的内容,很容易踩坑,不像IDE装起来是傻瓜式的
Gradle | Releases
首先访问上述网站,下载gradle发行版。本文以7.6.1版本为例。不建议低于此版本
image.png
点击二进制文件下载,下载gradle到本地,并且解压出来。
image.png
要的是这样的文件夹,点进去就是这些文件,不是直接解压出来的那种嵌套式的。
将解压出来的gradle文件夹放到你想要的分区,之后配环境变量。
image.png
在你的用户变量也好,系统变量也好,里面添加一条如上图所示的变量。变量值填写你本机的gradle目录。
image.png
之后在你的Path环境变量中添加这样一条记录。这样就配置完毕了。
image.png
打开你的powershell或者是cmd,输入上述指令,如果出现这样的内容,那么就是安装完毕了。
下面进行换源
找到如下目录:
image.png
在目录中创建名为init.gradle的文件,文件内容为:

allprojects {
repositories {
maven {url 'file:///F:/gradleRepository'} //此处请修改为你自己的本地仓库路径,没有就新建一个文件夹充当gradle仓库
mavenLocal()
maven { name "Alibaba" ; url "https://maven.aliyun.com/repository/public" }
maven { name "Bstek" ; url "https://nexus.bsdn.org/content/groups/public/" }
mavenCentral()
}
buildscript {
repositories {
maven { name "Alibaba" ; url 'https://maven.aliyun.com/repository/public' }
maven { name "Bstek" ; url 'https://nexus.bsdn.org/content/groups/public/' }
maven { name "M2" ; url 'https://plugins.gradle.org/m2/' }
}
}
}

简单解释一下。优先级以此排列如下:本地maven仓库->阿里镜像站->Bstek镜像站->maven官方站
这里如果你是从网上找的配置文件,会出现一个安全性问题,因为大部分Bstek镜像站给的URL都是http协议,会提示你不安全。改为https
完成上述步骤后,gradle本地环境就配置完成了。下面把gradle绑在IDE里。

IDE整合Gradle

image.png
首先随便开个项目,就开小米便签即可。目前不是为了导入工程,是为了配Gradle。
点击菜单栏中的File,找到设置。
image.png
按图中找到Gradle菜单项。这里要改两个点或者三个点。
取决于你本机的JDK版本。我猜大部分人都得改三个点。
首先讲怎么看本机的JDK版本,还是进入你的CMD或者PS
image.png
输入上述指令,如果你的机子提示虚拟机发生致命错误,那你就换java --version即可
例如上图中,我的机子目前系统变量配的JDK是11版本,但这不代表你的机子上就只有11版本。
如果你的提示版本是1.8开头,那你首先就要更换系统变量的JDK版本。否则无法下载适合的安卓插件。如何更改看下面部分,如果你不是1.9,而是11及以上,那么就跳过下面的更换版本步骤。

更换JDK版本及坑

更改JDK版本可以利用IDEA进行,不是本文主要内容,不再赘述。提一点不容易解决的坑,如果你的机子上利用Java Update更新过JDK版本,那大概率PATH变量中Oracle的路径会优先级高于你自己本机配置的%JAVA_HOME%路径,就会导致你输入Java -version后还是你更换之前的JDK版本。
image.png
也就是说你需要保证蓝框(如果有的话)中的内容要排在红框的下面即可。

无需更换JDK版本

image.png

  • 第一点,你需要更换图中圈1位置所表示的本地gradle仓库路径,也就是你之前再配置init.gradle时,文件内容中所写到的repository路径。
  • 第二点,你需要更换图中圈2位置所表示的使用gradle方式,因为我们已经自己配置了一个好的gradle。所以我们更改为自己的gradle路径。
  • 第三点,将图中圈3位置的Gradle JDK版本修改为11及以上,推荐改为11,因为其他版本没有实验过是否适配本文方法。
    这里再次解释一下为何要这样做。高等院校大概率以JDK8为教学版本,这是正确的,第一考虑到学生大部分无基础,采用目前最早的LTS版本8,第二老师的领域百分之九十九不会是什么需要深学Java的领域,采用8就避免了需要学习新版本中的新特性这一要求。
    对于我们来说,接下来需要安装的Android插件已经完全不同于小米便签早期版本开发时的要求,现在的插件最低需要JDK11中的Runtime组件才可以运行。
    完成上述步骤后,IDE中的gradle环境就配置完毕了。接下来开始小米便签的导入。

小米便签导入

小米便签开源代码下载:

访问github和访问芝士荟是一样的,自己选择一个合适的就行。这里以更为大众的芝士荟为例:
https://codeload.github.com/MiCode/Notes/zip/master
访问上述网址,将代码下载到本地。
image.png
代码结构如上,只是没有.idea文件夹,没关系,待会用IDE打开就有了。
image.png
找到如上图所示的导入工程,点开。
image.png
找到你机器上自己的小米便签位置,导入工程。因为如今我们能下载到的小米便签是很老的版本,那时候开发IDE是eclipse,eclipse的结构和IDEA还是有一定区别,但是幸好IDEA支持导入eclipse开发的工程。所以我们需要导入。
导入工程后,就要开始解决很多问题了。接下来娓娓道来。

安卓虚拟机配置

image.png
首先在右上角找到虚拟机管理,在打开的右侧菜单中创建一个新的设备。
image.png
选择一个左侧的Phone,然后在右侧选择一个你喜欢的设备,这个模拟的就是实际的手机型号,例如谷歌的Pixel。你可以选我选的Pixel4,也可以选一个自己喜欢的,这都无所谓,因为不需要实际开发。但是我推荐你选一个没有Play Store的设备。因为对Play Store的支持是需要高版本SDK的,而高版本的SDK就更加脱离小米便签早期开发的SDK版本,隐含的风险就更多。(但我选择了一个支持的,以免有些人选错也能解决问题)
当选择虚拟机后,等待下载完毕后就可以了。

项目中Gradle配置

闲聊

如果你会maven,那还是那句话,很容易理解,这样是最好的了。

项目中Gradle配置

image.png
在左侧项目结构中找到build.gradle,你也看到了,有两个build.gradle,我们需要的是后面带(:app)的gradle文件,另外一个本文用不到。

apply plugin: 'com.android.application'
android {
compileSdkVersion 33
buildToolsVersion "33.0.2"
useLibrary 'org.apache.http.legacy'
defaultConfig {
applicationId "net.micode.notes"
targetSdkVersion 33
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
implementation group: 'org.apache.httpcomponents', name: 'httpcomponents-client', version: '4.5.14'
implementation group: 'org.apache.httpcomponents', name: 'httpcore', version: '4.4.16'
// implementation group: 'org.apache.httpcomponents.client5', name: 'httpclient5', version: '5.2.1'
}

你的这个文件肯定不是上面这样的,也不用纠结每个部分都是什么含义,直接照着腾就行了。省去很多麻烦。但是我还是给自己记一下:
dependencies和maven中一样,这里引三个进来是因为芝士荟上的清华镜像站已经不行了,所以从maven repository上拉了。
useLibrary是因为小米便签代码太老了,关于网络连接的函数部分已经deprecated了,所以要加这句话防止报错。
image.png
然后是另外一个build.gradle文件,这个文件就改两个地方。就是图中两个repositories的地方。改成上图所示就行了。
至此项目中的gradle就配置完成了。
点击右上角的小锤子构建一下,如果出现successfully就说明成功了。
这里要注意classpath最后的版本号,也就是安卓gradle插件的版本,你注意,这个不是gradle的版本,是安卓gradle插件的版本。举个最简单例子,你现在要装CUDA和CUDNN,那你就去找你的显卡对应的CUDA版本,就是这个例子。
image.png

修改因函数废弃而严重无法使用的showNotification方法

如果你搞安卓开发,最后详细学一学。如果不用,那就很简单了,就跟学框架一样毫无技术含量,直接读文档,然后把废弃的改成新的即可。
这里提供修改完毕的,直接一键换了源码里的就行。怎么在源码里定位方法位置就不教了,这个是IDE基础使用。
image.png
把上文的方法换成下文

private void showNotification(int tickerId, String content) {
PendingIntent pendingIntent;
if (tickerId != R.string.ticker_success) {
pendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(mContext,
NotesPreferenceActivity.class), 0);
} else {
pendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(mContext,
NotesListActivity.class), 0);
}
Notification.Builder builder = new Notification.Builder(mContext)
.setAutoCancel(true)
.setContentTitle(mContext.getString(R.string.app_name))
.setContentText(content)
.setContentIntent(pendingIntent)
.setWhen(System.currentTimeMillis())
.setOngoing(true);
Notification notification=builder.getNotification();
mNotifiManager.notify(GTASK_SYNC_NOTIFICATION_ID, notification);
}

本文作者:Appletree24

本文链接:https://www.cnblogs.com/appletree24/p/17172883.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Appletree24  阅读(2174)  评论(4编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 愛錠 (Edit ver.) LiSA
愛錠 (Edit ver.) - LiSA
00:00 / 00:00
An audio error has occurred.

話してしまえば 思い出

隠してしまえば 幸せ

時間がすべてを奪ってく

What do you think?do you think?

愛してしまえば 地獄で

離れてしまえば 孤独だ

もう戻れない

ああ、想う 想うほど 絡まる愛錠

この手を繋ぐ鎖のように

ただ目の前の明日を信じられるのならば

それだけでいい

今そっと手を伸ばした

もたれてしまえば 2倍で

壊してしまえば それぞれ

時間このまま過ぎ去って

What do you think?do you think?

願ってしまえば 欲しくて

叶ってしまえば 足りない

知っている

もう戻れはしない

あの日には

今夜すべてを置き去りに

独りで逃げ出したって

きっと私はいつまでも

後悔に縛られたまま

ずっときょうを恨みながら

罪責と悪夢に魘されるのでしょう

解けないわ

鉄と鉄が擦れ合い

指と指の温もりも

今ここに貴方を感じられるカギ

ああ、想う 想うほど 絡まる愛錠

この手を繋ぐ鎖のように

ただ目の前の明日を信じられるのならば

それだけでいいよ 今は

ああ、巡る 巡るほど 絡まる愛錠

切れない絆 確かめながら

どんな見えない明日も貴方が傍にいるのなら

それだけでいい

強く確かな愛情