精华内容
下载资源
问答
  • 2021-10-27 10:07:30

               有时候提供的jar需要内嵌到第三方app,但是本身又使用到layout,drawable,string等资源,就需要用到动态获取资源id。

               比如原先我们设置页面是这样的

        setContentView(R.layout.main);    

              现在需要改成这样:


            Utils.setPackageName(getPackageName());
            Utils.setContext(getApplicationContext());

            setContentView(Utils.getResourceId(Utils.packageName, "layout",
                    "chinapay_main"));    

    	public static Context mContext = null;
    /**
    	 * 设置上下文.
    	 * 
    	 * @param name
    	 *            包名
    	 */
    	public static void setContext(Context context) {
    		mContext=context;
    	}
    
    /**
    	 * 动态获取资源编号.
    	 * 
    	 * @param packageName
    	 *            包名
    	 * @param typeName
    	 *            资源类型
    	 * @param instenceName
    	 *            资源名
    	 * @return int
    	 */
    	public static int getResourceId(String packageName, String typeName,
    			String instenceName) {
    		if (packageName != null && typeName != null && instenceName != null) {
    			try {
    //反射这种方式大部分商户可以
    //				Class<?> cl = Class.forName(packageName + "$" + typeName);
    //				Field field = cl.getField(instenceName);
    //				return field.getInt(cl);
    				//20211026 某商户表示R做了内联,以上方法,无法找到资源,要求改用getResources方式
    				return mContext.getResources().getIdentifier(instenceName,typeName,packageName);
    			} catch (Exception e) {
    				e.printStackTrace();
    			}
    		}
    		return -1;
    	}
    

    更多相关内容
  • 在做动态获取控件时,时常需要根据Id得到控件,并对该控件进行操作,示例如下,大家可以参考下
  • 针对页面元素是动态id的情况,无法找到输入用户名和密码框的解决方式 from selenium import webdriver from selenium.webdriver.support.expected_conditions import presence_of_all_elements_located as loc #...

    针对页面元素是动态id的情况,无法找到输入用户名和密码框的解决方式在这里插入图片描述

    from selenium import webdriver
    from selenium.webdriver.support.expected_conditions import presence_of_all_elements_located as loc
    #profile_dic =  r'D:\users\NWU\AppData\Roaming\Mozilla\Firefox\Profiles\h5fl1tv2.default'
    browser = webdriver.Firefox()
    #browser.get('https://mail.163.com/index_alternate.htm')
    browser.get('https://mail.163.com')
    a = loc("name")
    print(a)
    code = browser.find_element_by_id("lbNormal")
    code.click()
    #browser.switch_to.frame(3)
    #nameElem2 = nameElem.find_element_by_tag_name("input")
    #nameElem = browser.find_element_by_id("idInput")
    browser.switch_to.frame(browser.find_element_by_xpath("//iframe[contains\
    (@src, 'https://dl.reg.163.com/webzj')]"))
    nameElem = browser.find_element_by_name("email")
    nameElem.send_keys('111111')
    pwdElsem = browser.find_element_by_name("password")
    pwdElsem.send_keys("3456345")
    
    展开全文
  • Linux应用程序动态更改用户ID

    千次阅读 2021-12-12 18:32:22
    Linux下如何动态修改程序运行时的用户ID呢?

    有时候为了系统安全,会将程序进行降权,但是当需要访问当前不允许访问的资源时,如何处理呢?那就是更改自己的用户ID或组ID,使新的ID具有合适的特权或访问权限,当处理完之后,再降低其特权,下面来介绍一下,如何在程序中动态修改程序的用户ID或组ID。

    进程用户ID

    首先,我们需要了解,一个进程相关联的ID有多少个,下面表格介绍:

    ID作用
    实际用户ID我们实际上是谁
    实际组ID我们实际上是谁
    有效用户ID用于文件访问权限检查
    有效组ID用于文件访问权限检查
    附属组ID用于文件访问权限检查
    保存的设置用户ID由exec()函数保存
    保存的设置组ID由exec()函数保存

    另外,我们可以通过 getuid() 和 geteuid() 函数分别或者实际用户ID和有效用户ID,而设置用户ID我们是没有函数可以直接获取的。

    动态更换用户ID

    当我们在root用户下通过 chmod +s YourExe 命令给我们的可执行程序设置SUID位(“u+s”设置文件的用户ID位,“g+s”设置组ID位),这个时候,我们可以通过seteuid()函数暂时性的获得root权限。
    “+s”设置的标志位含义是当执行此文件时,将进程的有效用户ID设置为文件所有者的用户ID

    测试代码如下:

    #include <stdio.h>
    #include <stdlib.h>
    #include <errno.h>
    #include <unistd.h>
    #include <sys/ioctl.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    #include <string.h>
    #include <unistd.h>
    #include <sys/prctl.h>
    #include <sys/syscall.h>
    
    int main(int argc, char *argv[])
    {
    	int fd;
    	unsigned char *dev_name = "/dev/input/event0";
    
    	printf("uid = %d, gid = %d euid = %d\n", getuid(), getgid(), geteuid());
    	fd = open(dev_name, O_RDONLY);
    	if (fd < 0)
    		printf("open %s error,errno %d\n", dev_name, errno);
    	else {
    		printf("open %s ok\n", dev_name);
    		close(fd);
    	}
    
    	/* 参数0是root用户ID */
    	seteuid(0);
    	printf("uid = %d, gid = %d euid = %d\n", getuid(), getgid(), geteuid());
    	fd = open(dev_name, O_RDONLY);
    	if (fd < 0)
    		printf("open %s error,errno %d\n", dev_name, errno);
    	else {
    		printf("open %s ok\n", dev_name);
    		close(fd);
    	}
    
    	/* 参数2是当前实际用户ID */
    	seteuid(2);
    	printf("uid = %d, gid = %d euid = %d\n", getuid(), getgid(), geteuid());
    	fd = open(dev_name, O_RDONLY);
    	if (fd < 0)
    		printf("open %s error,errno %d\n", dev_name, errno);
    	else {
    		printf("open %s ok\n", dev_name);
    		close(fd);
    	}
    }
    

    默认的,我们user是没有 /dev 目录下节点的读取权限的,当我们去打开该节点时,将会出现报错说没有权限,但是,这个时候,如果通过 seteuid() 函数将有效用户ID设置为 root 用户(ID = 0),则可以正常访问 /dev 目录下的节点,当访问结束后,再通过 seteuid() 函数还原即可,注意,是 seteuid() 函数而不是 setuid() 函数。

    实际上,上面示例在user用户环境的的工作步骤如下:

    1. 程序文件由root用户拥有且在设置用户ID位已设置,在user用户空间运行的,所以用户ID信息如下:

      实际用户ID = 我们的用户ID
      有效用户ID = 我们的用户ID
      保存的设置用户ID = root

      所以第一次open /dev 节点将会出现没有权限。

    2. 当调用 seteuid(0) 之后,由于我们已经设置了用户ID位,所以这种行为是允许的,用户ID信息将变为以下:

      实际用户ID = 我们的用户ID(未改变)
      有效用户ID = root
      保存的设置用户ID = root(未改变)

      由于当前有效用户ID为root,所以可以正常访问 /dev 节点。

    3. 当调用 seteuid(2) 降权之后,用户ID信息将变为以下:

      实际用户ID = 我们的用户ID(未改变)
      有效用户ID = 我们的用户ID
      保存的设置用户ID = root(未改变)

      降权后访问 /dev 将会无权限。

    通过上述的配置,我们可以动态修改用户 ID,但是程序得到了额外的权限,编写这种程序时谨慎处理。

    参考

    《UNIX环境高级编程第3版》

    展开全文
  • Mysql 插入集合时,动态生成ID

    千次阅读 2017-03-13 10:05:06
    mysql insert into 集合时,动态产生ID

    最近,碰到一个问题,需要将存储过程移植到项目逻辑service中。其中就涉及到数据库的集合操作问题。

    insert into user(id,name,age) select ?,name,age from user_b

    业务逻辑如上所示,需要将查询的一个集合,插入到已知表当中。其中ID作为主键,并且在查询结果中没有ID,需要插入时,动态添加。

    如果在?的位置直接用数值替代,则表示集合中所有的ID都相同,会报主键重复的错误。

    解决方案:1,将主键ID设置为int型,然后修改数据库表的ID值自动增加。

       但是在实际项目中,ID通常都是随机产生,而不是按着规律自动增加,同时会保持相同的位数。


      2. 在数据库中用变量来进行操作。

    insert into user(id,name,age) 

    select 

    CONCAT(
    cast(@x := ifnull(@x, DATE_FORMAT(now(), '%Y%m%d%H%i%s')) + 1 AS CHAR)
    )as id,

    name,age from user_b,

           (select @x := max(id) from user) as b


    首先,(select @x := max(id) from user) as b作为一个新的集合,用来产生变量。

    其次,concat()函数用来连接字符串。cast()是一个转换函数。

    然后,第一个cast(),将当期时间转换为字符。

        ifnull():表示如果第一个表达式不为null,则返回第一个表达式,否则返回第二个。在这里表示,如果表中没有ID,就从0开始,如果有就继续增加。

    最后,将日期和我们产生的ID连接在一起,构成一个相对不是那么规律,且位数得到控制的ID。


    由于本人对数据库认识较少,如有错误,请各位见谅并提出。

    展开全文
  • Jquery取得动态id中的值

    千次阅读 2019-07-31 17:34:55
    项目开发中需要给表格中每一行加上一个下拉列表,在操作时取得该下拉列表中的值,由于下拉列表的id是在字符串的基础上加上索引号生成的,这时需要动态得到id,再取得该id的值。代码如下: var va=$("#" + select...
  • 获取params,然后进入“/account/company/:id”时获取到的parmas的id为“:id”,在js中判断是否为字符串":id",若是history.replace跳转到对应的"/account/company/index"页面 缺点:url会出现闪跳 config.ts 部分...
  • 获取动态添加的节点的ID

    千次阅读 2017-09-15 17:21:07
    目的:在网页设计的过程中,有时候我们需要获取动态添加的节点的id,从而设置相应的属性或者事件。方法:可以给动态添加的内容加上一个不显示的input,将其value设置为后台传过来的数据的某一个变量值。如:'&lt...
  • Jquery--模糊获取标签动态id值及内容

    千次阅读 2017-08-31 10:56:16
    一、说明 二、实现代码 Controller层 request.setAttribute("lists",lists);...c:forEach items="${requestScope.lists }" var="entity" varStatus="status">...div id='hello${entity.objectId }'>...
  • 通常情况下我们使用R.xxx的方式引用资源,在某些情况下需要根据资源的name来获取资源的id,查了下资料,目前主要有两种方式,这里总结记录一下: 第一种,通过反射来获取 例如,根据name获取drawable资源: private ...
  • 下面我就为大家分享一篇jquery 给动态生成的标签绑定事件的几种方法总结,具有很好的参考价值,希望对大家有所帮助。经常遇到给动态生成的标签绑定事件不好用,自己简单测试总结了下,结论如下了:生成a标签$...
  • Android 动态资源ID

    千次阅读 2022-01-26 15:39:08
    //利用反射机制:根据随机产生的1至5的整数从R.drawable类中获得相应资源ID(静态变量)的Field对象 Field field = R.drawable.class.getDeclaredField("prefix" + randomId); //取得图片的名称+1个随机数 //获得...
  • IDE Pycharm 5.0.3原因不止一个小伙伴告诉我,想模仿我的一键CSDN写博客想模拟登录qq或者网易邮箱,但是貌似用xpath和css都不行了,我尝试了一下,原来他们采用动态id了。所以直接定位id已经不能用了,但是xpath找来...
  • ![图片说明](https://img-ask.csdn.net/upload/201710/09/1507553856_719524.png) ![图片说明]...!...为什么我的 document.getElementById("${status.index}");这种方式取不到动态id号?求大神解释
  • 项目中需要动态获取资源R.string的值,记录一下解决方案。 直接先上个示例,下面再有详细解说: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ...
  • 我想要在一个android app中动态添加和删除TextView,我现在正在做,但是我在设置和获得TextView的ID的时候碰到了困难。在最后两行代码中我好想得到了空指针异常(et settext和ll.removeView)。有人知道我怎么可以...
  • uniapp跳转传id,并获得数据

    千次阅读 2020-09-23 17:11:34
    order页面跳转到detail页面,order传id,detail接收id,并获得数据 order页面 @click="toDetail(item.id)" toDetail(id){ uni.navigateTo({ url:"orderDetail?id="+id }) }, detail页面 onLoad(options) { ...
  • 1、如我们在我一个for循环中动态的创建了一个元素,元素里面的li动态的给了一个id如下 for(var i = 0 ; i $(".someOne").append(""); } 这样的话,在每一次循环的时候都会创建一个li元素,而这个id也是动态...
  • 3.1 id波形解耦前后对比(左为解耦前 id波形,后解耦后 id波形) 对比前后 id 的波形可以看出,在电机启动阶段,id 的幅值明显得到了反馈的校正,幅值明显比解耦前要小,解耦后最大值才0.5安,尤其在高速时,这种...
  • 使用js动态创建下面一表格,如何获取动态创建后的tr的id属性 12 经过多次测试,我使用的方法是定时器 var arr=[num1,num2]; setTimeout(function(){ var childs=document.getElementById("tbody").children; ...
  • 选项动态从后台获取,同时要实时获取到用户选中值的id select框有红,黄,蓝三个值,id分别为1,2,3 用户点击红,获取到红的id为1 用户点击黄,获取到黄的id为2 用户点击蓝,获取到蓝的id为3 问题步骤分为三步: ...
  • js如何利用a标签href实现页面跳转,并动态传递参数,如id。 <a :href="'/three/sing?id='+id" target="_blank">点击新的页面</a> 其中/three/sing为新的页面地址,也为进入app中view.py中所定义的函数...
  • 目前传统的矢量控制常见的方法有 id=0 控制和最大转矩电流比控制,前者主要适用于标贴式三相PMSM,后者主要用于内嵌式PMSM。但这里说明一下,对于表贴式PMSM,Id=0控制和最大转矩电流比控制是等价的。因为用的是表贴...
  • python 获取当前线程的系统线程ID

    千次阅读 2021-04-23 14:45:47
    使用ctypes调用系统的动态链接库libc.so.6 来获取线程id。 参考: python代码示例: import ctypes SYS_gettid = 186 libc = ctypes.cdll.LoadLibrary('libc.so.6') tid = libc.syscall(SYS_ge
  • 如何获取动态id <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.css"> <script src="http://code.jquery.com/jquery-1.8.3.min.js"></script> ...
  • 动态规划算法 决策树(ID3 C4.5)

    千次阅读 2016-03-14 11:06:55
    动态规划算法(Dynamical Programming, DP)http://creativecommons.org/licenses/by-nc-nd/3.0/deed.zh 一句话:从分硬币说起,前者为后者铺路,状态与状态转移函数。ID3...
  • 获取线程ID的方法

    千次阅读 2020-11-27 10:49:47
    #获取线程ID的方法 获取线程ID的方法Linuxphread_createpthread_selfsyscallWindows_...调用pthread_create函数时,第一个参数在函数调用成功后可以得到线程ID: #include <pthread.h> // 线程ID pthread_t i
  • Android通过反射动态获取资源Id

    千次阅读 2016-06-12 10:37:03
    打jar包的时候,你会发现R文件中的资源不能访问因此,需要通过反射动态获取资源的id/** * 反射得到组件的id号 * @param packageName 包名 * @param className layout,string,drawable,style,id,color,array * @...
  • 动态网页爬虫

    千次阅读 2021-12-04 21:49:25
    总结 通过本次实验,完成动态网页的信息爬取,和静态网页一样需要查看网页结构,找到元素id或者利用相关函数得到元素,然后将信息获取,存储。 六.参考链接 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 517,665
精华内容 207,066
关键字:

如何获得动态id