Android 如何在jar中向用户隐藏一些文件?

Android 如何在jar中向用户隐藏一些文件?,android,access-modifiers,Android,Access Modifiers,我有一组要封装在jar文件中的类。但是这些类中只有少数应该对用户“可见”。我的意思是,我希望这些类是公开的,其余的是私有的。但是,当我对广播接收器使用默认的“受保护”可见性,并从不同的包发送意图时,它会给我一个IllegalAccessException。关于如何实现这一点的任何提示?类应该是私有的或“隐藏”的唯一时间是当它是一个内部类时。如果您试图阻止其他人利用您的类资源,可以关闭修饰符(private、public、protected),这将使类包受到保护(不存在修饰符时的默认设置) 例如,

我有一组要封装在jar文件中的类。但是这些类中只有少数应该对用户“可见”。我的意思是,我希望这些类是公开的,其余的是私有的。但是,当我对广播接收器使用默认的“受保护”可见性,并从不同的包发送意图时,它会给我一个IllegalAccessException。关于如何实现这一点的任何提示?

类应该是私有的或“隐藏”的唯一时间是当它是一个内部类时。如果您试图阻止其他人利用您的类资源,可以关闭修饰符(private、public、protected),这将使类包受到保护(不存在修饰符时的默认设置)

例如,该类只能由同一包中的类看到:

package com.test;

class Test {

}
package com.test;

public class Test {

}
如果该类可在包外访问:

package com.test;

class Test {

}
package com.test;

public class Test {

}
但是,在此场景中,另一个人可以使用包名com.test,也可以使用您的类

如果您想严格控制类的使用方式,可以将它们标记为
public final
。这将使您的类无法扩展。然后,您可以将构造函数设置为私有,这样就无法实例化该类。如果您这样做,您可能需要返回您正在处理的类的新对象的
静态
方法

如果你打算分发这个罐子,你只需要处理这个问题。但是有很多选项(如上所述)可以帮助您创建有用的代码库