获取安卓apk源码后能不能提前获取APP游戏数据?

反翻译安卓APK后能不能提前获取到APP游戏里的数据?
有没有哪位老师可以告诉我一下?新手不太懂,刚接触。

2个回答

反编译app游戏和提前获取游戏数据并没有很大关联,数据主要是http请求传递过来了,主要是拦截请求包,然后解析包

qq_44278664
qq_44278664 有没有办法在反编译的APK中加入透视功能
大约一年之前 回复

稍微正常点的游戏开发者都会给自己的游戏设置一堆校验信息,你反编译再打包,应用签名是一个问题,签名校验不通过,再者游戏内也有可能存在文件校验或者模块检测机制,这些校验不通过你甚至不能启动游戏,所以那些破解游戏的基本是单机游戏,保护措施没那么强,如果是网游你就别想了。网络请求抓包倒是可以实现,但不需要反编译。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Android Studio 打包apk问题
现在的情况是这样的,我那到别人的源码进行修改生成了一个新的app,我要怎么进行打包生成apk,才能保证能和之前源码的app在同一台手机上不受干扰的运行,避免出现因为apk签名冲突而无法安装的问题
关于android系统权限的问题
最近做项目要用到系统隐藏api,需要获得系统权限才能调用 网上研究了一番还是有几个问题没有清晰的解释 1.使用系统源码签名会覆盖原来的签名吗?很多第三方sdk都是绑定签名md5的,会不会有影响。 2.使用源码系统签名后安装到data/app下能获得系统权限吗? 3.将普通签名apk安装到system/priv-app下可获得权限,那源码系统签名还有什么用处?
如何编译一个Android的系统App?
因为在程序中需要用到一些系统级别的功能(InputManager),所以准备采用系统编译的方法,使我的App带有系统签名。 但是我有几个疑问: 第一,我在自己的Android源码环境中编译的apk,可以安装到其他的Android源码编译的设备上去吗? 先不考虑版本的差异,我想不同的ROM厂商的签名应该有所不同吧? 第二,再说版本差异,不考虑更早的版本,现在新的版本都有做很好的兼容吗? 我的Android源码版本是4.2,可以在4.2以上的其他版本中顺利运行吗?
求APK权限修改器(免Root)的源码
有一款APP叫APK权限修改器,可以删除已安装应用的APK文件里的AndroidManifest.xml文件中的"Android.Permission.*"条目,然后再用一个公开的证书对安装包重新签名(需要允许"未知源"),这样被修改的应用程序就不会向系统申请原先所需的权限。当应用运行至相应的流程时,系统将直接拒绝,从而达到用户控制权限的目的。 最关键的是这个APK权限修改器是不需要手机Root的,请问这个软件是如何拿到其他应用的APK文件的?拿到APK文件后,又是如何在代码里实现删除Manifest.xml中的内容的?还有如何在代码里就可以完成二次打包的?
Android使用Xutils3下载安装apk报错问题,求解
1.根据xutils3的文档说明,创建了一个类对xutils进行初始化 ``` public class MyApp extends Application { @Override public void onCreate() { super.onCreate(); x.Ext.init(this); x.Ext.setDebug(false); } } ``` 2.然后在配置文件中做了如下配置 ``` <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="com.gao.mysafe"> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.INSTALL_PACKAGES" tools:ignore="ProtectedPermissions" /> <application android:name=".MyApp" android:allowBackup="true" android:icon="@mipmap/safe_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".SplashActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".MainActivity"></activity> </application> </manifest> ``` 3.在activity中调用了xutils的下载方法 ``` //apk下载地址,放置apk的路径 //1.获取sd卡路径 String path = Environment.getExternalStorageDirectory().getPath() + "/mysafe.apk"; //2.发送请求,获取apk,并放到指定路径 RequestParams rp = new RequestParams(url); rp.setSaveFilePath(path); rp.setAutoRename(true); x.http().get(rp, new Callback.ProgressCallback<File>() { //下载成功 @Override public void onSuccess(File result) { ToastUtils.show(SplashActivity.this, "下载成功,开始安装!!"); installAPK(result); } //下载出现问题 @Override public void onError(Throwable ex, boolean isOnCallback) { } @Override public void onCancelled(CancelledException cex) { } @Override public void onFinished() { } @Override public void onWaiting() { } //刚刚开始下载 @Override public void onStarted() { } //下载过程中方法 @Override public void onLoading(long total, long current, boolean isDownloading) { } }); ``` 然后在模拟器中出现了如下问题 ``` D/dalvikvm: Not late-enabling CheckJNI (already on) I/InstantRun: Instant Run Runtime started. Android package is com.gao.mysafe, real application class is com.gao.mysafe.MyApp. W/InstantRun: No instant run dex files added to classpath D/dalvikvm: GC_FOR_ALLOC freed 68K, 5% free 2929K/3056K, paused 2ms, total 3ms I/dalvikvm-heap: Grow heap (frag case) to 34.554MB for 33177612-byte allocation D/dalvikvm: GC_FOR_ALLOC freed <1K, 1% free 35328K/35460K, paused 5ms, total 5ms D/OpenGLRenderer: Enabling debug mode 0 I/dalvikvm: Could not find method android.view.Window$Callback.onProvideKeyboardShortcuts, referenced from method android.support.v7.view.WindowCallbackWrapper.onProvideKeyboardShortcuts W/dalvikvm: VFY: unable to resolve interface method 16550: Landroid/view/Window$Callback;.onProvideKeyboardShortcuts (Ljava/util/List;Landroid/view/Menu;I)V D/dalvikvm: VFY: replacing opcode 0x72 at 0x0002 W/dalvikvm: VFY: unable to find class referenced in signature (Landroid/view/SearchEvent;) I/dalvikvm: Could not find method android.view.Window$Callback.onSearchRequested, referenced from method android.support.v7.view.WindowCallbackWrapper.onSearchRequested W/dalvikvm: VFY: unable to resolve interface method 16552: Landroid/view/Window$Callback;.onSearchRequested (Landroid/view/SearchEvent;)Z D/dalvikvm: VFY: replacing opcode 0x72 at 0x0002 I/dalvikvm: Could not find method android.view.Window$Callback.onWindowStartingActionMode, referenced from method android.support.v7.view.WindowCallbackWrapper.onWindowStartingActionMode W/dalvikvm: VFY: unable to resolve interface method 16556: Landroid/view/Window$Callback;.onWindowStartingActionMode (Landroid/view/ActionMode$Callback;I)Landroid/view/ActionMode; D/dalvikvm: VFY: replacing opcode 0x72 at 0x0002 I/dalvikvm: Could not find method android.content.res.TypedArray.getChangingConfigurations, referenced from method android.support.v7.widget.TintTypedArray.getChangingConfigurations W/dalvikvm: VFY: unable to resolve virtual method 747: Landroid/content/res/TypedArray;.getChangingConfigurations ()I D/dalvikvm: VFY: replacing opcode 0x6e at 0x0002 I/dalvikvm: Could not find method android.content.res.TypedArray.getType, referenced from method android.support.v7.widget.TintTypedArray.getType W/dalvikvm: VFY: unable to resolve virtual method 769: Landroid/content/res/TypedArray;.getType (I)I D/dalvikvm: VFY: replacing opcode 0x6e at 0x0008 I/dalvikvm: Could not find method android.content.res.Resources.getDrawable, referenced from method android.support.v7.widget.ResourcesWrapper.getDrawable W/dalvikvm: VFY: unable to resolve virtual method 710: Landroid/content/res/Resources;.getDrawable (ILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable; D/dalvikvm: VFY: replacing opcode 0x6e at 0x0002 I/dalvikvm: Could not find method android.content.res.Resources.getDrawableForDensity, referenced from method android.support.v7.widget.ResourcesWrapper.getDrawableForDensity W/dalvikvm: VFY: unable to resolve virtual method 712: Landroid/content/res/Resources;.getDrawableForDensity (IILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable; D/dalvikvm: VFY: replacing opcode 0x6e at 0x0002 E/dalvikvm: Could not find class 'android.graphics.drawable.RippleDrawable', referenced from method android.support.v7.widget.AppCompatImageHelper.hasOverlappingRendering W/dalvikvm: VFY: unable to resolve instanceof 158 (Landroid/graphics/drawable/RippleDrawable;) in Landroid/support/v7/widget/AppCompatImageHelper; D/dalvikvm: VFY: replacing opcode 0x20 at 0x000c I/dalvikvm: Could not find method android.content.Context.getColorStateList, referenced from method android.support.v7.content.res.AppCompatResources.getColorStateList W/dalvikvm: VFY: unable to resolve virtual method 470: Landroid/content/Context;.getColorStateList (I)Landroid/content/res/ColorStateList; D/dalvikvm: VFY: replacing opcode 0x6e at 0x0006 ``` 4.调用安装方法后也出现了错误 ``` private void installAPK(File file) { //系统应用界面,源码,安装apk入口 Intent intent = new Intent(Intent.ACTION_VIEW); intent.addCategory("android.intent.category.DEFAULT"); //文件作为数据源 intent.setData(Uri.fromFile(file)); //设置安装类型 intent.setType("application/vnd.android.package-archive"); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); /* 也可以用下面代码一行完成 intent.setDataAndType(Uri.fromFile(file),"application/vnd.android.package-archive"); */ try{ startActivityForResult(intent, 0); }catch (Exception e){ e.printStackTrace(); } } ``` 问题如下: ``` D/dalvikvm: GC_FOR_ALLOC freed 422K, 2% free 36957K/37436K, paused 3ms, total 3ms W/System.err: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW cat=[android.intent.category.DEFAULT] typ=application/vnd.android.package-archive flg=0x10000000 } W/System.err: at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1632) W/System.err: at android.app.Instrumentation.execStartActivity(Instrumentation.java:1424) W/System.err: at android.app.Activity.startActivityForResult(Activity.java:3424) W/System.err: at android.app.Activity.startActivityForResult(Activity.java:3385) W/System.err: at com.gao.mysafe.SplashActivity.installAPK(SplashActivity.java:338) W/System.err: at com.gao.mysafe.SplashActivity.access$500(SplashActivity.java:30) W/System.err: at com.gao.mysafe.SplashActivity$6.onSuccess(SplashActivity.java:280) W/System.err: at com.gao.mysafe.SplashActivity$6.onSuccess(SplashActivity.java:275) W/System.err: at org.xutils.http.HttpTask.onSuccess(HttpTask.java:447) W/System.err: at org.xutils.common.task.TaskProxy$InternalHandler.handleMessage(TaskProxy.java:198) W/System.err: at android.os.Handler.dispatchMessage(Handler.java:102) W/System.err: at android.os.Looper.loop(Looper.java:136) W/System.err: at android.app.ActivityThread.main(ActivityThread.java:5017) W/System.err: at java.lang.reflect.Method.invokeNative(Native Method) W/System.err: at java.lang.reflect.Method.invoke(Method.java:515) W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) W/System.err: at dalvik.system.NativeStart.main(Native Method) ``` 弄了半天不知道是什么问题,在真机上也不好使,安装不上,求大神解答一下,谢谢了!!
源码在as上面编译没有错误,但是在手机上运行app闪退。
源码应该是在eclipse上进行开发的,我现在将源码导入到了Android Studio里面。编译没有错误了,在模拟器或者自己的手机上可以生成apk安装成功,但是打开就闪退。 小白求指导。 ![图片说明](https://img-ask.csdn.net/upload/201803/23/1521790726_154789.png)
Android源码Gallery和Camera的Eclipse导入的资源问题
**问题:如何在代码中使用项目gen下的ID,而不是jar包中的R$String.class的ID?** 参考以下资料编译生成APK运行异常: [导入Android4.2源码里的Gallery2和Camera模块至Eclipse全过程](http://blog.csdn.net/yanzi1225627/article/details/11408151 "") [导入MTK_Android5.1源码里的Gallery2和Camera模块至Eclipse全过程 ](http://blog.csdn.net/u013335025/article/details/47720821 "") 根据logcat,是**找不到字符资源**: 11-18 18:14:50.980: E/AndroidRuntime(10106): java.lang.RuntimeException: Unable to create application com.android.gallery3d.app.GalleryAppImpl: android.content.res.Resources$NotFoundException: String resource ID #0x7f0c015e 注:调换jar包顺序后,问题未解决。 查看**资源引用的地方**(不是jar包里面的代码),其ID是引入jar中R$String.class的ID: ![字符资源引用的地方及ID显示](https://img-ask.csdn.net/upload/201611/19/1479524924_469263.png) **R$String.class的ID**: ![jar包ID](https://img-ask.csdn.net/upload/201611/19/1479524983_758725.png) **而eclipse项目中资源生成的ID**(R.java)如图: ![gen下生成的ID](https://img-ask.csdn.net/upload/201611/19/1479525299_703306.png) **问题:如何在代码中使用项目gen下的ID,而不是jar包中的R$String.class的ID?**
Android项目运行后在虚拟器加载失败的问题
跟着《第一行代码》里的那个天气app敲的代码,敲了一部分,运行项目时在虚拟器中加载失败,代码应该没有什么问题,也没什么错误提示: [2015-08-11 10:41:35 - CoolWeather] Android Launch! [2015-08-11 10:41:35 - CoolWeather] adb is running normally. [2015-08-11 10:41:35 - CoolWeather] Performing com.coolweather.app.activity.ChooseAreaActivity activity launch [2015-08-11 10:41:38 - CoolWeather] Automatic Target Mode: using existing emulator 'emulator-5554' running compatible AVD '4.0.3' [2015-08-11 10:41:38 - CoolWeather] Uploading CoolWeather.apk onto device 'emulator-5554' [2015-08-11 10:41:38 - CoolWeather] Installing CoolWeather.apk... [2015-08-11 10:41:52 - CoolWeather] Success! [2015-08-11 10:41:52 - CoolWeather] Starting activity com.coolweather.app.activity.ChooseAreaActivity on device emulator-5554 [2015-08-11 10:41:53 - CoolWeather] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.coolweather.app/.activity.ChooseAreaActivity } 新手,各位前辈能帮我解答下吗,感激不尽。 补充,源码github地址:https://github.com/wang1076554677/QingFengWeather
android 源码编译出现的错误
xxxxx@compiler:~/xxxx/0313-test-1/0313/packages/xxxx/myTV$ mm -B ============================================ PLATFORM_VERSION_CODENAME=REL PLATFORM_VERSION=4.4.2 TARGET_PRODUCT=m201 TARGET_BUILD_VARIANT=user TARGET_BUILD_TYPE=release TARGET_BUILD_APPS= TARGET_ARCH=arm TARGET_ARCH_VARIANT=armv7-a-neon TARGET_CPU_VARIANT=cortex-a9 HOST_ARCH=x86 HOST_OS=linux HOST_OS_EXTRA=Linux-3.2.0-86-generic-x86_64-with-Ubuntu-12.04-precise HOST_BUILD_TYPE=release BUILD_ID=KOT49H OUT_DIR=out ============================================ PRODUCT_COPY_FILES device/xxxx/m201/audio_effects.conf:system/etc/audio_effects.conf ignored. PRODUCT_COPY_FILES device/xxxx/m201/lowmemorykiller.txt:/system/etc/lowmemorykiller.txt ignored. PRODUCT_COPY_FILES device/xxxx/m201/lowmemorykiller_512M.txt:/system/etc/lowmemorykiller_512M.txt ignored. No private recovery resources for TARGET_DEVICE m201 make: Entering directory `/mnt/commondata/user/aliontuo/xxxx/0313-test-1/0313' target R.java/Manifest.java: myTV (out/target/common/obj/APPS/myTV_intermediates/src/R.stamp) Warning: AndroidManifest.xml already defines versionCode (in http://schemas.android.com/apk/res/android); using existing value in manifest. Warning: AndroidManifest.xml already defines versionName (in http://schemas.android.com/apk/res/android); using existing value in manifest. Warning: AndroidManifest.xml already defines minSdkVersion (in http://schemas.android.com/apk/res/android); using existing value in manifest. Warning: AndroidManifest.xml already defines targetSdkVersion (in http://schemas.android.com/apk/res/android); using existing value in manifest. target Prebuilt: myTV (out/target/common/obj/JAVA_LIBRARIES/libgson-2.2.4_intermediates/classes.jar) target Prebuilt: myTV (out/target/common/obj/JAVA_LIBRARIES/libgson-2.2.4_intermediates/javalib.jar) target Prebuilt: myTV (out/target/common/obj/JAVA_LIBRARIES/libotaupdate_intermediates/classes.jar) target Prebuilt: myTV (out/target/common/obj/JAVA_LIBRARIES/libotaupdate_intermediates/javalib.jar) target Prebuilt: myTV (out/target/common/obj/JAVA_LIBRARIES/libactivemq-broker-5.12.0_intermediates/classes.jar) target Prebuilt: myTV (out/target/common/obj/JAVA_LIBRARIES/libactivemq-broker-5.12.0_intermediates/javalib.jar) target Prebuilt: myTV (out/target/common/obj/JAVA_LIBRARIES/libactivemq-client-5.12.0_intermediates/classes.jar) target Prebuilt: myTV (out/target/common/obj/JAVA_LIBRARIES/libactivemq-client-5.12.0_intermediates/javalib.jar) target Prebuilt: myTV (out/target/common/obj/JAVA_LIBRARIES/libactivemq-console-5.12.0_intermediates/classes.jar) target Prebuilt: myTV (out/target/common/obj/JAVA_LIBRARIES/libactivemq-console-5.12.0_intermediates/javalib.jar) target Prebuilt: myTV (out/target/common/obj/JAVA_LIBRARIES/libactivemq-jaas-5.12.0_intermediates/classes.jar) target Prebuilt: myTV (out/target/common/obj/JAVA_LIBRARIES/libactivemq-jaas-5.12.0_intermediates/javalib.jar) target Prebuilt: myTV (out/target/common/obj/JAVA_LIBRARIES/libactivemq-kahadb-store-5.12.0_intermediates/classes.jar) target Prebuilt: myTV (out/target/common/obj/JAVA_LIBRARIES/libactivemq-kahadb-store-5.12.0_intermediates/javalib.jar) target Prebuilt: myTV (out/target/common/obj/JAVA_LIBRARIES/libactivemq-openwire-legacy-5.12.0_intermediates/classes.jar) target Prebuilt: myTV (out/target/common/obj/JAVA_LIBRARIES/libactivemq-openwire-legacy-5.12.0_intermediates/javalib.jar) target Prebuilt: myTV (out/target/common/obj/JAVA_LIBRARIES/libactivemq-protobuf-1.1_intermediates/classes.jar) target Prebuilt: myTV (out/target/common/obj/JAVA_LIBRARIES/libactivemq-protobuf-1.1_intermediates/javalib.jar) target Prebuilt: myTV (out/target/common/obj/JAVA_LIBRARIES/libactivemq-spring-5.12.0_intermediates/classes.jar) target Prebuilt: myTV (out/target/common/obj/JAVA_LIBRARIES/libactivemq-spring-5.12.0_intermediates/javalib.jar) target Prebuilt: myTV (out/target/common/obj/JAVA_LIBRARIES/libactivemq-web-5.12.0_intermediates/classes.jar) target Prebuilt: myTV (out/target/common/obj/JAVA_LIBRARIES/libactivemq-web-5.12.0_intermediates/javalib.jar) target Prebuilt: myTV (out/target/common/obj/JAVA_LIBRARIES/libgeronimo-j2ee-management_1.1_spec-1.0.1_intermediates/classes.jar) target Prebuilt: myTV (out/target/common/obj/JAVA_LIBRARIES/libgeronimo-j2ee-management_1.1_spec-1.0.1_intermediates/javalib.jar) target Prebuilt: myTV (out/target/common/obj/JAVA_LIBRARIES/libgeronimo-jms_1.1_spec-1.1.1_intermediates/classes.jar) target Prebuilt: myTV (out/target/common/obj/JAVA_LIBRARIES/libgeronimo-jms_1.1_spec-1.1.1_intermediates/javalib.jar) target Prebuilt: myTV (out/target/common/obj/JAVA_LIBRARIES/libgeronimo-jta_1.0.1B_spec-1.0.1_intermediates/classes.jar) target Prebuilt: myTV (out/target/common/obj/JAVA_LIBRARIES/libgeronimo-jta_1.0.1B_spec-1.0.1_intermediates/javalib.jar) target Prebuilt: myTV (out/target/common/obj/JAVA_LIBRARIES/libhawtbuf-1.11_intermediates/classes.jar) target Prebuilt: myTV (out/target/common/obj/JAVA_LIBRARIES/libhawtbuf-1.11_intermediates/javalib.jar) target Prebuilt: myTV (out/target/common/obj/JAVA_LIBRARIES/libjcl-over-slf4j-1.7.10_intermediates/classes.jar) target Prebuilt: myTV (out/target/common/obj/JAVA_LIBRARIES/libjcl-over-slf4j-1.7.10_intermediates/javalib.jar) target Prebuilt: myTV (out/target/common/obj/JAVA_LIBRARIES/libslf4j-api-1.7.10_intermediates/classes.jar) target Prebuilt: myTV (out/target/common/obj/JAVA_LIBRARIES/libslf4j-api-1.7.10_intermediates/javalib.jar) target Java: myTV (out/target/common/obj/APPS/myTV_intermediates/classes) Note: packages/amlogic/myTV/src/com/justek/mytv/entity/FileSelector.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. Copying: out/target/common/obj/APPS/myTV_intermediates/classes-jarjar.jar Copying: out/target/common/obj/APPS/myTV_intermediates/emma_out/lib/classes-jarjar.jar Copying: out/target/common/obj/APPS/myTV_intermediates/classes.jar Copying: out/target/common/obj/APPS/myTV_intermediates/noproguard.classes.jar target Dex: myTV trouble processing "javax/transaction/Transaction.class": Ill-advised or mistaken usage of a core class (java.* or javax.*) when not building a core library. This is often due to inadvertently including a core library file in your application's project, when using an IDE (such as Eclipse). If you are sure you're not intentionally defining a core class, then this is the most likely explanation of what's going on. However, you might actually be trying to define a class in a core namespace, the source of which you may have taken, for example, from a non-Android virtual machine project. This will most assuredly not work. At a minimum, it jeopardizes the compatibility of your app with future versions of the platform. It is also often of questionable legality. If you really intend to build a core library -- which is only appropriate as part of creating a full virtual machine distribution, as opposed to compiling an application -- then use the "--core-library" option to suppress this error message. If you go ahead and use "--core-library" but are in fact building an application, then be forewarned that your application will still fail to build or run, at some point. Please be prepared for angry customers who find, for example, that your application ceases to function once they upgrade their operating system. You will be to blame for this problem. If you are legitimately using some code that happens to be in a core package, then the easiest safe alternative you have is to repackage that code. That is, move the classes in question into your own package namespace. This means that they will never be in conflict with core system classes. JarJar is a tool that may help you in this endeavor. If you find that you cannot do this, then that is an indication that the path you are on will ultimately lead to pain, suffering, grief, and lamentation. 1 error; aborting make: *** [out/target/common/obj/APPS/myTV_intermediates/classes-with-local.dex] Error 1 make: Leaving directory `/mnt/commondata/user/aliontuo/xxxx/0313-test-1/0313' 这个是因为我引入的jar包的什么原因导致的,是否这些包有冲突? 求大神帮忙看看啊
【新手求救】关于Android Studio修改应用id的问题
之前无聊写过一个Android 的app已经签名发布打包成apk,但是源码再电脑上还有。然后最近一个需求写一个app和之前的差不多,我想直接改一下,拿过来用,但是程序的id 想改一下,按照网上的教程如下: ![图片说明](https://img-ask.csdn.net/upload/201908/30/1567133571_526342.png) 但是这样改完之后再run task的时候报错error: attribute 'package' in <manifest> tag is not a valid Android package name: 这个怎么整啊,求个位大佬指教
android shell出错
最近在修改2.3源码中的app,目的是想把模拟器上原生的Calculator、Camera、DeskClock等这些应用都卸载掉,然后安装我修改过后的这部分app,可是在删除模拟器上那几个app的时候遇到了问题,详细如下: <br /> <br />执行adb shell 如下: <br />C:\Users\gx_ou&gt;adb remount <br />remount succeeded <br /> <br />C:\Users\gx_ou&gt;adb shell <br /># cd system/app <br />cd system/app <br /># rm -r Calculator.apk <br />rm -r Calculator.apk <br />rm failed for Calculator.apk, Directory not empty <br /># <br />提示删除Calculator.apk失败了,目录非空,然后在adb下执行uninstall com.android.calculator2得到Failure的提示。 <br /> <br />请问有人遇到过这样的问题或类似情况的么? <br /><br/><strong>问题补充</strong><br/>没人知道原因么? 自己先顶顶吧,哎...
第三方应用查看其它应用程序运行时间
自己写的项目要查看其它应用程序的运行时间 会用到com.android.internal.app.IUsageStats$Stub这个,但是google规定的不让sdk直接用,如果在源码环境下使用这个类的话应该如何去做呢?我有编译好的源码,如何用在自己的项目里呢?如何打成apk呢?
关于android用aar的问题,求各路大佬帮忙
我用AS写了一个app,想放到android系统源码里面以前编译,app里用到一些aar,但是我怎么都试不出正确的方法可以在android.mk文件里添加进去。求各路大佬支支招~~~ 平台是:a31s android版本是:4.4 下面是我的Android.mk: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE_TAGS := optional LOCAL_STATIC_JAVA_AAR_LIBRARIES := appcompat-v7-26 LOCAL_SRC_FILES := $(call all-subdir-java-files) LOCAL_SDK_VERSION := current LOCAL_PACKAGE_NAME := SensorGeter include $(BUILD_PACKAGE) ################################################## include $(CLEAR_VARS) LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := appcompat-v7-26:libs/appcompat-v7-26.0.0-alpha1.aar LOCAL_AAPT_FLAG := \ --auto-add-overlay \ --extra-package android.support.v7.app include $(BUILD_MULTI_PREBUILT) # Use the folloing include to make our test apk. include $(call all-makefiles-under,$(LOCAL_PATH)) 编译一直都出错:软件包 android.support.v7.app 不存在
android安装包安装后打开闪退
apk安装之后闪退,求解,源码如下: MainActivity.java文件: package com.example.c; import android.app.Activity; import android.os.Bundle; import android.view.ViewGroup.LayoutParams; import android.widget.ImageView; import android.widget.LinearLayout; public class MainActivity extends Activity { private ImageView[] img=new ImageView[4]; private int[] imagePath=new int[]{ R.drawable.img01,R.drawable.img02,R.drawable.img03,R.drawable.img04 }; @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); LinearLayout layout=(LinearLayout)findViewById(R.id.layout); for(int i=0;i<imagePath.length;i++){ img[i]=new ImageView(this); img[i].setImageResource(imagePath[i]); img[i].setPadding(5, 5, 5, 5); LayoutParams params=new LayoutParams(253,148); img[i].setLayoutParams(params); layout.addView(img[i]); } } }
关于eclipse安卓开发遇到的奇怪问题
安卓程序我不写按钮监听事件就可以正常运行显示界面 但只要我一写按钮监听事件 再运行软件就会闪退 为什么? 以下是MainActivity的代码: package com.example.xingkongkaohe; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button=(Button)findViewById(R.id.btn_denglu); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub Toast.makeText(MainActivity.this, "已按按钮", Toast.LENGTH_SHORT); } }); 以下是manifest的源码: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.xingkongkaohe" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="19" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
android下载文件打不开
我用mars老师的源码, ``` /** * 该函数返回整形 -1:代表下载文件出错 0:代表下载文件成功 1:代表文件已经存在 */ public int downFile(String urlStr, String path, String fileName) { InputStream inputStream = null; try { FileUtils fileUtils = new FileUtils(); if (fileUtils.isFileExist(path + fileName)) { return 1; } else { inputStream = getInputStreamFromUrl(urlStr); File resultFile = fileUtils.write2SDFromInput(path,fileName, inputStream); if (resultFile == null) { return -1; } } } catch (Exception e) { e.printStackTrace(); return -1; } finally { try { inputStream.close(); } catch (Exception e) { e.printStackTrace(); } } return 0; } ``` 返回0,成功下载了,而且目录下看到有文件,但是打开显示解析程序包时出现问题,到底怎么回事 ``` new Thread(new Runnable() { @Override public void run() { HttpDownloader httpDownloader = new HttpDownloader(); int result = httpDownloader.downFile("http://xxxxx.apk", "aaaaaaaa/", "xxxxx.apk");//部分省略 System.out.println(result); } }).start(); ``` logcat 02-29 11:12:40.025 8803-8803/com.android.packageinstaller D/asset: failed to open Zip archive '/storage/emulated/0/aaaaaaaa/xxxxx.apk' 02-29 11:12:40.061 8803-8803/com.android.packageinstaller W/PackageInstaller: Parse error when parsing manifest. Discontinuing installation 02-29 11:12:40.061 8803-8803/com.android.packageinstaller W/PackageParser: Unable to read AndroidManifest.xml of /storage/emulated/0/aaaaaaaa/xxxxx.apk 02-29 11:12:40.061 8803-8803/com.android.packageinstaller W/PackageParser: java.io.FileNotFoundException: AndroidManifest.xml 02-29 11:12:40.061 8803-8803/com.android.packageinstaller W/PackageParser: at android.content.res.AssetManager.openXmlAssetNative(Native Method) 02-29 11:12:40.061 8803-8803/com.android.packageinstaller W/PackageParser: at android.content.res.AssetManager.openXmlBlockAsset(AssetManager.java:488) 02-29 11:12:40.061 8803-8803/com.android.packageinstaller W/PackageParser: at android.content.res.AssetManager.openXmlResourceParser(AssetManager.java:456) 02-29 11:12:40.061 8803-8803/com.android.packageinstaller W/PackageParser: at android.content.pm.PackageParser.parsePackage(PackageParser.java:528) 02-29 11:12:40.061 8803-8803/com.android.packageinstaller W/PackageParser: at com.android.packageinstaller.PackageUtil.getPackageInfo(PackageUtil.java:73) 02-29 11:12:40.061 8803-8803/com.android.packageinstaller W/PackageParser: at com.android.packageinstaller.PackageInstallerActivity.onCreate(PackageInstallerActivity.java:465) 02-29 11:12:40.061 8803-8803/com.android.packageinstaller W/PackageParser: at android.app.Activity.performCreate(Activity.java:5231) 02-29 11:12:40.061 8803-8803/com.android.packageinstaller W/PackageParser: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 02-29 11:12:40.061 8803-8803/com.android.packageinstaller W/PackageParser: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148) 02-29 11:12:40.061 8803-8803/com.android.packageinstaller W/PackageParser: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) 02-29 11:12:40.061 8803-8803/com.android.packageinstaller W/PackageParser: at android.app.ActivityThread.access$800(ActivityThread.java:135) 02-29 11:12:40.061 8803-8803/com.android.packageinstaller W/PackageParser: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 02-29 11:12:40.061 8803-8803/com.android.packageinstaller W/PackageParser: at android.os.Handler.dispatchMessage(Handler.java:102) 02-29 11:12:40.061 8803-8803/com.android.packageinstaller W/PackageParser: at android.os.Looper.loop(Looper.java:136) 02-29 11:12:40.061 8803-8803/com.android.packageinstaller W/PackageParser: at android.app.ActivityThread.main(ActivityThread.java:5001) 02-29 11:12:40.061 8803-8803/com.android.packageinstaller W/PackageParser: at java.lang.reflect.Method.invokeNative(Native Method) 02-29 11:12:40.061 8803-8803/com.android.packageinstaller W/PackageParser: at java.lang.reflect.Method.invoke(Method.java:515) 02-29 11:12:40.061 8803-8803/com.android.packageinstaller W/PackageParser: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 02-29 11:12:40.061 8803-8803/com.android.packageinstaller W/PackageParser: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 02-29 11:12:40.061 8803-8803/com.android.packageinstaller W/PackageParser: at dalvik.system.NativeStart.main(Native Method)
android studio中AndroidManifest出错
Manifest。xml源码如下: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.administrator.myapplication" > <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> <!-- The ACCESS_COARSE/FINE_LOCATION permissions are not required to use Google Maps Android API v2, but are recommended. --> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.administrator.myapplication.MainActivity" android:label="@string/title_activity_main" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".MainActivity2Activity" android:label="MainActivity2Activity" > </activity> 下面略过五六个activity,都是同样的报错。 Android name那里error报的是"class"or"interface"expected 尝试过全称,可是依然是如上报错的。 想过重新创建项目再来一遍,可是打开软件就报错。。。QAQ 求各位大神,这是什么错误,该怎么解决呢?【最开始是因为一个改变了一个activity成了class,选择删除了那个activity注册的代码,结果。。。就出了以上的错误
android run Calculator报错
如题,我在eclipse下一次导入源码中的Calculator、Calendar、CameraOpen、DeskClock等工程,右键项目Run as - Android Application,能正常启动模拟器(2.3的),但是在控制台下显示报错,提示: <br />[2012-03-07 14:17:17 - DeskClock] HOME is up on device 'emulator-5554' <br />[2012-03-07 14:17:17 - DeskClock] Uploading DeskClock.apk onto device 'emulator-5554' <br />[2012-03-07 14:17:24 - DeskClock] Installing DeskClock.apk... <br />[2012-03-07 14:17:43 - DeskClock] Re-installation failed due to different application signatures. <br />[2012-03-07 14:17:43 - DeskClock] You must perform a full uninstall of the application. WARNING: This will remove the application data! <br />[2012-03-07 14:17:43 - DeskClock] Please execute 'adb uninstall com.android.deskclock' in a shell. <br />[2012-03-07 14:17:43 - DeskClock] Launch canceled! <br /> <br />尝试解决:根据错误提示,说是这个Calculator已经存在,需要删除?&nbsp; 于是我在dos下进入sdb目录下,一次执行如下命令: <br />adb remount -- remount succeeded <br />adb shell rm system/app/Calculator.apk -- rm failed for system/app/DeskClock.apk, Directory not empty <br />adb uninstall com.android.deskclock -- Failure <br /> <br />求解释,求答案... <br/><strong>问题补充</strong><br/>回复楼上的,你看清楚我写的是源码中的应用,不是SDK中的APIDemo,并且是模拟器系统自带的Camera、Calculator这些应用,你手动能删掉?<br/><strong>问题补充</strong><br/>回复楼上,我现在就是删不掉模拟器上的原生APK,你看我用root删依然删不掉,是什么原因呢?
Android空指针问题,该实例化的都实例化了额。。。
求大神帮忙运行一下,分析一下原因,我后面把书里的源码也拉来试了一下,还是报空指针。感觉似乎是Cursor的原因,求大神指点!谢谢!! ``` package com.example.marcus.groupsend; import android.app.Activity; import android.app.PendingIntent; import android.content.DialogInterface; import android.content.Intent; import android.database.Cursor; import android.provider.ContactsContract; import android.support.v7.app.AlertDialog; import android.os.Bundle; import android.telephony.SmsManager; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.ListView; import android.widget.Toast; import java.util.ArrayList; public class MainActivity extends Activity { Button select,send; EditText numbers,content; SmsManager smsManager; ArrayList<String> phoneNumbers = new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); numbers = (EditText) findViewById(R.id.numbers); content = (EditText) findViewById(R.id.content); smsManager = SmsManager.getDefault(); send = (Button) findViewById(R.id.send); select = (Button) findViewById(R.id.select); //发送信息 send.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { PendingIntent pi = PendingIntent.getActivity(MainActivity.this,0,new Intent(),0); for (String number : phoneNumbers){ smsManager.sendTextMessage(number,null,content.getText().toString(),pi,null); } Toast.makeText(MainActivity.this,"群发成功!",Toast.LENGTH_SHORT).show(); } }); //选择群发号码,采用复选框方式 select.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //获取到系统联系人 final Cursor cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null); BaseAdapter adapter = new BaseAdapter() { @Override public int getCount() { return cursor.getCount(); } @Override public Object getItem(int position) { return position; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { cursor.moveToPosition(position); //使用复选框 CheckBox checkBox = new CheckBox(MainActivity.this); //获取当前位置选中的号码,并去掉空格和-,然后加入到checkBox中 String number = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)) .replace("-","") .replace(" ",""); checkBox.setText(number); if (isChecked(number)){ checkBox.setChecked(true); } //返还一个复选框视图 return checkBox; } }; View selectView = getLayoutInflater().inflate(R.layout.list,null); final ListView list = (ListView) selectView.findViewById(R.id.list); list.setAdapter(adapter); //利用对话框来加载View,View中是一个复选框列表 new AlertDialog.Builder(MainActivity.this).setView(selectView). setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //先将phoneNumbers里面清空 phoneNumbers.clear(); //遍历list里面的各个条目,如果是打勾的就加到这个phoneNumbers列表里 for (int i=0; i<list.getCount(); i++){ CheckBox check = (CheckBox)list.getChildAt(i); if (check.isChecked()){ phoneNumbers.add(check.getText().toString()); } } //最终全部加到这个列表中,并在send里遍历各个号码,然后实现群发功能 numbers.setText(phoneNumbers.toString()); } }).show(); } }); } //判断某个号码是否在群发范围内 public boolean isChecked(String number) { for (String s : phoneNumbers){ if (s.equals(number)){ return true; } } return false; } } ``` 以下是我的两个xml文件 ## main.xml ``` <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content"> <EditText android:id="@+id/numbers" android:layout_weight="8" android:layout_width="0dp" android:layout_height="wrap_content" /> <Button android:id="@+id/select" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="select"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <EditText android:id="@+id/content" android:layout_weight="8" android:layout_width="0dp" android:layout_height="wrap_content" /> <Button android:id="@+id/send" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="send"/> </LinearLayout> </LinearLayout> ``` ## list.xml ``` <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <ListView android:id="@+id/list" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout> ```
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
有哪些让程序员受益终生的建议
从业五年多,辗转两个大厂,出过书,创过业,从技术小白成长为基层管理,联合几个业内大牛回答下这个问题,希望能帮到大家,记得帮我点赞哦。 敲黑板!!!读了这篇文章,你将知道如何才能进大厂,如何实现财务自由,如何在工作中游刃有余,这篇文章很长,但绝对是精品,记得帮我点赞哦!!!! 一腔肺腑之言,能看进去多少,就看你自己了!!! 目录: 在校生篇: 为什么要尽量进大厂? 如何选择语言及方...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小型人工智障。 知识可以运用在不同地方,不一定非是天气预报。
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
英特尔不为人知的 B 面
从 PC 时代至今,众人只知在 CPU、GPU、XPU、制程、工艺等战场中,英特尔在与同行硬件芯片制造商们的竞争中杀出重围,且在不断的成长进化中,成为全球知名的半导体公司。殊不知,在「刚硬」的背后,英特尔「柔性」的软件早已经做到了全方位的支持与支撑,并持续发挥独特的生态价值,推动产业合作共赢。 而对于这一不知人知的 B 面,很多人将其称之为英特尔隐形的翅膀,虽低调,但是影响力却不容小觑。 那么,在...
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看...
白话阿里巴巴Java开发手册高级篇
不久前,阿里巴巴发布了《阿里巴巴Java开发手册》,总结了阿里巴巴内部实际项目开发过程中开发人员应该遵守的研发流程规范,这些流程规范在一定程度上能够保证最终的项目交付质量,通过在时间中总结模式,并推广给广大开发人员,来避免研发人员在实践中容易犯的错误,确保最终在大规模协作的项目中达成既定目标。 无独有偶,笔者去年在公司里负责升级和制定研发流程、设计模板、设计标准、代码标准等规范,并在实际工作中进行...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
redis分布式锁,面试官请随便问,我都会
文章有点长并且绕,先来个图片缓冲下! 前言 现在的业务场景越来越复杂,使用的架构也就越来越复杂,分布式、高并发已经是业务要求的常态。像腾讯系的不少服务,还有CDN优化、异地多备份等处理。 说到分布式,就必然涉及到分布式锁的概念,如何保证不同机器不同线程的分布式锁同步呢? 实现要点 互斥性,同一时刻,智能有一个客户端持有锁。 防止死锁发生,如果持有锁的客户端崩溃没有主动释放锁,也要保证锁可以正常释...
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
Nginx 原理和架构
Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器。Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。 Nginx 的整体架构 Nginx 里有一个 master 进程和多个 worker 进程。master 进程并不处理网络请求,主要负责调度工作进程:加载配置、启动工作进程及非停升级。worker 进程负责处...
Python 编程开发 实用经验和技巧
Python是一门很灵活的语言,也有很多实用的方法,有时候实现一个功能可以用多种方法实现,我这里总结了一些常用的方法和技巧,包括小数保留指定位小数、判断变量的数据类型、类方法@classmethod、制表符中文对齐、遍历字典、datetime.timedelta的使用等,会持续更新......
YouTube排名第一的励志英文演讲《Dream(梦想)》
Idon’t know what that dream is that you have, I don't care how disappointing it might have been as you've been working toward that dream,but that dream that you’re holding in your mind, that it’s po...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
Java世界最常用的工具类库
Apache Commons Apache Commons有很多子项目 Google Guava 参考博客
相关热词 c# 图片上传 c# gdi 占用内存 c#中遍历字典 c#控制台模拟dos c# 斜率 最小二乘法 c#进程延迟 c# mysql完整项目 c# grid 总行数 c# web浏览器插件 c# xml 生成xsd
立即提问