Xiangqian Zhou

48 papers B 2Journal 43Unranked 3
YearRankTypeTitle / Venue / Authors
2026 J jnl
Graphs Comb.
Fuxiang Yu, Xiangqian Zhou
2026 J jnl
Discret. Math.
Lily Chen, Kecai Deng, Chenghao Nan, Yi Tan, Xiangqian Zhou
2026 J jnl
Acta Informatica
Xiumin Wang, Zhong Huang, Xiangqian Zhou, Ralf Klasing, Yaping Mao
2025 J jnl
Graphs Comb.
Lily Chen, Yi Tan, Xiangqian Zhou
2023 J jnl
IEEE Trans. Cloud Comput.
Wanchun Jiang, Yujia Qiu, Fa Ji, Yongjia Zhang, Xiangqian Zhou, Jianxin Wang
2023 J jnl
IEEE Trans. Parallel Distributed Syst.
Wanchun Jiang, Yujia Qiu, Yucheng Chen, Fa Ji, HaiMing Xie, Xiangqian Zhou, Jialiang Chen, Jiawei Huang, Jianxin Wang, Yan Li
2023 J jnl
Graphs Comb.
Mingfang Huang, Guorong Liu, Xiangqian Zhou
2022 J jnl
Discret. Math.
Meiqin Wei, Changxiang He, Yaping Mao, Xiangqian Zhou
2022 J jnl
Discret. Appl. Math.
Xiangqian Zhou, Heping Zhang
2022 J jnl
Discret. Appl. Math.
Lily Chen, Yanyi Li, Xiangqian Zhou
2020 conf
ICC
Wanchun Jiang, Fa Ji, HaiMing Xie, Xiangqian Zhou, Jianxin Wang
2020 J jnl
J. Comb. Optim.
Lily Chen, Shumei Chen, Ren Zhao, Xiangqian Zhou
2020 J jnl
Discret. Math.
Lily Chen, Mingfang Huang, Gexin Yu, Xiangqian Zhou
2020 J jnl
Discret. Math.
João Paulo Costalonga, Xiangqian Zhou
2019 J jnl
Discret. Math.
Lily Chen, Runrun Liu, Gexin Yu, Ren Zhao, Xiangqian Zhou
2019 J jnl
J. Parallel Distributed Comput.
Wanchun Jiang, HaiMing Xie, Xiangqian Zhou, Liyuan Fang, Jianxin Wang
2019 J jnl
Discret. Math. Algorithms Appl.
Kecai Deng, Gexin Yu, Xiangqian Zhou
2019 J jnl
Discret. Math.
Lily Chen, Kecai Deng, Gexin Yu, Xiangqian Zhou
2019 J jnl
Inf. Syst.
Wanchun Jiang, HaiMing Xie, Xiangqian Zhou, Liyuan Fang, Jianxin Wang
2018 J jnl
Discret. Math.
Adam Gray, Talmage James Reid, Xiangqian Zhou
2018 J jnl
Graphs Comb.
Xiangqian Zhou
2018 J jnl
Graphs Comb.
João Paulo Costalonga, Kecai Deng, Xiangqian Zhou
2017 conf
ICPCSEE (1)
Liyuan Fang, Xiangqian Zhou, HaiMing Xie, Wanchun Jiang
2017 B conf
CLOUD
Wanchun Jiang, HaiMing Xie, Xiangqian Zhou, Liyuan Fang, Jianxin Wang
2017 B conf
ICCCN
Wanchun Jiang, Liyuan Fang, HaiMing Xie, Xiangqian Zhou, Jianxin Wang
2017 J jnl
CoRR
Wanchun Jiang, Liyuan Fang, HaiMing Xie, Xiangqian Zhou, Jianxin Wang
2017 J jnl
Discret. Math.
Mingfang Huang, Gexin Yu, Xiangqian Zhou
2016 J jnl
Graphs Comb.
Jesse T. Williams, Xiangqian Zhou
2016 J jnl
Discuss. Math. Graph Theory
Heping Zhang, Xiangqian Zhou
2016 J jnl
Discret. Appl. Math.
Xiangqian Zhou, Heping Zhang
2016 J jnl
Discret. Math.
Deborah Chun, Tyler Moss, Daniel C. Slilaty, Xiangqian Zhou
2016 J jnl
Discret. Math.
Jakayla R. Robbins, Daniel C. Slilaty, Xiangqian Zhou
2013 J jnl
Inf. Process. Lett.
Xiangqian Zhou, Bing Yao, Xiangen Chen
2013 J jnl
Discret. Math.
Daniel C. Slilaty, Xiangqian Zhou
2012 J jnl
Ars Comb.
Xiangqian Zhou, Bing Yao, Xiangen Chen, Haixia Tao
2012 J jnl
Discret. Math.
Xiangqian Zhou
2010 J jnl
Discret. Math.
Talmage James Reid, Jakayla R. Robbins, Haidong Wu, Xiangqian Zhou
2010 conf
WASA
Xue Li, Chi Zhou, Xiangqian Zhou, Zhiqiang Wu, Bing Xie
2009 J jnl
Discret. Math.
Talmage James Reid, Xiangqian Zhou
2009 J jnl
Discret. Math.
Loni Delaplane, Talmage James Reid, Haidong Wu, Xiangqian Zhou
2009 J jnl
Comb. Probab. Comput.
Hongxun Qin, Daniel C. Slilaty, Xiangqian Zhou
2008 J jnl
J. Comb. Theory B
Xiangqian Zhou
2008 J jnl
J. Comb. Theory B
Jim Geelen, Xiangqian Zhou
2008 J jnl
J. Comb. Theory B
Talmage James Reid, Haidong Wu, Xiangqian Zhou
2007 J jnl
Electron. J. Comb.
Mark E. Watkins, Xiangqian Zhou
2006 J jnl
SIAM J. Discret. Math.
Jim Geelen, Xiangqian Zhou
2004 J jnl
J. Comb. Theory B
Xiangqian Zhou
2004 J jnl
J. Comb. Theory B
Hongxun Qin, Xiangqian Zhou
redb/extractors/decompiler/apk/library_filter.py
← Index redb/extractors/decompiler/apk/library_filter.py python
"""Package-based library filtering for APK DEX code analysis.

Determines whether a method belongs to a known library/framework package
and should be filtered out of content tables. This is the Android equivalent
of is_lib_or_thunk() in the Binary Ninja pipeline.
"""

