Android mprop 不重打包就可实现的应用动态调试

一般经过签名的应用就不能调试了,我们要调试的话就要反编译修改Manifest.xml里面的Debug配置,然后重新打包运行。

很多时候我们没办法重新打包成功一个应用,所以我们需要借助root环境下更改ro配置的方式才能实现。

这样就可以实现不用重打包应用也能调试。

今天我们介绍一下一个神器 mprop 的使用。

    1.手机需要root权限

    2.将 mprop 文件(请点击这里下载)复制到手机内存储的/data/local/tmp目录下。

    3.输入命令  adb shell su  ,   进入  shell管理员权限

    4.输入命令 cd /data/local/tmp ,进入到mprop文件路径

    5.输入命令 chmod 755 mprop ,设定文件操作权限

    6.输入命令 ./mprop ro.debuggable 1  ,运行mprop文件修改debug=1

 

如图,很多进程都可以调试了

debug调试可以使用

 

 

但是我们发现,并没有所有进程都可以调试。因为我们虽然修改了内存值,但是有一个进程我们需要重启一下,哪个进程呢?那就是adbd这个进程,这个进程是adb的守护进程,就是设备连接信息传输后台进程,所以想看到可以调试的进程信息的话,那么需要重启这个进程,这样连接信息才会更新。

那么这样才可以让所有进程都可以调试呢?

8.  输入   stop;start 命令,使adb关闭重启。然后就发现所有的进程都可以调试了。当然如果第 7 步已经能满足你的需求了,那就不需要再执行这一步了。

 

 

 

 

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,我可以为你介绍如何使用OpenMesh 9.0版本中的函数读取带纹理的OBJ文件。在使用之前,需要确保你已经安装了OpenMesh 9.0版本,并且你已经准备好了带有MTL文件和多个纹理PNG图片的OBJ文件。 下面是读取带纹理的OBJ文件的步骤: 1. 首先,需要包含OpenMesh的头文件: ```c++ #include <OpenMesh/Core/IO/MeshIO.hh> #include <OpenMesh/Core/Mesh/TriMesh_ArrayKernelT.hh> ``` 2. 然后,定义一个TriMesh_ArrayKernelT类型的网格对象,并使用OpenMesh的函数将OBJ文件读入到该对象中。在这个过程中,需要将加载纹理所需的选项通过IO::Options结构体对象传递给函数。 ```c++ typedef OpenMesh::TriMesh_ArrayKernelT<> MyMesh; // 定义TriMesh对象 MyMesh mesh; // 声明一个TriMesh对象 OpenMesh::IO::Options opt; // 声明一个IO::Options对象 opt += OpenMesh::IO::Options::VertexTexCoord; // 加载纹理坐标 opt += OpenMesh::IO::Options::FaceTexCoord; // 加载面的纹理坐标 if ( !OpenMesh::IO::read_mesh(mesh, "mesh.obj", opt) ) // 加载OBJ文件 { std::cerr << "Error: Cannot read mesh from mesh.obj" << std::endl; exit(1); } ``` 3. 最后,可以通过访问网格对象中的纹理坐标和使用OpenMesh的纹理库将纹理映射到网格上来渲染带有纹理的网格。 ```c++ // 访问纹理坐标 for (MyMesh::FaceIter f_it=mesh.faces_begin(); f_it!=mesh.faces_end(); ++f_it) { MyMesh::FaceHandle fh = *f_it; for (MyMesh::FaceVertexIter fv_it=mesh.fv_iter(fh); fv_it; ++fv_it) { MyMesh::VertexHandle vh = *fv_it; MyMesh::TexCoord2D texcoord = mesh.texcoord2D(vh); // ... } } // 映射纹理到网格 OpenMesh::MPropHandleT<OpenMesh::MProp_TextureIndex> texindex; // 声明一个MProp_TextureIndex类型的属性 if ( !mesh.get_property_handle(texindex, "texindex") ) // 获取属性句柄 mesh.add_property(texindex, "texindex"); // 添加属性句柄 OpenMesh::TexHandle tex_handle; // 声明一个TexHandle对象 if ( !OpenMesh::IO::read_texture(tex_handle, "texture.png") ) // 加载纹理 { std::cerr << "Error: Cannot read texture from texture.png" << std::endl; exit(1); } mesh.tex_index(tex_handle) = 0; // 将纹理句柄存储到属性中 // 渲染带有纹理的网格 // ... ``` 以上就是使用OpenMesh 9.0版本中的函数读取带纹理的OBJ文件的步骤。希望能帮助到你!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

闽农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值