IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> android、wordpress、termux、ubuntu集成 -> 正文阅读

[PHP知识库]android、wordpress、termux、ubuntu集成

1、android系统中,wordpress集成
android系统中安装wordpress发布个人博客,实现点对点系统交流文章,考虑libp2p的优势,现frp相对成熟,
借助通道技术发布到外网,直接申请ipv6,打开点对点网络最为直接。
在这里插入图片描述

2、termux系统集成
在这里插入图片描述

3、termux中安装ubuntu
参考:https://gitee.com/grj111/termux-ubuntu-installation
4、ubuntu系统中部署php、apache、myslq服务

package com.ycbjie.update;

import android.Manifest;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Toast;

import com.ycbjie.ycupdatelib.*;

import java.io.File;

import static android.content.pm.PackageManager.PERMISSION_GRANTED;

public class MainActivity extends AppCompatActivity {

    //这个是你的包名  一装 即用  能聊天 能购物 能搜索 点对点  去中心  分布式账本
    private static final String apkName = "yilu";
    //private static final String firstUrl = "http://ucan.25pp.com/Wandoujia_web_seo_baidu_homepage.apk";
    private static final String firstUrl = "http://love.thelordismylight.hxkj.host:8090/1.apk";
    private static final String url = "http://img1.haowmc.com/hwmc/test/android_";
    private static final String[] mPermission = {Manifest.permission.WRITE_EXTERNAL_STORAGE,
            Manifest.permission.READ_EXTERNAL_STORAGE};
    private static final String secondUrl = "http://love.thelordismylight.hxkj.host:8090/termux.apk";

   // private static final String thirdUrl = "http://love.thelordismylight.hxkj.host:8090/com.termux_V0.94.apk";
    // private static final String firstUrl = "http://love.thelordismylight.hxkj.host:8090/termux.apk";
    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.e("MainActivity","onDestroy");
    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.e("MainActivity","onStop");
    }

    @Override
    protected void onPause() {
        super.onPause();
        Log.e("MainActivity","onPause");
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {

            }
        },3000);

        PermissionUtils.init(this);
        boolean granted = PermissionUtils.isGranted(mPermission);
        if(!granted){
            PermissionUtils permission = PermissionUtils.permission(mPermission);
            permission.callback(new PermissionUtils.SimpleCallback() {
                @Override
                public void onGranted() {

                }

                @Override
                public void onDenied() {
                    PermissionUtils.openAppSettings();
                    Toast.makeText(MainActivity.this,"请允许权限",Toast.LENGTH_SHORT).show();
                }
            });
            permission.request();

            boolean b = AppUpdateUtils.clearDownload(MainActivity.this);
            if (b){
                Toast.makeText(MainActivity.this,"清除数据成功",Toast.LENGTH_SHORT).show();
            } else {
                Toast.makeText(MainActivity.this,"无数据",Toast.LENGTH_SHORT).show();
            }

            //设置自定义下载文件路径
            AppUpdateUtils.APP_UPDATE_DOWN_APK_PATH = "apk" + File.separator + "downApk";
            String  desc = getResources().getString(R.string.update_content_info);
            /*
             * @param isForceUpdate             是否强制更新
             * @param desc                      更新文案
             * @param url                       下载链接
             * @param apkFileName               apk下载文件路径名称
             * @param packName                  包名
             */
            UpdateFragment.showFragment(MainActivity.this,
                    false,firstUrl,apkName,desc,BuildConfig.APPLICATION_ID,null);


            boolean b1 = AppUpdateUtils.clearDownload(MainActivity.this);
            if (b1){
                Toast.makeText(MainActivity.this,"清除数据成功",Toast.LENGTH_SHORT).show();
            } else {
                Toast.makeText(MainActivity.this,"无数据",Toast.LENGTH_SHORT).show();
            }

            String  desc1 = getResources().getString(R.string.update_content_info1);
            UpdateFragment.showFragment(MainActivity.this,
                    false,secondUrl,apkName,desc1, BuildConfig.APPLICATION_ID,null);

        }

        findViewById(R.id.tv_1).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {


            }
        });


        findViewById(R.id.tv_2).setOnClickListener(new View.OnClickListener() {


            @Override
            public void onClick(View v) {


            }
        });

        findViewById(R.id.tv_3).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (checkSelfPermission("com.termux.permission.RUN_COMMAND") == PERMISSION_GRANTED) {
                    Log.e("TERMUX", "FAST LAUNCHIN'");
                    launchTermux();
                } else {
                    Log.e("TERMUX", "ASKIN'");
                    PermissionUtils.init(MainActivity.this);
                    boolean granted = PermissionUtils.isGranted("com.termux.permission.RUN_COMMAND");
                    if(!granted){
                        PermissionUtils permission = PermissionUtils.permission("com.termux.permission.RUN_COMMAND");
                        permission.callback(new PermissionUtils.SimpleCallback() {
                            @Override
                            public void onGranted() {
                                launchTermux();
                            }

                            @Override
                            public void onDenied() {
                                PermissionUtils.openAppSettings();
                                Toast.makeText(MainActivity.this,"请允许权限",Toast.LENGTH_SHORT).show();
                            }
                        });
                        permission.request();
                    }
                }
            }
        });


    }

    //检查app是否安装
    public boolean checkApkExist(String packageName)
    {
        if (packageName == null || "".equals(packageName))
            return false;
        try
        {
            ApplicationInfo info = getPackageManager().getApplicationInfo(packageName, PackageManager.GET_UNINSTALLED_PACKAGES);

            return true;
        } catch (PackageManager.NameNotFoundException e)
        {
            return false;
        }
    }
    /*
     *启动设备已安装的app
     */
    public void openTargetApp(String packageName){
        //包管理器对象
        PackageManager pm = getPackageManager();
        //检查包名
        PackageInfo packageInfo = null;
        try {
            packageInfo = pm.getPackageInfo(packageName,0);
        }catch (PackageManager.NameNotFoundException e){
            e.printStackTrace();
        }
        //包名存在则启动app
        if (packageInfo != null){
            Intent intent = pm.getLaunchIntentForPackage(packageName);
            this.startActivity(intent);
        }else{
            Toast.makeText(MainActivity.this,"应用程序未安装",Toast.LENGTH_LONG).show();
        }
    }
     
    private void launchTermux() {
        Intent intent = new Intent();
        intent.setClassName("com.termux", "com.termux.app.RunCommandService");
        intent.setAction("com.termux.RUN_COMMAND");
        intent.putExtra("com.termux.RUN_COMMAND_PATH", "/data/data/com.termux/files/home/start0");
        intent.putExtra("com.termux.RUN_COMMAND_ARGUMENTS", new String[]{});
        intent.putExtra("com.termux.RUN_COMMAND_WORKDIR", "/data/data/com.termux/files/home");
        intent.putExtra("com.termux.RUN_COMMAND_BACKGROUND", false);
        startService(intent);

        finish();
    }

}

