-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsearch.xml
More file actions
41 lines (41 loc) · 10.1 KB
/
search.xml
File metadata and controls
41 lines (41 loc) · 10.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?xml version="1.0" encoding="utf-8"?>
<search>
<entry>
<title><![CDATA[Maven]]></title>
<url>%2F2018%2F08%2F09%2FMaven%2F</url>
<content type="text"><![CDATA[Maven-Pom.xml 软件项目管理工具,基于POM的概念,有标准的目录结构和默认构建生命周期。 Maven启用代理访问 在 {M2_HOME}/conf/settings.xml里 标签下填写代理信息 Maven本地资源库 通常本地资源库默认是.m2目录,如果要改本地库的地址的话,可以在{M2_HOME}\conf\setting.xml的标签下改repository路径 Maven中央存储库 一般建立一个Maven项目,Maven会检查pom.xml文件,确定哪些依赖会下载,会先找本地的repository库,没有找到的话,会去默认的Maven中央存储库http://repo1.maven.org/maven2/ 下载,已经重定向为 http://search.maven.org/ 如果声明的库本地和Maven中心存储库都不存在的话,就会停止过程并且将错误信息输出到Maven控制台 Maven添加远程仓库 默认情况下,Maven从Maven中央仓库下载所有依赖关系。但是,有些库丢失在中央存储库,只有在Java.net或JBoss的储存库远程仓库中能找到。 Java.net资源库 <project ...><repositories><repository><id>java.net</id><url>https://maven.java.net/content/repositories/public/</url></repository> </repositories></project> JBoss Maven存储库 <id>JBoss repository</id><url>http://repository.jboss.org/nexus/content/groups/public/</url> Maven依赖机制 你需要知道 log4j 的 Maven 坐标,例如:它会自动下载 log4j 的1.2.14 版本库。如果“version”标签被忽略,它会自动升级库时当有新的版本时。 声明 Maven 的坐标转换成 pom.xml 文件。 当 Maven 编译或构建,log4j 的 jar 会自动下载,并把它放到 Maven 本地存储库 所有由 Maven 管理 定制库到Maven本地资源库//虽然我觉得可以直接复制到repository里,只需要建好文件夹的包括groupid之类的都要分文件夹.. 要使用的 jar 不存在于 Maven 的中心储存库中,创建了一个自定义的 jar ,而另一个 Maven 项目需要使用。 比如”kaptcha”第三方库不在中央仓库里,下面步骤安装”kaptcha.jar”到Maven的本地资源库 下载这个jar包,复制到某文件夹下之后,执行mvn install:install-file -Dfile={FILE_HOME}:\kaptcha-{version}.jar -DgroupId=com.google.code -DartifactId=kaptcha -Dversion={version} -Dpackaging=jar 使用Maven创建Java项目 IDEA可以直接创建Maven项目,创建的时候还可以i选择是否是web项目之类的 插件里可以告诉Maven使用哪个JDK版本编译项目 Maven里设置 <project ...>4.0.0<groupId>com.yiibai</groupId>NumberGeneratorpackaging>jar</packaging>1.0-SNAPSHOT` mvn package可以运行单元测试并打包成一个jar文件,生成在project/target文件夹 使用Maven构建项目 pom.xml文件所在的项目文件夹下,执行mvn package,将执行“package”阶段的时候,所有阶段 – “validate“, “compile” 和 “test“, 包括目前的阶段“package”将被执行 当你运行“mvn package”命令,它会编译源代码,运行单元测试和包装这取决于在pom.xml文件的“packaging”标签。 例如, If “packaging” = jar, 将您的项目打包成一个“jar”文件,并把它变成你的目标文件夹。 如果 “packaging” = war,将您的项目打包成“war”文件,并把它变成目标文件夹。 标签 GroupID是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构(com.公司名.项目名)。ArtifactID就是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称(功能模块名)。一般GroupID就是填com.leafive.test这样子。 会遇上1.5.2 RELEASE版本报错,如果Maven的setting里没有设置阿里的仓库地址下载二十多兆的jar包速度非常慢,最后可能就会连接超时,需要在setting.xml文件中设置一下阿里仓库的地址,这个是国外仓库的镜像,把以下代码加到setting.xml文件中的中间<mirror><id>nexus-aliyun</id><mirrorOf>*</mirrorOf><name>Nexus aliyun</name><url>http://maven.aliyun.com/nexus/content/groups/public</url></mirror> 规范版本号和一些属性 Maven的聚合(多模块) 和Parent继承 聚合(多模块) 具有模块的项目呗成为多模块或者聚合项目,模块是此POM列出并作为一组执行的项目。通过一个pom打包的项目可以将它们列为模块来聚合成一组项目进行构建,这些模块名是这些项目的相对目录。 Parent继承 继承可以子POM可以获得parent中的各项配置,可以对子POM进行统一的配置和管理,但是父POM的(artifactId、name、prerequisites)不能被继承 父POM是为了方便子POM直接引用,简化子POM的配置。聚合(多模块)则是为了方便一组项目进行统一的操作。]]></content>
<categories>
<category>Java Web</category>
</categories>
<tags>
<tag>maven</tag>
</tags>
</entry>
<entry>
<title><![CDATA[Hello World]]></title>
<url>%2F2018%2F06%2F21%2FHello-World-0%2F</url>
<content type="text"></content>
</entry>
<entry>
<title><![CDATA[反编译/修改/重新打包/签名]]></title>
<url>%2F2018%2F05%2F03%2F%E5%8F%8D%E7%BC%96%E8%AF%91APK%2F</url>
<content type="text"><![CDATA[反编译/修改/重新打包/签名 工具:apktool/dex2jar/JD-GUI apktool 官网下载apktool:https://ibotpeaches.github.io/Apktool/install/ 安装apktool的时候,按官网的操作不能直接存成apktool,会自动带.sh后缀,但是这个格式复制到/usr/local/bin之后 apktool command not find,最后尝试了一下直接在bin里改名字之后apktool就有提示了 在有apk的文件夹下,apktool d xx.apk 就生成反编译之后的文件 apktool b xxx,会生成build和dist文件夹,回编译出来的apk在dist目录下,但是build/apk文件夹里会少了original文件夹下的META-INF文件夹 dex2jar 有毒。。教程是要把classes.dex文件放到d2j的文件夹下,但是一直找不到命令 最后把原来的apk放进去才有反应。。。 chmod +x d2j-dex2jar.sh/d2j_invoke.sh添加权限 执行 d2j_dex2jar.sh xx.apk 生成的xx-dex2jar文件就在dex2jar的文件夹里 JD-GUI jar文件JDGUI直接拖进去看就行了 修改 AndroidManefist.xml文件里有MainActivity的入口,在JDGUL里查看之后但是还没看懂。。其他改smail代码但是也不会。。只能改字段了。。。 如果只是修改一个界面的话,apk首页的文字应该在values里会有一个string类,所以直接在apktool反编译之后的文件夹下的,/res/values/里的文件找,下面文件夹比较多,根目录下arrays.xml里面就有首页的文字段.. 重新打包 直接在之前apktool反编译的目录下,apktool b xxx回编译,会生成build和dist文件夹,dist文件夹里就是生成的apk文件 也可以 apktool.bat b -o <output.apk> <input_dir> 指定输出目录和apk文件名 签名 dist下的apk文件不能直接安装,会显示没有签名… 先需要keystore文件 keytool -genkey -alias xx.keystore -keyalg RSA -validity 40000 -keystore xx.keystore -genkey 产生证书; -alias 产生别名; -keystore:指定密钥库的.keystore文件中;-keyalg:密钥算法,这里是RSA;-validity:证书有效天数 产生的提示里的keystore密码就是后面签名APK要输入的 签名apk jarsigner -verbose -keystore xx.keystore xx.apk xx.keystore -verbose:指定生成输出;-keystore:指定证书的存储路径 之后apk就能安装,但是如果之前已经装过这个apk需要先卸载,]]></content>
<categories>
<category>Android</category>
</categories>
<tags>
<tag>apktool</tag>
</tags>
</entry>
<entry>
<title><![CDATA[Sharedpreferences]]></title>
<url>%2F2018%2F04%2F28%2FSharedPreferences%2F</url>
<content type="text"><![CDATA[Sharedpreferences 轻量级的存储类,KEY/VALUE形式,类似键值对 其中的原理是通过Android系统生成一个xml文件保到:/data/data/包名/shared_prefs目录下//DDMS里data文件夹权限是drwxrsw–x,需要修改权限才能打开 支持Java基本数据类型保存接口比如:int、long、boolean、String、Float、Set和Map这些数据类型。 实现方法: 先获取一个SharedPreferences对象:1.第一个参数是生成的存储文件的名字,第二个参数是存储的格式:SharedPreferenced sp=Context.getSharedPreferences("sp_demo",Context.MODE_PRIVATE); MODE_PRIVATE:默认操作模式,只有当前的应用程序才可以对整个SharedPreferences文件读写; MODE_MULTI_PRIVATE:多个进程共同操作同一个文件 获取edit对象:Editor editor = sp.edit(); 通过editor对象写入,也可以putInt、putBoolean:edit.putString("name","John"); 直接用edit的方式没法存储,因为sp.edit()每次都会返回一个新的Editor对象,Editor的实现类EditorImpl里面会有一个缓存的Map,最后commit的时候先将缓存里面的Map写入内存中的Map,然后将内存中的Map写进XML文件中。使用上面的方式commit,由于sp.edit()又重新返回了一个新的Editor对象,缓存中的Map是空的,所以没法存储 提交数据到xml文件中:edit.commit(); 取出数据 第一个参数是写入的键,第二个参数是如果没有获取到数据就默认返回的值:String name = sp.getString("name",null); 如果类没有继承Activity,不能直接用getSharedPreferences方法context.getSharedPreferences(); 实现代码: SharedPreferences pref =MainActivity.this.getSharedPreferences(“data”,MODE_PRIVATE);SharedPreferences.Editor editor = pref.edit();editor.putString(“name”,”lily”);editor.putString(“age”,”20”);editor.putBoolean(“married”,false);editor.commit();-]]></content>
<categories>
<category>Android</category>
</categories>
<tags>
<tag>sharedpreferences</tag>
</tags>
</entry>
</search>