【转】android:APP设置以太网静态IP_简要步骤

以下转载内容亲自测试示例代码有效。提几个注意事项:

使用AS版本( Android Studio 4.1.2)

新建一个helloword工程,然后将实例中的代码拷贝到工程。然后将framework.jar加入到工程。

1.如图右键framework.jar,选择“Add As Library”:

2.在Module下面的build.gradle里找到defaultConfi加入multiDexEnabled = true;

3.加上系统签名, 

 

platform.keystore签名文件,可以通过源码中的platform.pk8/platform.x509.pem转换处理,网上有有脚本工具keytool-importkeypair。

keytool-importkeypair 使用_ngyzqf的博客-CSDN博客_keytool-importkeypair

 

[转]android:APP设置以太网静态IP_简要步骤 - caesura_k - 博客园

手持机开机默认为手动获取动态IP,每次都要重新手动设置成静态获取IP,客户觉得有点麻烦,想改成可以自动设置。

于是就在网上找了个能用的示例代码,于是就有了这篇博文。

手持机系统为android 7.0

1、示例代码: staticIp: 以太网固定ip

  经笔者多方查找测试过几个代码之后,发现以上代码经过以下几个步骤后,可以运行在android7.0系统的手机上;

2、设置静态IP流程: AndroidThings设置以太网卡静态ip_weixin_41722842的博客-CSDN博客_android 设置网卡ip

  主要步骤大致上和这篇博文差不多,先有个轮廓;

3、在<manifest>标签内加上  android:sharedUserId="android.uid.system"   使其成为系统应用得以调用API隐藏方法

  使用压缩软件打开apk,进入META-INF目录下,删除应用程序的3个签名文件:CERT.RSA  ; CERT.SF ; MANIFEST.MT

  将app-debug.apk和以下三个文件放在一个文件夹下
  signapk.jar
  platform.x509.pem 
  platform.pk8  

  shift+右键进入cmd中,用以下命令打包签名:
  java -jar signapk.jar platform.x509.pem platform.pk8 app-debug.apk.apk staticip.apk

4、代码分析和调用的系统源码解析的博文参考:  Android 以太网/有线网Ethernet功能开发_Purple7826的博客-CSDN博客_android 以太网

  十分详细地讲解了class.jar文件内调用的隐藏方法的实现函数,以及程序源码的解析

/******以下为补充说明,仅仅是为了方便理解;******/

5、class.jar(位于framework框架下)

  Android 有两种类型的 API 不能通过 SDK 访问。

  一种是在 com.android.internal 包中的 API,称之为 internal API。

  另一种是被标记为 @hide 属性的类和方法,这是一组小级别的被隐藏的 API,称之为 hidden API。

  当使用 Android SDK 进行开发的时候,应用默认引用了SDK自带的 android.jar,

  它位于 SDK路径\platforms\android-X 目录下(X 代表 API 级别),

  默认移除了所有的被@hide标识的方法或者类以及 internal 包下的类。

  class.jar 和 android.jar 本质上是一样的代码,但是没有移除 internal API 和 hidden API。

  5.1、调用framework接口有两种方法:

    5.1.1、反射调用

    5.1.2、直接把framework的jar放在app里面,让app直接调用

  5.2、jar包所在位置:   

    这些方法或常量的前面的注释处加了一个@hide,另外还有MTK,高通等在Framework里定义的一些类肯定是找不到的,

    所以就通过编译系统源码,把class.jar拷贝出来,放入工程的Module里。(网上找或者找linux开发拿)

    (以MTK为例,如果编译debug版本,直接在out/target/product/projectXX/system/framework下面拷出来,)

    (如果是user版本,目录为out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar或是classes_full_debug.jar)

  5.3、Android Studio 加入jar包的几个博文,看起来具有可执行性,先放着吧,我也没用过。

     Android Studio 优先源码编译的framework.jar(android.jar)_leitongzhuang1的博客-CSDN博客_android.jar  

    android系统APP开发,优先使用源码编译的framework jar包_星极科技的博客-CSDN博客

    android studio中导入源码编译的framework.jar_abs625的博客-CSDN博客

  5.4、Android的四层架构:Linux内核层,核心库层,应用框架层(framework),应用层

    Framework提供API给上层重复调用,在这层里定义的API都是用Java语言编写,同时也包含了JNI的方法、

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
<androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/round_style" android:elevation="4dp" android:layout_margin="8dp" android:padding="10dp"> <com.xuexiang.xui.widget.textview.autofit.AutoFitTextView style="@style/item_show_title" android:id="@+id/spec" android:paddingTop="2dp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"/> <com.xuexiang.xui.widget.textview.autofit.AutoFitTextView style="@style/item_show_title" android:id="@+id/style" app:layout_constraintStart_toEndOf="@+id/spec" app:layout_constraintTop_toTopOf="parent"/> <com.xuexiang.xui.widget.textview.autofit.AutoFitTextView style="@style/item_show_title" android:id="@+id/name" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/spec"/> <com.xuexiang.xui.widget.textview.autofit.AutoFitTextView style="@style/item_show_title" android:id="@+id/real_inventory" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/name"/> <com.xuexiang.xui.widget.textview.autofit.AutoFitTextView style="@style/item_show_title" android:id="@+id/check_inventory" app:layout_constraintStart_toEndOf="@+id/real_inventory" app:layout_constraintTop_toBottomOf="@+id/name"/> <ImageView android:id="@+id/status" android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toBottomOf="@+id/name" app:layout_constraintTop_toTopOf="parent" /> <View style="@style/item_show" android:id="@+id/view_task_list" android:layout_width="match_parent" android:layout_height="1dp" android:background="#cccccc" android:layout_marginTop="3dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toBottomOf="@+id/real_inventory" app:layout_constraintStart_toStartOf="@+id/real_inventory"/> </androidx.constraintlayout.widget.ConstraintLayout>加入button功能,但并不影响源码
06-03

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值