怎么能把jar包中的.class文件合并到apk中的class.dex文件中求大神指点!!!

怎么能把jar包中的.class文件合并到apk中的class.dex文件中求大神指点!!!

1个回答

下面是一个解决方案...

假设.jar文件位于在“C:\ TEMP \ in.jar”。在命令提示符窗口中cd到.. \ Android的SDK \平台工具。 要获取apk文件执行:

DX --dex --output =“C:\ TEMP \ app.apk”“C:\ TEMP \ in.jar”

要获得.dex文件执行:

DX --dex --output =“C:\ TEMP \ dx.dex”“C:\ TEMP \ in.jar”

qq_29095833
呵呵DA 什么原理啊?
接近 3 年之前 回复
qq_29095833
呵呵DA 是要转成dex文件???
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
win10系统逆向多dex文件
比如一个apk文件是haha.apk将它改为haha.zip解压后得到两个dex文件分别为 1.dex 2.dex 通常情况是 d2j-dex2jar.bat 1.dex 得到1.jar d2j-dex2jar.bat 2.dex 得到2.jar 看到这篇文章 https://blog.csdn.net/class_brick/article/details/72782772 里面说d2j-dex2jar.sh xxxx.apk可以直接将多个dex变成一个jar包 我运行d2j-dex2jar.sh haha.apk 并没有得到任何文件 我需要运行什么命令才能使多个dex变成一个jar包? 自己已解决: win系统下dex2jar 2.1直接 d2j-dex2jar.bat xxxx.apk
smali-2.0.3.jar转换smali包到classes.dex时出错!!
现在在用smali-2.0.3.jar工具将.smali类型文件转换为classes.dex时出错,也不知道什么原因?? 如图: ![图片说明](https://img-ask.csdn.net/upload/201501/30/1422606601_234527.png) 希望大伙帮我看看。另外,如果有更好的解决.smali文件 to .java源码文件的转换工具或法子,希望提示一下小弟哈
Android中把jar包转换成dex包的方法
最近在研究Android热补丁技术,中间有一步是把jar包转换成dex包,网上的工具都是JDK1.6版本 求1.7版本怎么转换
apk反编译后安装失败,找不到证书
反编译apk,将dex转为jar,修改.class,再将jar转为dex,打包回apk,jarsigner签名(验证,显示有签名信息),经过这些过程后,新的apk始终安装失败,为何?直接复制apk到/data/app里,启动时报类未找到异常。求解!
android ant 打包,包含第三方jar库且有资源文件的工程
<?xml version="1.0" encoding="UTF-8"?> <project name="MainProject" basedir="." default="main" > <!-- The local.properties file is created and updated by the 'android' tool. It contains the path to the SDK. It should *NOT* be checked into Version Control Systems. --> <property file="local.properties" /> <property name="apk-name" value="product" /> <property name="apk-version" value="latest" /> <property name="apk-market" value="dev" /> <!-- android.jar路径 --> <property name="android-jar" value="/opt/adt/sdk/platforms/android-19/android.jar" /> <!-- android.tools路径 --> <property name="android.tools" value="/opt/adt/sdk/tools" /> <!-- 初始化 目录文件 --> <target name="init" > <echo> start initing ... </echo> <mkdir dir="out" /> <delete> <fileset dir="out" > </fileset> </delete> <mkdir dir="gen" /> <delete> <fileset dir="gen" > </fileset> </delete> <mkdir dir="assets" /> <delete> <fileset dir="assets" > </fileset> </delete> <mkdir dir="bin/classes" /> <delete> <fileset dir="bin/classes" > </fileset> </delete> <!-- ${apk-version}表示版本,后面会详细讲到 --> <mkdir dir="build/${apk-version}" /> <echo> finish initing. </echo> </target> <target name="main" depends="init" > <echo> generating R.java for project to dir gen (using aapt) ... </echo> <exec executable="aapt" failonerror="true" > <arg value="package" /> <!-- package表示打包 --> <arg value="-m" /> <!-- m,J,gen表示创建包名的目录和R.java到gen目录下 --> <arg value="-J" /> <arg value="gen" /> <arg value="-M" /> <!-- M指定AndroidManifest.xml文件 --> <arg value="AndroidManifest.xml" /> <arg value="-S" /> <!-- S指定res目录,生成对应的ID,可多个 --> <arg value="res" /> <arg value="-S" /> <arg value="../SlideMenu/res" /> <arg value="-I" /> <!-- I指定android包的位置 --> <arg value="${android-jar}" /> <arg value="--auto-add-overlay" /> <!-- 这个重要,覆盖资源,不然报错 --> </exec> <echo>generating R.java for library to dir gen (using aapt) </echo> <exec executable="aapt" failonerror="true"> <arg value="package" /> <arg value="-m" /> <arg value="--non-constant-id" /> <arg value="--auto-add-overlay" /> <arg value="-J" /> <arg value="gen" /> <arg value="-M" /> <arg value="../SlideMenu/AndroidManifest.xml" /> <arg value="-S" /> <arg value="res" /> <arg value="-S" /> <arg value="../SlideMenu/res" /> <arg value="-I" /> <arg value="${android-jar}" /> </exec> <!-- 第三方jar包需要引用,用于辅助编译 --> <path id="project.libs" > <fileset dir="libs" > <include name="*.jar" /> </fileset> </path> <echo> compiling java files to class files (include R.java, library and the third-party jars) ... </echo> <!-- 生成的class文件全部保存到bin/classes目录下 --> <javac bootclasspath="${android-jar}" destdir="bin/classes" > <src path="../RemoteHelpe/src" /> <src path="../SlideMenu/src" /> <src path="src" /> <src path="gen" /> <classpath refid="project.libs" /> </javac> <echo> packaging class files (include the third-party jars) to calsses.dex ... </echo> <exec executable="dx" > <arg value="--dex" /> <arg value="--output=out/classes.dex" /> <!-- 输出 --> <arg value="bin/classes" /> <!-- classes文件位置 --> <arg value="libs" /> <!-- 把libs下所有jar打包 --> </exec> <echo> packaging resource (include res, assets, AndroidManifest.xml, etc.) to res.zip ... </echo> <!-- 打包资源文件 --> <exec executable="aapt" > <arg value="package" /> <arg value="-f" /> <!-- 资源覆盖重写 --> <arg value="-M" /> <arg value="AndroidManifest.xml" /> <arg value="-S" /> <arg value="res" /> <arg value="-S" /> <!-- lib资源文件的res --> <arg value="../SlideMenu/res" /> <arg value="-A" /> <!-- 与R.java不同,需要asset目录也打包 --> <arg value="assets" /> <arg value="-I" /> <arg value="${android-jar}" /> <arg value="-F" /> <!-- 输出资源压缩包 --> <arg value="out/res.zip" /> <arg value="--auto-add-overlay" /> </exec> <echo> building unsigned.apk ... </echo> <java classname="com.android.sdklib.build.ApkBuilderMain" classpath="${android.tools}/lib/sdklib.jar" > <arg value="out/unsigned.apk" /> <arg value="-u" /> <arg value="-z" /> <arg value="out/res.zip" /> <arg value="-f" /> <arg value="out/classes.dex" /> <arg value="-nf" /> <arg value="./libs" /> </java> <!-- 生成apk文件到build目录下 --> <!-- 其中${apk-version/name/market}用户多渠道打包,后面会讲到 --> <echo> signing the unsigned apk to final product apk ... </echo> <exec executable="java" > <arg value="-jar" /> <arg value="../sign/signapk.jar" /> <arg value="../sign/testkey.x509.pem" /> <arg value="../sign/testkey.pk8" /> <arg value="out/unsigned.apk" /> <arg value="hello.apk" /> </exec> <echo> done. </echo> </target> </project> 其实我现在的主要问题是:在打包jar库资源文件的时候,由于我的主程序中的一个layout文件引用了xmlns:wison="http://schemas.android.com/apk/res/com.main.project" 的说明;导致了 res/layout/audio.xml:260: error: No resource identifier found for attribute 'switchMinHeight' in package 'com.main.project' 的问题; appt库资源文件的时候出的这个错。 请问大侠们怎么解决这个问题呢?
android dex动态加载jar包的问题
有个需求就是在工程中动态的加载一个jar包中的接口 然后接口中开启一个activity 但是在项目中没有这个activity 只是在manifest中配置了一下 请问这个要怎么开启
DexClassLoader读不到jar文件求解!
我在第一个项目当中创建了一个com.example.interf包,里面有接口ILoader ,又写了一个方法JarLoader,并将两个文件打成了dex以后的jar包存到SD卡下unit_jar_path+jarName路径下 我又建了第二个项目将com.example.interf包以及下面的ILoader 接口的文件粘到新项目当中,又建了一个文件调用部分如下: File jarPath = new File(unit_jar_path+jarName); File dexOutputDir = context.getDir("dex", 0); DexClassLoader cl = new DexClassLoader(jarPath.getAbsolutePath(), dexOutputDir.getAbsolutePath(), null, ClassLoader.getSystemClassLoader()); Log.e("test", "cl:"+ cl +"\n"); Class<?> className = cl.loadClass("com.example.interf.JarLoader"); Log.e("test", "className:"+ className +"\n");//这里有类名,找到了包下类名 ILoader loader = (ILoader)className.newInstance(); Log.e("test", "loader.sayHi():"+ loader.sayHi() +"\n");//这里没有执行并报错??? 现在能够找到包下类名,却找不到方法,打印不出Log.e("test", "loader.sayHi():"+ loader.sayHi() +"\n");这个日志,并且报 java.lang.ClassCastException: com.example.interf.JarLoader cannot be cast to com.example.impl.ILoader请问高手我哪里做的有问题?
android 底层的 问题,求解决
我的apk包中有classes.dex文件,还有assets目录下的key文件, 我怎么在底层的代码中获得这两个文件呢?着急 谢谢
用android studio打包apk出现错误提示
在android studio里用真机或虚拟机测试都没有问题,app都能够正常运行。但是用android studio打包apk时却出现错误提示 1.Error:Error converting bytecode to dex: Cause: com.android.dex.DexException: Multiple dex files define Landroid/support/v7/app/ActionBar$DisplayOptions; 2.Error:Execution failed for task ':app:transformClassesWithDexForRelease'. > com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: java.lang.UnsupportedOperationException![图片说明](https://img-ask.csdn.net/upload/201908/09/1565321956_272697.png)
multiDexEnabled导致Dex数量异常
一开multiDexEnabled编译就给我飚出58个.dex 从classes.dex 一直到 classes58.dex 导致dex2oat无法正常工作 就抛异常了(没有找到classes2.dex里面的类) 什么情况导致出现了那么多.dex?
一个通用apk,想往里面加一些公共的方法和资源,重新打包
我把部分功能提取出来脱离apk,需要的次功能的时候再执行一个“一键操作”加入到apk内。 现在就是要处理这个“一键操作”的具体实现。 目前了解下来,会加入一些资源,manifest内插入一些代码,加入部分java逻辑代码,加入so和jar库。 从目前反编译来看,一些资源文件和so库直接拷贝进去即可,manifest应该也好处理。而java逻辑代码和jar库编译成了dex,此时需要在原来的dex内加入需要新加的java逻辑和jar库。 各位大哥有什么好一点的解决方案或者博文推荐一下,谢谢,一起讨论研究。
android frameworks引用三方jar遇到的问题
1、使用如下代码将三方jar包编译进系统 LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := arcsoft_face:arcsoft_face.jar include $(BUILD_MULTI_PREBUILT) 2、在frameworks\base\services\Android.mk中引入jar包 LOCAL_STATIC_JAVA_LIBRARIES += arcsoft_face 3、编译时出现如下的错误 ninja: error: 'out/target/common/obj/JAVA_LIBRARIES/arcsoft_face_intermediates/classes.jack', needed by 'out/target/common/obj/JAVA_LIBRARIES/services_intermediates/with-local/classes.dex', missing and no known rule to make it 4、查看相应的out目录发现确实是没有classes.jack文件 out\target\common\obj\JAVA_LIBRARIES\arcsoft_face_intermediates ![图片说明](https://img-ask.csdn.net/upload/201908/01/1564647105_754745.png) 5、归根结底的问题就是编译三方jar的时候如何生成classes.jack文件或者如何修改frameworks中的android.mk使编译时候引用的是jar文件而不是jack.
别人的android应用XXXX,dex如何打开?有没有像普通java ,class文件那样反编译东东?
别人的android应用XXXX,dex如何打开?有没有像普通java ,class文件那样反编译东东?
android 8.0 下載apk停止運行,小米卻可以運行?
1.通过百度手机助手安装浦发银行等apk,会出现停止运行的现象 ----------------------------------------------------------------------------- 12-13 10:05:29.971 10591 10591 W zygote : Opening an oat file without a class loader. Are you using the deprecated DexFile APIs? 12-13 10:05:29.972 10591 10591 I System.out: java.io.IOException: No original dex files found for dex location /data/user/0/cn.com.spdb.mobilebank.per/.cache/classes.jar 12-13 10:05:29.972 10591 10591 I System.out: at dalvik.system.DexFile.openDexFile(DexFile.java:353) 12-13 10:05:29.972 10591 10591 I System.out: at dalvik.system.DexFile.<init>(DexFile.java:142) 12-13 10:05:29.972 10591 10591 I System.out: at dalvik.system.DexFile.loadDex(DexFile.java:201) 12-13 10:05:29.972 10591 10591 I System.out: at dalvik.system.DexPathList.loadDexFile(DexPathList.java:377) 12-13 10:05:29.972 10591 10591 I System.out: at dalvik.system.DexPathList.makeDexElements(DexPathList.java:337) 12-13 10:05:29.972 10591 10591 I System.out: at dalvik.system.DexPathList.makePathElements(DexPathList.java:423) ............... 12-13 10:05:30.100 10591 10591 E AndroidRuntime: FATAL EXCEPTION: main 12-13 10:05:30.100 10591 10591 E AndroidRuntime: Process: cn.com.spdb.mobilebank.per, PID: 10591 12-13 10:05:30.100 10591 10591 E AndroidRuntime: java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{cn.com.spdb.mobilebank.per/cn.com.spdb.mobilebank.per.activity.SplashActivity}: java.lang.ClassNotFoundException: Didn't find class "cn.com.spdb.mobilebank.per.activity.SplashActivity" on path: DexPathList[[zip file "/data/user/0/cn.com.spdb.mobilebank.per/.cache/classes.jar", zip file "/data/app/cn.com.spdb.mobilebank.per-EgIw06u0HOQaqjp2BMQJFg==/base.apk"],nativeLibraryDirectories=[/data/app/cn.com.spdb.mobilebank.per-EgIw06u0HOQaqjp2BMQJFg==/lib/arm, /system/fake-libs, /data/app/cn.com.spdb.mobilebank.per-EgIw06u0HOQaqjp2BMQJFg==/base.apk!/lib/armeabi, /system/lib, /vendor/lib]]
android java.lang.VerifyError
使用的是android studio 2.0 ![图片说明](https://img-ask.csdn.net/upload/201601/14/1452742773_959650.png)![图片说明](https://img-ask.csdn.net/upload/201601/14/1452742785_761655.png) 由于项目集成比较多的第三方SDK,项目看上去比较大,貌似在没有混淆的情况导致的方法超过了64K,经过不断的搜索资料发现,应该是dex 分包了,在解压APK后发现 有两个class.dex,class.dex和class2.dex,问题就来了,在5.0以上的手机运行是没有问题的,一下的手机运行就出现了java.lang.VerifyError 这样的问题,然后继续搜索,都说使用 com.android.support:multidex: 就可以解决,也使用MultiDexApplication,但是还是会出现啊。。无解,求大牛解答! 另外混淆打包出来是可以运行没问题的
安卓module打包成aar文件,运行后报错java.lang.NoSuchMethodError:
报错信息: java.lang.NoSuchMethodError: No static method setOnApplyWindowInsetsListener(Landroid/view/View;Landroid/support/v4/view/OnApplyWindowInsetsListener;)V in class Landroid/support/v4/view/ViewCompatLollipop; or its super classes (declaration of 'android.support.v4.view.ViewCompatLollipop' appears in /data/app/com.b1993423839.zsa-1/base.apk:classes46.dex) 下面是我的v4和v7包都放在module的libs中引用,版本都是一致的,最后打包的时候也是将引用的aar文件放入主项目的libs中引用,最后将module的aar引入到主项目中,为啥运行的时候会出现找不到v4的方法呢? //安卓高级组件implementation(name: 'recyclerview-v7-25.2.0', ext: 'aar') implementation(name: 'constraint-layout-1.0.2', ext: 'aar') implementation files('libs/constraint-layout-solver-1.0.2.jar') implementation(name: 'design-25.2.0', ext: 'aar') //安卓兼容包 implementation(name: 'animated-vector-drawable-25.2.0', ext: 'aar') implementation(name: 'appcompat-v7-25.2.0', ext: 'aar') implementation(name: 'support-compat-25.2.0', ext: 'aar') implementation(name: 'support-core-ui-25.2.0', ext: 'aar') implementation(name: 'support-core-utils-25.2.0', ext: 'aar') implementation(name: 'support-fragment-25.2.0', ext: 'aar') implementation(name: 'support-media-compat-25.2.0', ext: 'aar') implementation(name: 'support-v4-25.2.0', ext: 'aar') implementation(name: 'support-vector-drawable-25.2.0', ext: 'aar') implementation(name: 'transition-25.2.0', ext: 'aar') implementation files('libs/support-annotations-25.2.0.jar') ![图片说明](https://img-ask.csdn.net/upload/201804/16/1523852888_948038.jpg)
Android ant 脚本打包 关联library project的项目
以下是build.xml Android ant 脚本打包 关联library project的项目,java源文件编译成class文件时 找不到R 打包cardview的library时 总是不能成功,其他library生成的都是包。但是cardview就是不行················································· <?xml version="1.0" encoding="UTF-8"?> <project name="recyclerexample" default="release" basedir="."> <!-- 指定配置文件 --> <property file="project.properties" /> <property file="local.properties" /> <!-- 定义工具目录 --> <property name="sdk.dir" value="${sdk-dir}" /> <property name="android.tools.dir" value="${sdk.dir}/tools" /> <property name="android.platformtools.dir" value="${sdk.dir}/platform-tools" /> <property name="android.platforms.dir" value="${sdk.dir}/platforms/${target}" /> <property name="android.tools.absolute.dir" location="${android.tools.dir}" /> <property name="android.platformtools.absolute.dir" location="${android.platformtools.dir}" /> <property name="android.platforms.absolute.dir" location="${android.platforms.dir}" /> <!-- 定义工具 <property name="verbose" value="false" />--> <condition property="exe" value=".exe" else=""> <os family="windows" /> </condition> <property name="jar.proguard" value="${proguard}" /> <property name="android-jar" value="${android.platforms.absolute.dir}/android.jar" /> <property name="android-dx" value="${android.platformtools.absolute.dir}/dx.bat" /> <property name="android-apkbuilder" value="${android.tools.absolute.dir}/apkbuilder.bat" /> <property name="android-adb" value="${android.platformtools.absolute.dir}/adb${exe}" /> <property name="android.zipalign" value="${android.tools.absolute.dir}/zipalign${exe}" /> <property name="android-aapt" value="${android.platformtools.absolute.dir}/aapt${exe}" /> <property name="android-jarsigner" value="${JAVA_HOME}/bin/jarsigner${exe}" /> <!-- ANT环境变量 --> <property environment="env" /> <!-- 生成R文件的相对目录 --> <property name="outdir-gen" value="${project.home}/gen" /> <!-- 编译后的文件放置目录 --> <property name="outdir-bin" value="${project.home}/bin" /> <!-- 输出目录 --> <property name="outdir" value="${project.outdir}" /> <!-- 清单文件 --> <property name="manifest-xml" value="${project.home}/AndroidManifest.xml" /> <!-- 源文件目录 --> <property name="resource-dir" value="res" /> <property name="asset-dir" value="assets" /> <!-- 资源文件目录 --> <property name="drawable-dir" value="${resource-dir}/drawable" /> <property name="drawable-hdpi-dir" value="${resource-dir}/drawable-hdpi"/> <property name="drawable-ldpi-dir" value="${resource-dir}/drawable-ldpi"/> <property name="drawable-mdpi-dir" value="${resource-dir}/drawable-mdpi"/> <property name="drawable-zh-rCN-dir" value="${resource-dir}/drawable-zh-rCN"/> <!-- java源文件目录 --> <property name="srcdir" value="src" /> <property name="srcdir-ospath" value="${project.home}/${srcdir}" /> <!-- 动态库so文件目录 --> <property name="library" value="${project.home}/libs" /> <!-- 第三方library --> <property name="library-dir1" value="${library1}" /> <property name="library-dir3" value="${library3}" /> <!-- 外部类库所在目录 --> <property name="external-lib" value="lib" /> <property name="external-lib-ospath" value="${project.home}/${external-lib}" /> <!-- 生成class目录 --> <property name="outdir-classes" value="${outdir-bin}/classes" /> <property name="outdir-classes-ospath" value="${outdir-classes}" /> <!-- classes.dex相关变量 --> <property name="dex-file" value="classes.dex" /> <property name="dex-path" value="${outdir-bin}/${dex-file}" /> <property name="dex-ospath" value="${dex-path}" /> <!-- 经过aapt生成的资源包文件 --> <property name="resources-package" value="${outdir-bin}/resources.ap_" /> <property name="resources-package-ospath" value="${resources-package}" /> <!-- 未认证apk包 --> <property name="out-unsigned-package" value="${outdir-bin}/${appName}-unsigned.apk" /> <property name="out-unsigned-package-ospath" value="${out-unsigned-package}" /> <!-- 证书文件 --> <property name="keystore-file" value="${keystore}" /> <!-- 已认证apk包 --> <property name="out-signed-package" value="${outdir-bin}/${appName}.apk" /> <property name="out-signed-package-ospath" value="${out-signed-package}" /> <!-- 已优化apk包 --> <property name="zipalign-signed-package" value="${outdir-bin}/${appName}${version}_release.apk" /> <!-- 输出路径的apk包 --> <property name="outdir-package" value="${project.outdir}/${appName}.apk" /> <!-- 初始化工作 --> <target name="init"> <echo>Initializing all output directories...</echo> <delete dir="${outdir-bin}" /> <delete dir="${outdir-gen}" /> <delete dir="${library-dir1}/bin" /> <delete dir="${library-dir3}/bin" /> <delete dir="${library-dir1}/gen" /> <delete dir="${library-dir3}/gen" /> <mkdir dir="${outdir-gen}" /> <mkdir dir="${outdir-bin}" /> <delete dir="${library-dir1}/bin" /> <delete dir="${library-dir3}/bin" /> <delete dir="${library-dir1}/gen" /> <delete dir="${library-dir3}/gen" /> <mkdir dir="${outdir-classes}" /> <!-- 把缺少的BuildConfig复制进去,暂时不知道如何生成 --> </target> <!-- 根据工程中的资源文件生成R.java文件 ,多个合并为一个--> <target name="GenRJAVA" depends="init"> <echo>Generating R.java / Manifest.java from the resources...</echo> <exec executable="${android-aapt}" failonerror="true"> <arg value="package" /><!-- package表示打包--> <arg value="-m" /><!--m,J,gen表示创建包名的目录和R.java到gen目录下 --> <arg value="-J" /> <arg value="${outdir-gen}" /> <arg value="-M" /><!-- M指定AndroidManifest.xml文件--> <arg value="${manifest-xml}" /> <arg value="-S" /><!-- S指定res目录,生成对应的ID,可多个--> <arg value="${resource-dir}" /> <arg value="-S" /> <arg value="${library-dir1}/res" /> <!-- 注意点:同时需要调用Library的res--> <arg value="-S" /> <arg value="${library-dir3}/res" /> <arg value="--extra-packages" /> <arg value="slidingmenu_library:SMSSDK" /> <arg value="-I" /><!-- I指定android包的位置--> <arg value="${android-jar}" /> <arg value="--auto-add-overlay" /> <!-- 这个重要,覆盖资源,不然报错--> </exec> </target> <!-- 将工程及库应用中的java源文件编译成class文件 --> <target name="compile" depends="GenRJAVA"> <echo>Compiling java source code...</echo> <javac encoding="UTF-8"target="1.6" destdir="${outdir-classes}" bootclasspath="${android-jar}" includeantruntime="on"> <src path="${library-dir1}/src" /><!-- 库应用源码 --> <src path="${outdir-gen}" /><!-- 生成的class文件全部保存到bin/classes目录下 --> <classpath> <fileset dir="${library-dir1}/libs" includes="*.jar" /><!-- 第三方jar包需要引用,用于辅助编译 --> </classpath> </javac> <javac encoding="UTF-8" destdir="${outdir-classes}" bootclasspath="${android-jar41}" includeantruntime="on"> <src path="${library-dir3}/src" /> <src path="${outdir-gen}" /> <classpath> <fileset dir="${library-dir3}/libs" includes="*.jar" /> </classpath> </javac> <javac encoding="UTF-8" destdir="${outdir-classes}" bootclasspath="${android-jar}"> <src path="${project.home}/src" /><!-- 工程源码--> <src path="${outdir-gen}" /><!-- 生成的class文件全部保存到bin/classes目录下 --> <classpath> <fileset dir="${library}" includes="*.jar" /><!-- 第三方jar包需要引用,用于辅助编译 --> </classpath> </javac> </target> <!--执行代码混淆和优化 必须在java文件编译以后--> <target name="optimize" depends="compile"> <echo>optimize classes are put to "${out.absolute.dir}" .</echo> <jar basedir="${outdir-classes}" destfile="${outdir-bin}/temp.jar"/> <taskdef resource="proguard/ant/task.properties" classpath="${jar.proguard}" /> <proguard> -injars ${outdir-bin}/temp.jar -outjars ${outdir-bin}/optimized.jar -libraryjars ${android-jar} -optimizationpasses 5 -dontskipnonpubliclibraryclasses -dontpreverify -verbose -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* -include proguard-project.txt </proguard> <delete file="${outdir-bin}/temp.jar"/> <delete dir="${outdir-classes}" failonerror="false" /> <mkdir dir="${outdir-classes}"/> <unzip src="${outdir-bin}/optimized.jar" dest="${outdir-classes}"/> <delete file="${outdir-bin}/optimized.jar"/> </target> <!-- 将.class文件转化成.dex文件 --> <target name="dex" depends="compile"> <echo>Converting compiled files and external libraries into ${outdir-dx}test.dex...</echo> <exec executable="${android-dx}" failonerror="true"> <arg value="--dex" /> <arg value="--output=${dex-ospath}" /><!-- 输出 --> <arg path="${outdir-classes}" /><!-- classes文件位置 --> <arg value="${library}" /> <!-- 把libs下所有jar打包 --> </exec> </target> <!-- 将资源文件放进输出目录 --> <target name="package-res-and-assets"> <echo>Packaging resources and assets...</echo> <exec executable="${android-aapt}" failonerror="true"> <arg value="package" /> <arg value="-f" /><!-- 资源覆盖重写 --> <arg value="-M" /> <arg value="${manifest-xml}" /> <arg value="-S" /> <arg value="${resource-dir}" /> <arg value="-S"/> <arg value="${library-dir1}/res"/> <arg value="-S"/> <arg value="${library-dir3}/res"/> <arg value="-A" /><!-- asset目录也打包 --> <arg value="${asset-dir}" /> <arg value="-I" /> <arg value="${android-jar}" /> <arg value="-F" /><!-- 输出资源压缩包 --> <arg value="${resources-package}" /> <arg value="--auto-add-overlay" /> </exec> </target> <!-- 打包成未签证的apk --> <target name="package" depends="dex,package-res-and-assets"> <echo>Packaging unsigned apk for release...</echo> <exec executable="${android-apkbuilder}" > <arg value="${out-unsigned-package-ospath}" /><!-- 输出 --> <arg value="-u" /><!-- u指创建未签名的包--> <arg value="-z" /><!-- 资源压缩包 --> <arg value="${resources-package-ospath}" /> <arg value="-f" /><!-- dex文件 --> <arg value="${dex-ospath}" /> <arg value="-nf"/><!-- 把libs下的so库打包 --> <arg value="${library}" /> </exec> <echo>It will need to be signed with jarsigner before being published.</echo> </target> <!-- 对apk进行签证 --> <target name="jarsigner" depends="package"> <echo>Packaging signed apk for release...</echo> <exec executable="${android-jarsigner}" failonerror="true"> <arg value="-keystore" /> <arg value="${keystore-file}" /> <arg value="-storepass" /> <arg value="111111" /><!-- 验证密钥完整性的口令,创建时建立的 --> <arg value="-keypass" /> <arg value="111111" /> <!-- 专用密钥的口令,就是key密码 --> <arg value="-signedjar" /> <arg value="${out-signed-package-ospath}" /><!-- 输出 --> <arg value="${out-unsigned-package-ospath}" /><!-- 未签名的apk --> <!-- 不要忘了证书的别名 --> <arg value="recyclersign" /> </exec> <echo message="签名成功" /> </target> <!-- 优化 --> <target name="optimize-app" depends="jarsigner"> <echo> optimizing the application...</echo> <exec executable="${android-zipalign}"> <arg value="-v" /> <arg value="-f" /> <arg value="4" /> <arg value="${out-signed-package-ospath}" /> <arg value="${zipalign-signed-package}" /> </exec> </target> <!-- 发布 --> <target name="release" depends="optimize-app"> <!-- 删除未签证apk --> <delete file="${out-unsigned-package-ospath}" /> <echo>APK is released. path:${out-signed-package-ospath}</echo> <copy file="${out-signed-package-ospath}" tofile="${outdir-package}"></copy> <echo>APK is copy to path:${outdir-package}</echo> </target> </project> ``` ```
关于这篇文章(APK加壳)中最后结果的问题
http://blog.csdn.net/jiangwei0910410003/article/details/48415225#reply 上面这个是个很经典的APK 加壳的例子 但是最后的结果我做的可以用dex2jar反编译出加壳的代码啊? 是作者忽悠人了吗 dex2jar显示done成功了 还是我哪里做错了
用android studio打包apk的问题
以下是错误信息: Error:Error converting bytecode to dex: Cause: com.android.dex.DexException: Multiple dex files define Luk/co/senab/photoview/Compat Error:Execution failed for task ':app:transformClassesWithDexForRelease'. > com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: Error while executing java process with main class com.android.dx.command.Main with arguments {--dex --num-threads=4 --output G:\Moneyexchange\app\build\intermediates\transforms\dex\release\folders\1000\1f\main G:\Moneyexchange\app\build\intermediates\pre-dexed\release\classes_bc6fa630cf13dddbc9e72dd7f3aba2b9cd51d7a1.jar G:\Moneyexchange\app\build\intermediates\pre-dexed\release\release_0cca68bc8cb9d2fc3e49bd2c61f15ee040b475f8.jar G:\Moneyexchange\app\build\intermediates\pre-dexed\release\glide-3.7.0_1f3ddf859a86296da03fddcf50d19f29d652df81.jar G:\Moneyexchange\app\build\intermediates\pre-dexed\release\classes_4999f27ee2bccba3b1d9ca5f4497f67ffbe3d09a.jar G:\Moneyexchange\app\build\intermediates\pre-dexed\release\classes_59540dd109f7329c044a68a4720ee3860939e47f.jar G:\Moneyexchange\app\build\intermediates\pre-dexed\release\retrofit-2.1.0_02cdaa5f093e78b272a8b951b62057cb62740b8d.jar G:\Moneyexchange\app\build\intermediates\pre-dexed\release\classes_91999f92a385be9ea4eb4f7056ca21f7cea3f1f4.jar G:\Moneyexchange\app\build\intermediates\pre-dexed\release\classes_7cbda6d9011541522ed9c25cade1a6e35e1f8216.jar G:\Moneyexchange\app\build\intermediates\pre-dexed\release\classes_f14af4277bf1e33d004dd3cffe72b870204d261c.jar G:\Moneyexchange\app\build\intermediates\pre-dexed\release\uk-co-senab-photoview_98f39f1e63a5baefe6cbe822023d74f2836ccdd4.jar G:\Moneyexchange\app\build\intermediates\pre-dexed\release\classes_42f1ee2cee217c2a6a4a7ef432060749358c0595.jar G:\Moneyexchange\app\build\intermediates\pre-dexed\release\classes_afaf65d3e0062bca037b2d284d1ded8cbdd20c10.jar G:\Moneyexchange\app\build\intermediates\pre-dexed\release\hamcrest-core-1.3_2323b0689b69c651dc52b5f9e0fa5ab289cff959.jar G:\Moneyexchange\app\build\intermediates\pre-dexed\release\converter-gson-2.1.0_fc6d109c83c05cddded4b5ea732ed5dd7c938086.jar G:\Moneyexchange\app\build\intermediates\pre-dexed\release\constraint-layout-solver-1.0.2_9ac81d20d17128e2cd1f8d4b8a0fd34ba1a69f7a.jar G:\Moneyexchange\app\build\intermediates\pre-dexed\release\classes_b3599440e96d81bffd4a0b4432c76b5e566a72fe.jar G:\Moneyexchange\app\build\intermediates\pre-dexed\release\classes_4830dc9cde2e687b9d91c2839f2be408fc061874.jar G:\Moneyexchange\app\build\intermediates\pre-dexed\release\support-annotations-25.2.0_4a4b5b43289d807864a8e4b06667a45b4b3adad5.jar G:\Moneyexchange\app\build\intermediates\pre-dexed\release\rxjava-2.0.1_88fc17d5d72694fd01b893bb935156af845d463f.jar G:\Moneyexchange\app\build\intermediates\pre-dexed\release\classes_55830afe7dce9536e371ce91113003ae0257fbfc.jar G:\Moneyexchange\app\build\intermediates\pre-dexed\release\classes_6967c9d3f14fe6fadcc73d1abeca900f5587d82f.jar G:\Moneyexchange\app\build\intermediates\pre-dexed\release\classes_b04a997ea4eeb88401d7f9b848b3b7778153c1c2.jar G:\Moneyexchange\app\build\intermediates\pre-dexed\release\gson-2.7_2e85dbf641c4a16c73925139bd4ff50ebb0450dd.jar G:\Moneyexchange\app\build\intermediates\pre-dexed\release\adapter-rxjava-2.1.0_a922f2c9139fd2cbbf2500b5aa528f1e500fa2f5.jar G:\Moneyexchange\app\build\intermediates\pre-dexed\release\okhttp-3.4.1_a3a718343956c6e4d917a53a4fdd4a4dc134cda5.jar G:\Moneyexchange\app\build\intermediates\pre-dexed\release\classes_9855afad2144bd12782bd4f5c6715570685d00de.jar G:\Moneyexchange\app\build\intermediates\pre-dexed\release\okio-1.9.0_db0545b090bbd931e1cf6e43202e038727277a7d.jar G:\Moneyexchange\app\build\intermediates\pre-dexed\release\classes_f45acf7bcee5c1c1b647a70fc8d4cd01f67d1800.jar G:\Moneyexchange\app\build\intermediates\pre-dexed\release\uk-co-senab-photoview-source_5da69885659484faae31ae68650f0e8cdabf5900.jar G:\Moneyexchange\app\build\intermediates\pre-dexed\release\reactive-streams-1.0.0_5ea215fafe26757b3eaa9e791da078c680959e41.jar G:\Moneyexchange\app\build\intermediates\pre-dexed\release\rxjava-1.1.9_82a537d5fc11c5aeb9cc44855ce7783630bf9cf4.jar G:\Moneyexchange\app\build\intermediates\pre-dexed\release\junit-4.12_bca4fc0211375ff0eb614e87bd80b4259fbed036.jar G:\Moneyexchange\app\build\intermediates\pre-dexed\release\logging-interceptor-3.3.0_b3fde2cef71a54923fc8d0c35792bb7349dfd7bc.jar G:\Moneyexchange\app\build\intermediates\pre-dexed\release\classes_1007fe0210273a76163dfff3deb903130a93f30a.jar}
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、PDF搜索网站推荐 对于大部
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
Vue + Spring Boot 项目实战(十四):用户认证方案与完善的访问拦截
本篇文章主要讲解 token、session 等用户认证方案的区别并分析常见误区,以及如何通过前后端的配合实现完善的访问拦截,为下一步权限控制的实现打下基础。
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入  假设现有4个人
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
写在前面: 我是 扬帆向海,这个昵称来源于我的名字以及女朋友的名字。我热爱技术、热爱开源、热爱编程。技术是开源的、知识是共享的。 这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣,可以关注我的动态,我们一起学习。 用知识改变命运,让我们的家人过上更好的生活。 目录一、杨辉三角的介绍二、杨辉三角的算法思想三、代码实现1.第一种写法2.第二种写法 一、杨辉三角的介绍 百度
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
一 说明 如果是初学者,建议去网上寻找安装Mysql的文章安装,以及使用navicat连接数据库,以后的示例基本是使用mysql数据库管理系统; 二 准备前提 需要建立一张学生表,列分别是id,名称,年龄,学生信息;本示例中文章篇幅原因SQL注释略; 建表语句: CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // dosho
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,
程序员:我终于知道post和get的区别
IT界知名的程序员曾说:对于那些月薪三万以下,自称IT工程师的码农们,其实我们从来没有把他们归为我们IT工程师的队伍。他们虽然总是以IT工程师自居,但只是他们一厢情愿罢了。 此话一出,不知激起了多少(码农)程序员的愤怒,却又无可奈何,于是码农问程序员。 码农:你知道get和post请求到底有什么区别? 程序员:你看这篇就知道了。 码农:你月薪三万了? 程序员:嗯。 码农:你是怎么做到的? 程序员:
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
      11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员
Android 9.0系统新特性,对刘海屏设备进行适配
其实Android 9.0系统已经是去年推出的“老”系统了,这个系统中新增了一个比较重要的特性,就是对刘海屏设备进行了支持。一直以来我也都有打算针对这个新特性好好地写一篇文章,但是为什么直到拖到了Android 10.0系统都发布了才开始写这篇文章呢?当然,一是因为我这段时间确实比较忙,今年几乎绝大部分的业余时间都放到写新书上了。但是最主要的原因并不是这个,而是因为刘海屏设备的适配存在一定的特殊性
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI 算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下
日均350000亿接入量,腾讯TubeMQ性能超过Kafka
整理 | 夕颜出品 | AI科技大本营(ID:rgznai100) 【导读】近日,腾讯开源动作不断,相继开源了分布式消息中间件TubeMQ,基于最主流的 OpenJDK8开发的
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
面试官如何考察你的思维方式?
1.两种思维方式在求职面试中,经常会考察这种问题:北京有多少量特斯拉汽车? 某胡同口的煎饼摊一年能卖出多少个煎饼? 深圳有多少个产品经理? 一辆公交车里能装下多少个乒乓球? 一
相关热词 c# 输入ip c# 乱码 报表 c#选择结构应用基本算法 c# 收到udp包后回包 c#oracle 头文件 c# 序列化对象 自定义 c# tcp 心跳 c# ice连接服务端 c# md5 解密 c# 文字导航控件
立即提问