精华内容
下载资源
问答
  • APK文件修改工具,无需安装JAVA等环境,直接运行修改apk文件,自动编译,签名。修改替换apk包内文件,图片等内容,操作简单方便。
  • 在react native开发中使用的工具,由于谷歌play下载访问受限,特在此提供最新的expo Exponent 2.14.0 apk安装包,Expo SDK 版本 36.0.0, React Native 版本 0.61.4
  • 安卓apk安装包

    2014-03-19 11:31:32
    适用于安卓系统蓝牙连接,安卓包,,适用于安卓系统2.1以上的手机
  • Expo 安卓apk安装包(调试React Native),Expo CLI使您可以轻松地在物理设备上运行React Native应用程序,而无需设置开发环境。如果您想在iOS模拟器或Android虚拟设备上运行您的应用程序,请参阅使用本机代码构建...
  • apk安装包文件管理app让你可快捷的管理手机里有意或无意下载的各种安装包。软件介绍apk安装包文件管理app是一款非常好用的手机在线文件管理工具,apk安装包文件管理app快速在线为大家带来了优质的文件管理,apk...

    apk安装包文件管理app是一款实用系统应用,apk安装包文件管理app是个小巧好用的手机内安装包管理工具。apk安装包文件管理app让你可快捷的管理手机里有意或无意下载的各种安装包。

    软件介绍

    apk安装包文件管理app是一款非常好用的手机在线文件管理工具,apk安装包文件管理app快速在线为大家带来了优质的文件管理,apk安装包文件管理app使用非常的便捷。

    7d234e6d6bbdb6845a5a6a363f80e35f.png

    软件亮点

    1、界面清爽简洁,操作很方便,可以快速管理应用;

    2、支持安装包大小、签名以及包名和更新时间等查看;

    3、还能一键复制你所需要的数据,小巧好用,无需root。

    软件优势

    1可以提取应用的APK安装包(包括系统自带的应用)到手机的内存卡,

    2同时可以对提取的APK安装包进行安装,分享和删除。

    3还可以将apk安装包导出到本地目录,也可以一键去市场更新最新版本

    软件功能

    支持将对应APP外置存储中的Data, Obb数据一并打包成zip格式压缩文件(主要针对部分含有Data, Obb数据的游戏应用) 。同时支持将包含Data, Obb数据的zip格式压缩包导入到设备。本应用支持导出和导入的包含data, obb数据的压缩包内容为:

    Android/data/

    Android/obb/

    *.a pk

    通过本应用的分享功能, 可以将APP或者安装包分享给对方。本应用的局域网分享功能同时支持分享本地外置存储中的任何一个文件,通过文件管理器或其他应用分享时选择本应用即可直接发送给对方,接收端接收到的文件将会保存至导出路径。

    软件特色

    1、一键搜索安装包,还可以进行时间和包名以及路径等显示。

    2、批量的管理你的安装包,一次性的移动APK到你制定的文件夹;

    3、可以一键安装也可以一键清理你的安装包文件;

    展开全文
  • apkUtil是一个用来解析apk安装包的工具,通过它可以获取一个安装包的图标、程序名、所需android平台,权限等信息,并将其转换为java对象。 该工具依赖于aapt工具,目前仅支持在windows平台上运行。 程序在运行时,...
  • RN项目的Android APK安装包,可以供用户看看RN应用的效果,用来比对原生安卓应用的效果,选择合适的技术开发Android apk
  • 设置android 环境变量如图所示 打开Cmd输入以下指令1:cdC:\Program Files\Java\jdk1.7.0_13\bin2:keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore3:输入密钥...

    设置android 环境变量

    如图所示 打开Cmd输入以下指令

    1:cd C:\Program Files\Java\jdk1.7.0_13\bin

    2:keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore

    3:输入密钥口令(因为是密文,不要以为键盘没反应, 例如输入111111后直接回车) 其他信息依照提示输入。结束按Y

    会生成C:\Program Files\Java\jdk1.7.0_13\bin\android.keystore文件

    6af9d84eda1d78db1d0f3a0cf94e5f1d.png

    4:右键工程android tool-》export signed application package

    6229587ded0153723730b86fa5416410.png

    输入C:\Program Files\Java\jdk1.7.0_13\bin\android.keystore和密钥

    3a62e439b214775d45344d77e1199c59.png

    7c6e346c8624262e12a556f38c757e58.png

    5:如下图所见产生新的SHA1,替换百度控制台的的SHA1 打包以后的百度地图开发  生成的apk不会提示授权Key失败

    c402eda8741fe6b81ee25acb1c5230ef.png

    在用keytool时会报以下错误:

    keytool error: java.io.FileNotFoundException: android.keystore (Access is denied)

    在cmd下支座android apk 签名时,输入命令:keytool -genkey -alias MyAndroidKey.keystore -keyalg RSA -validity 20000 -keystore MyAndroidKey.keystore,到最后提示keytool 错误: java.io.FileNotFoundException: MyAndroidKey.keystore (拒绝访问).

    这是因为权限问题:你的jdk目录在c盘,当前用户无写入权限

    更改权限:以管理员身份运行CMD。

    修改后,再键入keytool -genkey -alias MyAndroidKey.keystore -keyalg RSA -validity 20000 -keystore MyAndroidKey.keystore,按提示填写即可。

    参考:http://blog.csdn.net/b275518834/article/details/37919473

    展开全文
  • AppSecurityDetection 安卓Apk安装包在线安全检测系统
  • 功能介绍:PC端直接安卓安卓apk安装包到手机!(无需第三方工具: 应用宝、手机助手等) 解决问题: 解决了APP端测试工程师需求频繁安装老版本APP而耽误上线前宝贵时间的问题;为了效率提升! ----------------------...
  • Android APK 安装包

    千次阅读 2017-05-02 11:50:17
    APK总览 APK内容 APK编译过程 APK安装过程

    最近本人了解了一些关于Android APK安装包的知识,在此写下一篇博客进行总结。

    APK总览

    APK是AndroidPackage的缩写,即Android安装包(apk)。APK文件其实是zip格式,但后缀名被修改为apk,我们可以通过更改后缀名的方式来解压缩apk文件,解压后的内容如下图所示:
    apk文件目录

    APK内容

    apk文件解压后包含以下内容:

    (1)res目录:用于存放Android资源文件的目录,其中的文件均经过编译,有多个子目录用于区分具体的资源文件类型:
    • anim:补间动画和逐帧动画文件
    • animator:属性动画文件
    • color:颜色文件
    • drawable:图片文件
    • layout:布局文件
    • menu:菜单文件
    • mipmap:理论上仅用于存放应用icon图标,用于主屏幕图片展示,其余图片文件应存放在drawable中
    • raw:原生视频、音频资源
    • transition:转场动画效果
    • xml:原生xml文件
    值得注意的是,每个子目录都可以拥有标识相应分辨率与机型大小作为后缀,如“xxhdpi”,的子目录。

    (2)assets目录:用于存放需要打包到APK中的静态文件,文件没有进行编译,访问时需要使用AssetManager类

    (3)META-INF目录:即Metadata infomation元数据(又称中介数据、中继数据,用于描述数据的数据)信息目录,该目录下主要包含以下三个文件:
    • MANIFEST.MF:摘要文件,列出了apk的所有文件,以及这些文件内容所对应的base64-encoded SHA1 哈希值,用于验证apk文件的完整性,判断apk是否被篡改
    • CERT.SF:摘要签名文件,它列出了MANIFEST.MF这个文件中每条信息的hash值,用于验证摘要文件是否被篡改
    • CERT.RSA:该文件保存了解密用的公钥,以及加密算法等信息
    (4)AndroidManifest.xml:Android的应用配置文件,描述了应用的总体信息,需要使用的用户权限以及组件等等,已被编译

    (5)classes.dex:能用于dalvik执行的字节码,由多个.class的Java字节码文件组合而成

    (6)resources.arsc:资源配置文件,用于记录资源文件与资源id之间的映射关系,res/values中的信息大部分被编译在此处

    (7)lib目录:Android依赖的Native库的目录,其中会根据不同的cpu架构分为多个子目录

    APK编译过程

    APK的大致编译过程如下图所示:
    Android apk编译过程

    1. 编译器将源代码转换成 DEX(Dalvik Executable) 文件(其中包括运行在 Android 设备上的字节码),将所有其他内容通过aapt(Android Asset Packaging Tool) 转换成已编译资源,编译成二进制文件
    2. APK 打包器将 DEX 文件和已编译资源合并成单个 APK
    3. APK 打包器使用调试或发布密钥库签署您的 APK
    4. 在生成最终 APK 之前,打包器会使用 zipalign 工具对应用进行优化,减少其在设备上运行时的内存占用

    APK安装过程

    Android的应用apk安装涉及如下几个目录:
    • /data/app:存放用户安装的apk目录,安装时会把apk复制到这里
    • /data/data:应用安装完成后,会在该目录下生成与apk包名(packagename)一样的文件夹,用于存放应用数据
    • /data/dalvik-cache:存放apk的odex文件,便于应用启动时直接执行
    具体的安装过程如下:
    首先,系统会把apk复制到/data/app下,然后通过META-INF下的文件校验apk的签名是否正确,检查apk的结构是否正常,进而解压并校验dex文件。如果dex文件没有被破坏,则会把dex文件优化为odex文件,使得程序的启动时间加快,同时,在/data/data目录下建立与apk包名相同的文件夹。如果apk中有Native库,lib目录的话,系统会判断so库的名字是否正确,并根据系统cpu架构解压对应的so库到/data/data/packagename/lib下。

    附,odex的内容如下所示:
    odex
    odex文件在原来的dex文件头添加了一些数据,在文件尾部添加了程序运行时需要的依赖库和辅助数据,使得程序运行速度加快。
    展开全文
  • ESP8266 smartlink 调试工具,安卓版本,安装即可用,用于配置smartlink,欢迎下载
  • apk安装包制作方法

    热门讨论 2011-12-26 21:11:37
    说明了怎样在android eclipse开发环境下制作可以用于android系统的安装文件,经过试用,可以使用
  • auto.js_apk安装包.zip

    2021-03-05 22:59:02
    非auto.js pro,此为免费版本,可直接安装使用,做安卓辅助的神器,懂的来下载吧~
  • 注意事项:6.0及以下用context...安装都会报Apk文件不正确,无法正常打开;7.0及以上没有问题。installApkO(8.0 需要判断是否允许了安装未知来源应用的权限)private void installApkO(Context context, String downl...

    注意事项:

    6.0及以下用context.getFilesDir().getPath()或者context.getCacheDir().getPath();安装都会报Apk文件不正确,无法正常打开;

    7.0及以上没有问题。

    installApkO(8.0 需要判断是否允许了安装未知来源应用的权限)

    private void installApkO(Context context, String downloadApkPath) {

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

    //是否有安装位置来源的权限

    boolean haveInstallPermission = getPackageManager().canRequestPackageInstalls();

    if (haveInstallPermission) {

    KLog.i("8.0手机已经拥有安装未知来源应用的权限,直接安装!");

    installApk(context, downloadApkPath);

    } else {

    final AlertDialog.Builder normalDialog = new AlertDialog.Builder(MainActivity.this);

    normalDialog.setTitle("权限申请");

    normalDialog.setMessage("安装应用需要打开安装未知来源应用权限,请去设置中开启权限!");

    normalDialog.setPositiveButton("去设置",

    new DialogInterface.OnClickListener() {

    @Override

    public void onClick(DialogInterface dialog, int which) {

    dialog.dismiss();

    Uri packageUri = Uri.parse("package:" + getPackageName());

    Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES, packageUri);

    startActivityForResult(intent, 10086);

    }

    });

    normalDialog.setNegativeButton("取消",

    new DialogInterface.OnClickListener() {

    @Override

    public void onClick(DialogInterface dialog, int which) {

    dialog.dismiss();

    }

    });

    normalDialog.show();

    }

    } else {

    // 8.0 以下

    installApk(context, downloadApkPath);

    }

    }

    installApk(7.0 及以上和6.0 及以下安装差异)

    public void installApk(Context context, String downloadApk) {

    File file = new File(downloadApk);

    if (!file.exists()) {

    ToastUtils.showLong("安装包不存在!");

    return;

    }

    Intent intent = new Intent(Intent.ACTION_VIEW);

    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    String type = getMimeType(file);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {

    //7.0 及以上

    Uri apkUri = FileProvider.getUriForFile(context, getPackageName() + ".provider", file);

    intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

    intent.setDataAndType(apkUri, type);

    } else {

    //6.0 及以下

    Uri uri = Uri.fromFile(file);

    intent.setDataAndType(uri, type);

    }

    context.startActivity(intent);

    }

    getMimeType

    private static String getSuffix(File file) {

    if (file == null || !file.exists() || file.isDirectory()) {

    return null;

    }

    String fileName = file.getName();

    if (fileName.equals("") || fileName.endsWith(".")) {

    return null;

    }

    int index = fileName.lastIndexOf(".");

    if (index != -1) {

    return fileName.substring(index + 1).toLowerCase(Locale.US);

    } else {

    return null;

    }

    }

    public static String getMimeType(File file) {

    String suffix = getSuffix(file);

    if (suffix == null) {

    return "file/*";

    }

    String type = MimeTypeMap.getSingleton().getMimeTypeFromExtension(suffix);

    if (type != null || !type.isEmpty()) {

    return type;

    }

    return "file/*";

    }

    onActivityResult

    @Override

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == 10086) {

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

    boolean hasInstallPermission = getPackageManager().canRequestPackageInstalls();

    //再次执行安装流程,包含权限判等

    if (hasInstallPermission && !TextUtils.isEmpty(apkFilePath)) {

    //再次启动安装流程

    installApkO(MainActivity.this, apkFilePath);

    }

    }

    }

    }

    getDiskCacheDir(6.0及以下用context.getFilesDir().getPath()或者context.getCacheDir().getPath();安装都会报包解析错误;)

    public String getDiskCacheDir(Context context) {

    String cachePath = null;

    if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())

    || !Environment.isExternalStorageRemovable()) {

    // 不需要动态获取读写权限

    cachePath = context.getExternalCacheDir().getPath();

    } else {

    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) {

    ApkUtil .checkApkExist(this, getPackageName());

    return null;

    }

    // 不需要动态获取读写权限

    cachePath = context.getCacheDir().getPath();

    }

    return cachePath;

    }

    ApkUtil

    public class ApkUtil {

    /**

    * 应用市场包名

    */

    private static final String[] PACKAGENAME = {

    "com.tencent.android.qqdownloader", "com.qihoo.appstore", "com.baidu.appsearch", "com.xiaomi.market", "com.huawei.appmarket", "com.bbk.appstore",

    "com.meizu.mstore", "com.wandoujia.phoenix2", "com.oppo.market", "cn.goapk.market", "com.android.vending", "com.lenovo.leos.appstore", "com.mappn.gfan"

    };

    public static boolean checkApkExist(Context context, String appPkg) {

    try {

    for (String packageName : PACKAGENAME) {

    if (isAvilible(context, packageName)) {

    launchAppDetail(context, appPkg, packageName);

    return true;

    }

    }

    } catch (RuntimeException e) {

    e.printStackTrace();

    }

    return false;

    }

    /**

    * 判断是否安装了某应用

    *

    * @param context

    * @param packageName

    * @return

    */

    private static boolean isAvilible(Context context, String packageName) {

    final PackageManager packageManager = context.getPackageManager();

    List pinfo = packageManager.getInstalledPackages(0);

    List pName = new ArrayList();

    if (pinfo != null) {

    for (int i = 0; i < pinfo.size(); i++) {

    String pn = pinfo.get(i).packageName;

    pName.add(pn);

    }

    }

    return pName.contains(packageName);

    }

    /**

    * 启动到应用商店app详情界面

    */

    private static void launchAppDetail(Context context, String appPkg, String marketPkg) {

    try {

    if (TextUtils.isEmpty(appPkg)) {

    return;

    }

    Uri uri = Uri.parse("market://details?id=" + appPkg);

    Intent intent = new Intent(Intent.ACTION_VIEW, uri);

    if (!TextUtils.isEmpty(marketPkg)) {

    intent.setPackage(marketPkg);

    }

    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    context.startActivity(intent);

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    }

    推荐文章 :

    展开全文
  • Apk安装包安装前进行检测,是否能够正确解析,避免安装时安装包解析出错,无法安装
  • 一、获取安装包信息代码如下:/*** 获取apk包的信息:版本号,名称,图标等* @param absPath apk包的绝对路径* @param context*/public void apkInfo(String absPath,Context context) {PackageManager pm = context....
  • Android apk 安装包损坏

    千次阅读 2017-12-20 16:40:38
    (1)一般造成这样情况的问题就是因为混淆代码的时候 一些类不能被混淆,某些类找不到。 (2)如果无混淆代码的情况也造成此情况,建议直接用adb 命令 行 安装 如:adb instanll+ apk的具体路径
  • 安卓版谷歌浏览器
  • SoloPi.apk 手机安装包

    2021-09-15 18:13:22
    v0.11.1
  • 最近遇到了好几次这种提示 不是直接跑到手机上的 是通过扫码下载 安装包安装的 提示安装包无效或与操作系统不兼容,魅族提示apk仅为测试版,要求下载正式版安装 发现是studio3.0之后的instantrun功能引起的,直接...
  • 最近项目加需求,需要获取设备内安装的所有App,并提取指定的APP的源文件(.apk安装包).于是写了个Demo,包括指定包名APP的.apk文件提取以及所有已安装的APP的.apk文件提取. 话不多说直接上代码,需要的直接带走. /** ...
  • Android版本更新(检测、升级),检测版本,通过apk路径下载安装包,并进度条展示,安装
  • 这是一个通过反汇编的技术将安卓apk安装包转换成java语言。且为了小白还负有详细讲解视频!注:此软件安全无毒,请放心食用(使用)开个玩笑^_^!
  • 众所周知,apk格式安装文件是android智能系统的安装文件,下面我们来看一个利用php实现自定义apk安装包实例。 一、需求: 需要实现对产品进行一次推荐好友安装的活动,每个会员下载自己的专属安装包(里面记录会员的...
  • 1、首先我们在GooglePlay上找到自己需要...下载得到的apk文件与官方版本的一致,而且可以重复安装,这对于手机网速不给力而且又需要下载大型游戏的安卓用户来说是不错的解决办法。 不过经过部分实测,付费应用无法实现
  • 最近研究安卓apk自动内部升级时,采坑不少,我是Qt 5.12.10开发,开始使用java代码总是报错,后面直接采用Qt的QProcess来指定路径启动apk,以为会成功,直接返回给我失败,所以没办法,只能再回头研究 原生android ...
  • Android Studio3.0apk安装包损坏解决方案

    千次阅读 2018-03-29 10:35:10
    问题:在AS3.0打包的apk,用应用宝安装到手机上时出现apk安装包损坏 解决:在网上找了各种答案,打包时把V1,V2都选择上等等都没解决。而且只用应用宝有问题,夜神、adb命令安装啥的都没问题。 今天看到:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,341
精华内容 9,336
关键字:

安卓apk安装包下载