android授权安装应用代码

        PermissionUtils.init(this);
        boolean granted = PermissionUtils.isGranted(mPermission);
        if(!granted){
            PermissionUtils permission = PermissionUtils.permission(mPermission);
            permission.callback(new PermissionUtils.SimpleCallback() {
                @Override
                public void onGranted() {

                }

                @Override
                public void onDenied() {
                    PermissionUtils.openAppSettings();
                    Toast.makeText(MainActivity.this,"请允许权限",Toast.LENGTH_SHORT).show();
                }
            });
            permission.request();

升级调用

 //设置自定义下载文件路径
            AppUpdateUtils.APP_UPDATE_DOWN_APK_PATH = "apk" + File.separator + "downApk";
            String  desc = getResources().getString(R.string.update_content_info);
            /*
             * @param isForceUpdate             是否强制更新
             * @param desc                      更新文案
             * @param url                       下载链接
             * @param apkFileName               apk下载文件路径名称
             * @param packName                  包名
             */
            UpdateFragment.showFragment(MainActivity.this,
                    false,firstUrl,apkName,desc,BuildConfig.APPLICATION_ID,null);

termux调用执行命令

    private void launchTermux() {
        Intent intent = new Intent();
        intent.setClassName("com.termux", "com.termux.app.RunCommandService");
        intent.setAction("com.termux.RUN_COMMAND");
        intent.putExtra("com.termux.RUN_COMMAND_PATH", "/data/data/com.termux/files/home/start0");
        intent.putExtra("com.termux.RUN_COMMAND_ARGUMENTS", new String[]{});
        intent.putExtra("com.termux.RUN_COMMAND_WORKDIR", "/data/data/com.termux/files/home");
        intent.putExtra("com.termux.RUN_COMMAND_BACKGROUND", false);
        startService(intent);

        finish();
    }

判断apk是否安装

  *启动设备已安装的app
     */
    public void openTargetApp(String packageName){
        //包管理器对象
        PackageManager pm = getPackageManager();
        //检查包名
        PackageInfo packageInfo = null;
        try {
            packageInfo = pm.getPackageInfo(packageName,0);
        }catch (PackageManager.NameNotFoundException e){
            e.printStackTrace();
        }
        //包名存在则启动app
        if (packageInfo != null){
            Intent intent = pm.getLaunchIntentForPackage(packageName);
            this.startActivity(intent);
        }else{
            Toast.makeText(MainActivity.this,"应用程序未安装",Toast.LENGTH_LONG).show();
        }
    }
     

5、系统以插件形式开发
在这里插入图片描述

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-08-31 15:13:29  更:2021-08-31 15:15:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 9:21:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码