import os
from typing import Dict, List


DEFAULT_LIBRARY_PREFIXES = [
    "android.",
    "androidx.",
    "com.google.android.",
    "com.google.firebase.",
    "com.google.gson.",
    "com.google.protobuf.",
    "kotlin.",
    "kotlinx.",
    "org.apache.",
    "com.squareup.",
    "io.reactivex.",
    "org.reactivestreams.",
    "com.facebook.",
    "com.crashlytics.",
    "io.fabric.",
    "org.junit.",
    "org.mockito.",
]


class LibraryFilter:
    """Filters library/framework classes from APK analysis."""

    def __init__(self, prefixes: List[str] = None):
        env_prefixes = os.getenv("APK_LIBRARY_PREFIXES")
        if env_prefixes:
            self._prefixes = [p.strip() for p in env_prefixes.split(",") if p.strip()]
        elif prefixes is not None:
            self._prefixes = prefixes
        else:
            self._prefixes = DEFAULT_LIBRARY_PREFIXES

        # Convert Dalvik-style prefixes to both formats for matching
        self._dot_prefixes = tuple(self._prefixes)

        self._stats = {"library": 0, "user": 0}

    def is_library(self, class_name: str) -> bool:
        """Check if a class belongs to a known library/framework package.

        Accepts both Java dot notation (com.example.Foo) and Dalvik
        descriptor notation (Lcom/example/Foo;).
        """
        # Normalize Dalvik descriptor to dot notation
        normalized = self._normalize_class_name(class_name)

        is_lib = normalized.startswith(self._dot_prefixes)
        if is_lib:
            self._stats["library"] += 1
        else:
            self._stats["user"] += 1
        return is_lib

    def get_filter_stats(self) -> Dict[str, int]:
        """Return counts of filtered vs. retained classes."""
        return dict(self._stats)

    @staticmethod
    def _normalize_class_name(class_name: str) -> str:
        """Convert Dalvik descriptor to dot notation.

        Lcom/example/Foo; -> com.example.Foo
        com.example.Foo -> com.example.Foo
        """
        if class_name.startswith("L") and class_name.endswith(";"):
            return class_name[1:-1].replace("/", ".")
        return class_name.replace("/", ".")